Skip to main content
Every response from the Atlas API carries a standard HTTP status code. When a request fails, the response body includes an error_code and an error_message that tell you exactly what went wrong. Understanding these codes lets you build resilient integrations and diagnose issues quickly without guesswork.

HTTP status codes

The table below lists every status code the Atlas API can return and what each one means in practice.

Error response format

All top-level errors use a consistent JSON envelope with two fields:
Both fields are strings. error_code contains the HTTP status code as a string, and error_message contains a human-readable explanation prefixed with the error category.

Example: 400 Bad Request

Example: 410 Resource Gone

Example: 503 Service Unavailable

Document-level errors in OCR data

When individual documents fail to extract, the error surfaces inside the ocr_data array rather than as a top-level HTTP error. Each entry in ocr_data includes an error_code and error_reason field alongside an empty data object:
A successful extraction has empty strings for both error_code and error_reason. Always check these fields even when the HTTP response is 200 or 201.
The two document-level error codes you will encounter are:

Target-level errors in address matching

The Address Match API can succeed at the request level (HTTP 200) while reporting per-target failures inside the match_data array. Each element carries its own error_code and error_message:
A null value for error_code indicates that target was processed successfully. A non-null value means that specific target failed while the others may have succeeded.

Troubleshooting

Use this table as a quick reference when debugging integration issues.
Do not cache or reuse JWT tokens indefinitely. Each token expires after 3600 seconds (expires_in field). Build automatic token refresh logic into your integration.