Skip to main content
The Company Matching API uses standard HTTP status codes. Most error responses include a JSON body with a detail field.

Error envelope

Match on status codes in your error handling, not on the exact detail string — wording can change between releases.
429 is the exception. Rate-limit responses from SlowAPI typically use an error key instead of detail. Read both keys when logging.

Status code matrix

Retrying

Retry 429, 500, and 503 with exponential backoff:
Add random jitter (0–500 ms) so concurrent clients do not synchronise retries.
Do not auto-retry 401, 404, 409, or 422 with the same payload. Fix the key, id, timing, or body first.

Common scenarios

401 on every call

Almost always a missing Authorization header, a JWT instead of a dm_live_… key, or a revoked key.

422 on batch submit

Either a company object failed validation (for example empty input_name), the list exceeds 1,000 companies, or callback_url / webhook_secret failed validation.

409 on results

You called GET /match/batch/{job_id}/results while the job was still queued. Poll GET /match/batch/{job_id} until status is running, completed, or failed, then fetch results.

Client timeout on POST /match

Matching can take tens of seconds on a cold path. Set the client timeout to at least 60–120 seconds before treating the call as failed.
Last modified on August 20, 2026