408 Request Timeout is the exception: the server’s 30-second timeout returns
an empty body, so check the HTTP status before parsing JSON.
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
401 invalid_api_key
401 invalid_api_key
- 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.
402 subscription_required
402 subscription_required
The key is fine; billing is not. Re-subscribe at pricing and the same key resumes.
429 rate_limited
429 rate_limited
Sleep
Retry-After seconds, then retry. See the backoff example in Rate Limits.400 bad_request on Market Intel with a prefixed ID
400 bad_request on Market Intel with a prefixed ID
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.500 internal_error
500 internal_error
Retry once. If it persists, email support@0xinsider.com with the
meta.request_id from the response.