needs_review or inspection_required) are successful evaluation decisions, not errors.
Error envelope
Error types
Common error codes
Authentication errors (401)
Permission errors (403)
Invalid request errors (400)
Not found errors (404)
Rate limit errors (429)
When the rate limit is exceeded, the response includes aretry-after header with the number of seconds until the window resets:
Business outcomes are not errors
A quote that returnsneeds_input, unavailable, or failed is a successful evaluation decision, not an API error. These outcomes are returned with HTTP status 201 (for produced quotes) or 200 (for simulations), because the request was processed correctly — the evaluator simply determined that the request could not be priced.
Handle these outcomes in your integration logic, not in your error handling:
The request ID
Every response — success or error — includes anx-request-id header. Use this ID to find the request in the Request logs or when contacting support. The ID is also present in the error envelope’s request_id field.
For the full error schema, see the API reference.