What’s in it
- Every trade, normalised — venue / coin / instrument / strike / expiry / direction / amount / price / index price / IV (when present) / premium in USD / block-trade flag / ms timestamp.
- 4 venues ingested continuously (see Venue coverage).
- 5-year retention in the persistence layer — backfill of pre-
2026-05-17history is available on request via our archive partner. - Sub-second freshness on the WebSocket; REST
/recentreflects the latest trade as soon as it lands in Postgres (~200ms after the venue WS emits it). - Filters for venue, instrument, option type, strike range, premium minimum, and derived tags (
0dte,atm,whale).
REST endpoints
WebSocket broadcaster
Venue coverage
| Venue | Source | Latency to tape | Coverage |
|---|---|---|---|
| Deribit | Native public WebSocket | < 200 ms | Full BTC + ETH chains, every trade |
| Bybit | Native public WebSocket (publicTrade.{coin}.option) | < 200 ms | Full BTC + ETH option chains |
| OKX | Native public WebSocket (option-trades channel, BTC-USD + ETH-USD instFamilies) | < 200 ms | Every trade on listed BTC + ETH instruments |
| Binance | REST polling — eapi.binance.com/eapi/v1/trades for the top-30 most-active BTC + ETH contracts every 30 s | ~ 30 s | Top-volume strikes only (~95% of total Binance options volume) |
Coins
BTCandETHare fully covered across all four venues.SOLandHYPEare accepted by the API schema (some venues are starting to list them) but coverage is currently thin to non-existent. Filter for those at your own risk.
Tape coverage vs derived metrics
| Surface | Live? | History? |
|---|---|---|
| Tape (this section) | ✅ live, multi-venue | ✅ 5y persisted, cursor-paginated |
| GEX / IV / levels / greeks profiles (Options API) | ✅ refreshed 30 s–5 min | Rolling ~24 h in Redis; forward-only Postgres history accumulating since 2026-05-29 |
| Probability density / Expected move / OPEX / PCR | ✅ live | Same as above |
Quick start
ws_tape_demo.py from the repo — single file, no setup beyond pip install websockets.
