Skip to content
All docs

Errors and limits

Handle API errors and rate limits.

Errors use a consistent JSON envelope. Check the HTTP status and error.code; keep request_id when contacting support.

{
  "success": false,
  "error": {
    "code": "AUTHENTICATION_ERROR",
    "message": "Authentication required",
    "details": null
  },
  "request_id": "..."
}

Use the returned error.code and message from the actual response.

Common statuses

Status Meaning
400 or 422 Invalid request or unsupported format.
401 Missing or invalid authentication.
402 Insufficient credits.
403 Missing key scope or permission.
404 Missing cache entry for a cache-only lookup, or requested resource not found.
409 Conflicting request state.
429 Rate limit reached.
500, 503, 504 Server, dependency, or upstream timeout failure.

Handle 429 and transient 5xx responses with bounded retries and backoff. Use a fresh Idempotency-Key for each distinct billable request.

Rate limits

Current organization limits are 120 scrape calls, 30 map calls, and 240 quote calls per minute. The signed-in playground allows 30 scrapes per user per minute. Account read routes have separate limits. Limits can change as service capacity changes.