| 400 | invalid_parameter | A parameter is malformed or out of range, or the cursor has expired or doesn’t match the query. |
| 400 | range_too_large | The time range exceeds the endpoint’s maximum, or the response would exceed 2 MiB (16 MiB on batch endpoints). Narrow the range or lower limit. |
| 401 | invalid_key | The key is missing or malformed. |
| 401 | expired_key | The key has expired. Create a new key. |
| 401 | revoked_key | The key was revoked. |
| 403 | insufficient_scope | The key lacks the scope this endpoint needs. |
| 403 | ip_not_allowed | The source IP is not on the key’s allowlist. |
| 403 | plan_required | The workspace has no active plan. Live keys stop working; test keys keep working. |
| 403 | workspace_suspended | The workspace is suspended. Contact support. |
| 403 | history_limit | Your plan doesn’t include that much history. detail states your plan’s history depth. See Plans and limits. |
| 403 | feature_not_in_plan | Your plan doesn’t include this endpoint or feature. See Plans. |
| 403 | credits_exhausted | No credits left, or a key or project budget is used up. Buy credits in the console (Credits), upgrade, or wait for the budget to reset. |
| 403 | max_credits_exceeded | The request’s maximum cost exceeds X-Max-Credits or the key’s per-request maximum. |
| 404 | not_found | Unknown market, address with no history, or unknown route. |
| 409 | idempotency_conflict | The same Idempotency-Key was sent with a different body. |
| 409 | job_not_ready | The async job hasn’t finished. Poll again. |
| 409 | price_changed | The endpoint’s price changed since the X-Credit-Price-Version you sent. Quote again. |
| 409 | snapshot_expired | The snapshot you were paging through has expired. Start again. |
| 429 | rate_limited | Too many requests or too many concurrent requests. Wait for Retry-After. |
| 429 | extraction_limit | A bulk extraction budget is used up. Wait for Retry-After. |
| 429 | jobs_limit | Too many active or daily async jobs. |
| 502 | upstream_error | A data source returned an error. Retry with backoff. |
| 503 | upstream_busy | A data source is protecting itself. Retry after Retry-After. |
| 503 | unavailable | We can’t serve the request safely right now. Retry after Retry-After. |
| 503 | extraction_unavailable | Extraction budgets can’t be checked right now. Retry after Retry-After. |
| 504 | upstream_timeout | A data source timed out. Retry with backoff. |