tickstreamdocs

DOCS

REST API

A small REST surface for latest quotes, historical backfill and reference data.

The REST API complements the stream: use it for the latest quote, to backfill history before going live, and to list reference data. Base URL: https://api.tick-stream.xyz/v1. All requests need an API key; timestamps are ISO-8601 (UTC).

GET /quote

The latest trade and top-of-book for a symbol.

ParamRequiredDescription
symbolyesThe instrument, e.g. ES.
curl "https://api.tick-stream.xyz/v1/quote?symbol=ES" \
  -H "Authorization: Bearer sk_live_…"
{
  "symbol": "ES",
  "price": 5283.25,
  "bid": 5283.00,
  "ask": 5283.25,
  "ts": 1749556800
}

GET /ticks

Historical ticks for a time window — the backfill endpoint. Results are ordered by time (oldest first).

ParamRequiredDescription
symbolyesThe instrument, e.g. ES.
start / endnoISO-8601 UTC (2026-06-10T13:30:00Z) or Unix seconds. Defaults: end = now, start = one hour before end.
limitnoMax rows (default 10,000, max 100,000).
curl "https://api.tick-stream.xyz/v1/ticks?symbol=ES&start=2025-06-01T13:30:00Z&end=2025-06-01T20:00:00Z" \
  -H "Authorization: Bearer sk_live_…"
from tickstream import Client
ticks = Client("sk_live_…").ticks(
    "ES", start="2025-06-01T13:30:00Z", end="2025-06-01T20:00:00Z")
print(len(ticks), "ticks")

The response carries count and truncated. If truncated is true, request the next page by setting start to the last returned ts. Ticks land in the archive within ~5 minutes of trading; for the live edge use the WebSocket stream.

GET /l3

Replay of order-level depth — every individual order's new/change/delete with its exchange order id, queue priority, sequence number and nanosecond stamp. Windows are capped at one hour per request, and the archive starts when order-level recording was switched on (there is no vendor MBO history). Full field reference on the L3 page.

GET /cot

Weekly CFTC Commitments of Traders positioning for the index futures — refreshed automatically after each Friday release (data as of Tuesday).

ParamRequiredDescription
symbolyesES, NQ, YM or RTY.
weeksnoNumber of weekly reports, newest first (default 52, full history available).

Each report carries open_interest, change_oi and long/short/net for non-commercials (large specs), commercials (hedgers) and non-reportables (small traders).

GET /symbols & GET /options

Reference data lives at /symbols (all instruments) and /options?underlying= (latest chain snapshot). See those pages for the full parameters and response shapes.

GET /history/*

The endpoints above serve recent data. For the full archive since 2019 — every tick, Level 2 update and option-chain snapshot over any date range — use the dedicated historical data endpoints (/history/ticks, /history/book, /history/options), which require a data-archive plan.

GET /algos

The live-tested algos are queryable over REST: GET /v1/algos (catalog) and GET /v1/algos/{id}/track (full backtest + live track record) are public; GET /v1/algos/{id}/signal and /events return the current signal and live event feed once you rent that algo.

tip

For continuous live data prefer the WebSocket stream — REST is best for snapshots and backfill, not high-frequency polling. See rate limits.