Skip to main content
Handler and middleware errors use the JSON envelope below. The transport-level 408 Request Timeout is the exception: the server’s 30-second timeout returns an empty body, so check the HTTP status before parsing JSON.
For JSON errors, two fields matter in production: error.code (machine-readable) and meta.request_id (the ID you give us when you contact support).

Error codes

Handling errors in code

Per-item batch errors

Batch endpoints (e.g. POST /api/v1/traders/batch) return 200 OK even when individual items fail. Each item carries its own error field. Read data[i].error per item, not just the top-level status.

Quick troubleshooting

  • The header needs Authorization: Bearer oxi_sk_live_....
  • The key is 76 characters. Confirm you copied the full string.
  • If you regenerated, the old key is dead. Update every consumer.
The key is fine; billing is not. Re-subscribe at pricing and the same key resumes.
Sleep Retry-After seconds, then retry. See the backoff example in Rate Limits.
Market Intel takes the raw condition_id or the mkt_... market ID from V1 responses. It rejects non-market prefixes (trd_, wt_, rf_) with 400 bad_request. If you only have one of those, resolve the market first via /markets/search.
Retry once. If it persists, email support@0xinsider.com with the meta.request_id from the response.