error.code (machine-readable) and meta.request_id (the ID you give us when you contact support).
Error codes
| HTTP | error.code | What happened | What to do |
|---|---|---|---|
400 | bad_request | A parameter was invalid. Check error.param. | Fix the input. |
401 | invalid_api_key | Key missing, malformed, or revoked. | Re-check the Authorization header. |
402 | subscription_required | Key is valid, but no active Insider sub. | Subscribe at pricing. |
403 | forbidden | The account was deleted. | Contact support. |
404 | not_found | The trader / market / resource does not exist. | Verify the ID. |
423 | account_locked | Account is suspended. | Contact support. |
429 | rate_limited | Over 100 req/min (or 100 batch item units/min). | Sleep Retry-After seconds and retry. See Rate Limits. |
500 | internal_error | Bug on our side. | Retry. Include meta.request_id if you contact us. |
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.