tickstreamdocs

DOCS

Limits & errors

What counts against you, what doesn't, and how errors are shaped.

Streaming limits

  • Messages are unlimited on all paid plans — there are no per-tick fees or overage charges.
  • Connections: up to 5 concurrent WebSocket connections per key. Need more? Ask us.
  • Symbols: subscribe to as many symbols as you like on a single connection.

REST rate limits

REST is intended for snapshots and backfill, so it's rate-limited per key:

EndpointLimit
/quote, /symbols, /options60 requests / minute
/ticks (backfill)20 requests / minute

Every response includes X-RateLimit-Remaining and X-RateLimit-Reset headers. Exceeding a limit returns 429 — back off and retry after the reset.

Error shape

All errors share the same JSON envelope with a stable code:

{
  "error": {
    "code": "plan_required",
    "message": "Options data requires the Pro plan.",
    "status": 403
  }
}

Status codes

StatusCodeMeaning
400bad_requestMalformed parameters (e.g. bad date range).
401unauthorizedMissing or invalid API key.
402no_subscriptionNo active subscription for live data.
403plan_requiredYour plan doesn't include this feed/symbol.
404unknown_symbolSymbol not found — see symbols.
429rate_limitedToo many REST requests — back off.
5xxinternalOur fault. Retry with backoff; we're paged.
tip

The SDKs raise typed exceptions/errors carrying the code, so you can branch on it without parsing strings.