Detect appliances

Appliance detection · model appliance-detector

POST/v1/drawings/detection/appliances

Find doors, double-door openings, toilets, and urinals in one request. Choose the object types you need with the classes parameter. Supported appliance types currently cover doors and the listed plumbing fixtures.

Accepts a previously uploaded document_id, enqueues inference, and returns a job you poll for results. Detections are returned as bounding boxes in PDF coordinate space.

Returns
A job to check202 Accepted
Usage
Element detectionper sheet
Results in
Selected objectsresult.appliances
Auth
API keyX-API-Key header
Processing time (free tier)

Free-tier appliances detection typically completes in 2–4 minutes per job. Processing time scales mainly with page count and drawing complexity — a dense multi-page set takes longer than a single sheet.

Review Developer and Enterprise plans for higher usage limits. Upgrade your plan

Example

Floor plan input
Example door detections; select Toilet and Urinal to include plumbing fixtures.

How it runs

  1. Send a document_id
  2. Get a job_id
  3. Check your results or receive a webhook

Request

This endpoint requires a document_id. Upload your PDF first.

Body is JSON — this endpoint does not accept file uploads directly.

FieldDescription
document_idstring · UUIDRequiredID of the uploaded PDF or image. Must belong to this account and not be expired.
page_numbersarray of integersOptional1-based page indices to scan, for example [1, 2, 3]. Omit to scan all pages. Out-of-range values are skipped by the worker but still counted.
classesarray of stringsOptionalSelect any non-empty combination of Door, DoubleDoor, Toilet, and Urinal. Omit to detect all four classes. Values are case-sensitive; duplicates, empty arrays, null, and unknown classes return 422.
webhook_urlstring · URLOptionalURL to POST the completed job payload to. Delivered on developer, pro, and enterprise tiers only.
UsageUsage is counted on submission: each page in page_numbers (or every page of the document when omitted) is one element detection, not only the pages that contain selected objects. Selecting more classes does not multiply the per-page usage. Send only valid page indices.

Responses

The job is enqueued immediately. Poll GET /v1/jobs/{job_id} until status is complete or failed.

FieldDescription
job_idstring · UUIDUse this to poll for results.
statusstringAlways queued on this response.
poll_urlstringPath only — prepend https://api.anchorgrid.ai to build the full URL.

Usage & rate limits

Each page scanned is one element detection (See pricing). Rate limit: tier RPM (5 / 60 / 120 / 300).

PlanWhen the allowance is used up
trialTrial allowance — 402 FREE_TIER_LIMIT_REACHED when used up, 402 TRIAL_ENDED once the trial is over.
developerMonthly allowance, then overage up to your overage limit — 402 OVERAGE_LIMIT_REACHED at the limit (429 QUOTA_EXCEEDED when the allowance is used up without overage billing).
enterpriseNo allowance check.

Rate-limit 429s include retry_after_seconds in the body. Quota 429s and rate-limit 429s return the same status code — check the error body to distinguish them.

Errors

StatusWhat it means
401Missing or invalid X-API-Key.
402Trial allowance used up.
404document_id not found or expired.
422Validation error — malformed UUID or invalid body.
429Rate limit or monthly quota exceeded.

Searches these docs: guides, the basics and every endpoint.

Make your first requestPlayground walkthrough: upload, choose an analysis, run it
Connect your softwareYour application calls the REST API. Requires an API key
Connect your AI agentGive an agent a tool that calls the REST API
AuthenticationX-API-Key header, 401 errors, keeping keys safe
Detect doorsPOST /v1/drawings/detection/doorsDoor detection — Compatibility endpoint for Door and DoubleDoor using appliance detection.
Check your resultsGET /v1/jobs/{job_id}Get a job — See a job’s status and, once it’s complete, its results.