Operate

Errors and rate limits

Handle Problem Details responses, correlation IDs, and request limits.

Problem details

Errors use application/problem+json. Correlation is available through the optional X-Correlation-Id request header, the response header, and the correlationId response field.

Example

json
{
  "type": "{problem-type-base-url}/errors/API_KEY_INVALID",
  "title": "Unauthorized",
  "status": 401,
  "detail": "API key is missing or invalid",
  "instance": "/api/v1/customer/inquiries",
  "code": "API_KEY_INVALID",
  "correlationId": "c7ccb49d-e6bb-45f7-b834-93c4521a6857"
}

Common error codes

NameTypeDescription
API_KEY_INVALID401Missing, malformed, or unmatched API key.
API_KEY_REVOKED401API key has been revoked.
API_KEY_EXPIRED401API key has passed its expiry.
INQUIRY_TEMPLATE_NOT_FOUND404Template is unavailable to the key's tenant.
INQUIRY_NOT_FOUND404Inquiry is unavailable to the key's tenant.
INQUIRY_NOT_APPROVED403Documents requested when status is not APPROVED or NEEDS_REVIEW.
IDEMPOTENCY_CONFLICT409Idempotency key was reused incompatibly.
RATE_LIMIT_EXCEEDED429Rate limit exceeded; inspect Retry-After.

Rate limits

  • 120 requests per 60-second window.
  • Applied per API key and endpoint scope.
  • Exceeding the limit returns HTTP 429 and a Retry-After response header.
  • Wait for the indicated duration before retrying; use exponential backoff and jitter for concurrent workers.