Skip to content
Rate limits and errors
  1. Guides
  2. Rate limits and errors

Rate limits and errors

Each key has a one-minute and a one-day bucket. Every response says how much of each is left.

Limits by plan#

PlanPer minutePer day
Premium1005,000
Annual50025,000
Lifetime50025,000
Starter (MCP only)1005,000

Organization keys carry the per-minute limit and monthly quota in their contract. An OAuth connection counts as your account.

Response headers · production, 16 Oct 2026 10:18 UTC
HTTP/2 200
x-ratelimit-limit: 100
x-ratelimit-remaining: 99
x-ratelimit-reset: 1792232333
x-ratelimit-window: 60
x-ratelimit-limit-day: 5000
x-ratelimit-remaining-day: 4999
x-request-id: …

When you hit a limit#

You get 429 with Retry-After in seconds and both buckets in the body. Wait that long; do not retry in a loop.

429 · values illustrative, fields from rate_limit.py
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please slow down.",
    "status": 429,
    "retry_after": 12,
    "limit_minute": 100,
    "remaining_minute": 0,
    "limit_day": 5000,
    "remaining_day": 4211
  }
}

Errors#

Route errors use the envelope {"success": false, "error": {code, message, status}}. Authentication and validation errors come from FastAPI as {"detail": …}. Both shapes are documented as they are; nothing changes for existing integrations.

StatusCodesMeaning
400INVALID_SYMBOL · INVALID_ID · INVALID_JOB_ID · INVALID_URL · INVALID_EVENTS · MAX_WEBHOOKS_REACHEDBad input, or the webhook cap.
401detailMissing, invalid or revoked key, or a locked account.
403detail · WATCHLIST_LIMIT_REACHEDPlan or subscription, or the tracked-asset cap.
404SYMBOL_NOT_FOUND · NOT_AVAILABLE_FOR_ASSET · EVENT_NOT_FOUND · JOB_NOT_FOUND · NO_DATA · NO_PREDICTION · DATA_UNAVAILABLE · NOT_FOUNDNothing to return.
422detail[]A query or body value is outside its range (FastAPI validation).
429RATE_LIMIT_EXCEEDED · ON_DEMAND_RATE_LIMITSlow down; read Retry-After.
500FETCH_FAILED · CREATE_FAILED · UPDATE_FAILED · DELETE_FAILED · DELIVERY_FAILEDOur side. Retry with backoff.
502 / 503UPSTREAM_UNAVAILABLE · DATA_UNAVAILABLE · SERVICE_UNAVAILABLE · TONE_UNAVAILABLETemporarily unavailable; some carry Retry-After.
Envelope · route errors
{
  "success": false,
  "error": {
    "code": "NOT_AVAILABLE_FOR_ASSET",
    "message": "COT data is not available for AAPL. COT reports only cover CFTC-reported futures (FX, commodities, indices).",
    "status": 404
  }
}
FastAPI detail · authentication
{
  "detail": "Missing or invalid API key. Include X-API-Key header with your te_pub_ key."
}