# CryptoStruct > Realtime and historical crypto AND prediction-market data (Kalshi, > Polymarket, predict.fun, OG.com) across major venues, plus the low-latency trading stack behind > it. Self-serve on this site: full-day tick recordings (L2 order-book > snapshots + updates, trades, liquidations, mark/index prices incl. options > greeks, funding) sold per instrument-day, free samples, and a public > per-minute statistics API. Key facts for parsers: tick files are > zstd-compressed JSON-lines; line 1 is instrument masterdata; all > prices/quantities are decimal strings; timestamps are integer nanoseconds > since epoch, UTC. Every HTML page on this site is converted to markdown at > the edge when you request it with `Accept: text/markdown`; the `.md` > documents listed below are served natively as text/markdown. ## MCP server - [MCP endpoint](https://cryptostruct.com/mcp): remote MCP server (Streamable HTTP; keyless free tier) — search the instrument catalog, check archive coverage, read live market statistics (OHLC/VWAP/turnover/spreads/depth/hourly/slippage), get EUR quotes, download free samples, and buy tick-data files and series-day bundles (prediction series, Deribit option chains — search_bundles / get_bundle_coverage / get_bundle_sample, kind series_day) from any MCP client (payment via Stripe checkout URL in the browser) - [MCP sign-in endpoint](https://cryptostruct.com/mcp/auth): same server with OAuth sign-in (Clerk) — your orders/files/credits in-agent, checkout with your credits (approval page by default, or autonomously within limits you set at https://cryptostruct.com/account/agents), and CryptoStruct Premium unlocks deep windows (daily 365d/max, hourly 180d, slippage 24h/7d, minute-range history, rolling 7-day and per-day minute CSV, quality metrics) - [MCP docs](https://cryptostruct.com/docs/mcp): tool reference, Premium & sign-in guide, client setup for Claude Code, claude.ai, Cursor and raw JSON-RPC - [MCP server card](https://cryptostruct.com/.well-known/mcp/server-card.json): discovery document (SEP-1649) — endpoints, transport, capabilities, protocol versions - WebMCP page tools: every page also registers browser-agent tools via navigator.modelContext (search_instruments, get_instrument_days, get_coverage, get_last_24h_stats, get_cart, add_day_to_cart, search_bundles, get_bundle_days, add_bundle_day_to_cart) — in-browser agents can search the catalog and the day bundles and fill the visitor's cart; checkout stays with the user - [auth.md](https://cryptostruct.com/auth.md): how agents authenticate — keyless free tier, OAuth sign-in via Dynamic Client Registration + PKCE, scopes, quotas, revocation ## Buying over HTTP (no MCP client) - [Crypto market data API (HTTP + WebSocket guide)](https://cryptostruct.com/docs/api) · as markdown: [/docs/api.md](https://cryptostruct.com/docs/api.md): the complete buy flow as plain HTTP calls — instrument search → coverage/days → keyless POST /api/quote (EUR total + the checkout recipe) → guest checkout POST /v1/checkout/session (Stripe page for the USER, email only, no account) → poll GET /v1/checkout/session/{id} → GET /v1/orders/{id} with the download_token → tokenized download routes; rate limits, error codes, conduct rules - [OpenAPI 3.1](https://cryptostruct.com/openapi.json): machine-readable description of those endpoints (also at /.well-known/openapi.json) - Pre-filled shop link for the user (the human reviews and pays in the browser): Buy link (no API call needed): https://cryptostruct.com/shop?i=&d=.. opens the shop with those UTC days of the instrument in the cart; d also takes a comma list or a mix (d=2026-09-01..2026-09-07,2026-09-15). Bundles: https://cryptostruct.com/shop/bundles?bundle=&d=…. Only archived days are added (gaps and days still being merged are skipped), at most 366 days of span and 1000 lines per cart; the user pays on the site. Example: https://cryptostruct.com/shop?i=67824&d=2026-09-29..2026-10-05 = seven days of Binance BTCUSDT perpetual ticks. - [Shop as a document](https://cryptostruct.com/shop.md) · [day bundles as a document](https://cryptostruct.com/shop/bundles.md) · [MCP docs as markdown](https://cryptostruct.com/docs/mcp.md) · [free samples with direct URLs](https://cryptostruct.com/download.md) · per series https://cryptostruct.com/prediction-markets/.md (price, coverage, last 30 days, buy link) · everything static in one file: [llms-full.txt](https://cryptostruct.com/llms-full.txt) ## AI toolkit - [Agent Skill (zip)](https://cryptostruct.com/skills/cryptostruct-market-data.zip): teach Claude Code / claude.ai / any Agent-Skills-compatible tool to parse and analyze CryptoStruct data — unzip into ~/.claude/skills/ - [Agent-Skills discovery index](https://cryptostruct.com/.well-known/agent-skills/index.json): machine-readable skill listing (Agent Skills Discovery RFC) with sha256 digest - [SKILL.md](https://cryptostruct.com/skills/cryptostruct-market-data/SKILL.md): the skill entry point (readable standalone) - [Tick-file format reference](https://cryptostruct.com/skills/cryptostruct-market-data/references/day-file-format.md): complete message-type and header documentation - [Minute-API reference](https://cryptostruct.com/skills/cryptostruct-market-data/references/minute-api.md): endpoints, 22-column contract, JSON-to-CSV key map - [Analysis recipes](https://cryptostruct.com/skills/cryptostruct-market-data/references/recipes.md): runnable quant recipes (order-book replay, CVD, funding, multi-day) - [Python reader](https://cryptostruct.com/skills/cryptostruct-market-data/scripts/cryptostruct_reader.py): dependency-free streaming parser + CLI for the tick files - [Minute-API client](https://cryptostruct.com/skills/cryptostruct-market-data/scripts/fetch_minutes.py): stdlib client incl. instrument-ID search ## Docs & data - [Market Data Specification](https://docs.cryptostruct.com/market-data-api/protocol/): the official format specification — every message type, field by field (docs also cover [SBE encoding](https://docs.cryptostruct.com/market-data-api/sbe/) and [historical day files](https://docs.cryptostruct.com/market-data-api/historical-data/)) - [Spec package (zip)](https://cryptostruct.com/docs/marketdata-spec-package.zip): the stand-alone spec release — SBE schema XML + sample messages for every type in JSON and SBE encoding (v3.88.0) - [Free samples](https://cryptostruct.com/download): one complete tick day per curated instrument — spot, perpetuals, Deribit BTC/ETH option contracts (with mark-price/greeks/index streams) and prediction contracts — in the exact shop format, incl. one-click CSV/Parquet exports - [Derived format exports](https://cryptostruct.com/download#formats): every sample and purchased tick day also serves flat quant exports via ?format= on its download route — tokens: trades.csv.gz, bbo.csv.gz, liquidations.csv.gz, trades.parquet, liquidations.parquet (no bbo.parquet). Exports are prepared server-side first: the first request answers 202 + Retry-After while the file is built (minutes for a flagship day), later requests serve the finished file with Content-Length and Range support — poll `&format=&probe=1` (ready | pending | empty | failed) before downloading. Columns per the docs convention (exchange, symbol, exchange_timestamp, adapter_timestamp, ...); timestamps are integer MICROseconds UTC (native tick files stay nanoseconds). bbo is absent on bitmex/coinbase/kraken_spot/kalshi/polymarket/predict_fun (depth-only venues); liquidations exist only where the native files carry msgType 17 — Binance, Bybit and OKX derivatives, June 2025 onward (Bybit and OKX: none from early August to 2026-09-30); open interest (msgType 18) is in Bybit and OKX derivatives files from 2026-10-05 - [Crypto market data overview](https://cryptostruct.com/crypto-market-data): CryptoStruct's crypto market data as a whole — realtime feeds and the tick-by-tick historical archive, every instrument class and venue, how it is captured, every delivery path (shop day files, day bundles, realtime WebSocket, MCP/agent, CSV/Parquet exports, 1-minute statistics API) and the archive's year-by-year growth table (files, recorded size, distinct instruments, venues added per year) - [Historical data overview](https://cryptostruct.com/historical-data): what a day file holds (message types, order-book history, liquidations, funding), the product lines and prices, bulk delivery and the 1-minute OHLCV CSV — the entry page for "crypto historical data / tick data download" - [Order book historical data](https://cryptostruct.com/historical-data/order-book): full Level-2 order-book history (snapshot + every update, nanosecond timestamps) for every venue, the depth-only venues without a BBO stream, replay to a fixed-grid dataset, live archive numbers - [OHLCV & candles historical data](https://cryptostruct.com/historical-data/ohlcv): 1-minute OHLCV/VWAP/turnover CSV (22 columns, rolling 24 h free, Premium 7 days + any recorded day), daily OHLC per asset since January 2025, tick files aggregating to any bar size — honest minute retention - [Trades & ticks historical data](https://cryptostruct.com/historical-data/trades): tick-by-tick trades (price, size, aggressor side, trade id, nanosecond timestamps) with the book in the same file, flat trades.csv.gz/parquet exports, venues ranked by recorded trade count - [Futures & perpetuals historical data](https://cryptostruct.com/historical-data/futures): perpetual swaps and dated futures — trades, L2 books, funding rate history (type 9), mark/index prices (7/8), liquidations (17, Binance/Bybit/OKX from June 2025), open interest (18, Bybit/OKX from October 2026); venues ranked by derivatives turnover, perpetual vs dated split - [Spot markets historical data](https://cryptostruct.com/historical-data/spot): spot pairs on every covered venue — trades + L2 books (+ BBO where published), quote currencies as separate instruments, venues ranked by spot turnover, top spot assets - [Exchange comparison](https://cryptostruct.com/compare): head-to-head pages for the most-compared venues (https://cryptostruct.com/compare/binance-vs-bybit, https://cryptostruct.com/compare/binance-vs-okx, https://cryptostruct.com/compare/binance-vs-hyperliquid, https://cryptostruct.com/compare/binance-vs-bitget, https://cryptostruct.com/compare/binance-vs-gateio, https://cryptostruct.com/compare/bybit-vs-okx, …) — instrument counts, 30-day turnover and, per shared pair, average quoted spread (bps), top-20 order-book depth and turnover per day, all measured from the recorded feeds; plus [funding intervals by exchange](https://cryptostruct.com/compare/funding-intervals) (open perpetuals per venue settling every 1 h / 4 h / 8 h) - [Training data](https://cryptostruct.com/training-data): the archive as an ML training set — dataset sizes per day/year, labels from settled event contracts, a Parquet pipeline and the usage terms (in-house model training allowed, no redistribution of raw data) - [Data Shop](https://cryptostruct.com/shop): the full archive — every venue, every instrument-day (€1 per instrument-day, the complete tick file; 1-minute statistics are an analytics export, see below) - Bulk delivery of a purchased order: on the order download route `/api/download/order/{order_id}/{instrument_id}/{date}` (auth: `?t=` or a Clerk bearer token) a prediction-series day bundle serves `?kind=series_day` plus one of `&zip=1` (ALL contract files of that day as one archive — use this, never one request per contract: a day can hold ~5,000 files), `&manifest=1` (member list as JSON), `&status=1` (aggregated readiness `{ready,pending,cold}`), `&restore=1` (start cold-storage restores for the whole day in one call), `&zip=1&probe=1` (readiness before navigating — poll until `ready`: the probe copies the day's files onto our server and `zip=1` answers 202 `pending` until every file is local; `pending/busy` = all archive slots taken, keep polling). For scripted pulls add `&complete=1`: a partially-available day then answers 409 instead of a 200 with a short archive — gate on `cold == 0`, since `state` reads "ready" as soon as ANY file is warm. Days older than ~1 month are in deep archive (~12 h to restore, retrievable ~7 days). No per-account download quota is reachable by a paced archive-per-day loop. Days over 4 GB (option-chain bundles) have no zip — `&zip=1&probe=1` answers `{state:"too_large"}`; use the range route below with `from=to=` for ONE resumable tar of that day - Range delivery (multi-day, preferred for whole histories): `/api/download/order/{order_id}/{bundle_id}/range?kind=series_day&from=YYYY-MM-DD&to=YYYY-MM-DD` (same auth) streams every OWNED day of one bundle inside the window as ONE uncompressed tar — exact `Content-Length`, strong `ETag`, resumable via `Range: bytes=N-` (`curl -C -`). Always strict: 200 + the full Content-Length + `tar -xf` exiting 0 means every file of every owned day is included; a partially-available range refuses with 409 before any byte (first day cold) or truncates loudly mid-stream — there is no `_MISSING.txt` here. A 503 always means wait and retry after its `Retry-After` (`curl --retry` does): `WARMING` — the first day of the window is still being copied to our delivery server, the request itself starts the copy and the body carries `ready`/`pending` counts — or `RANGE_BUSY` — 2 parallel streams are already running. Caps: 100 days per stream (a 413 body carries `suggested_to` for automatic splitting). Companions: `&status=1` (NDJSON, one line per day — pull once the summary shows `cold == 0 && errored_days == 0 && size_drift == 0`; `size_drift > 0` means a day needs a catalog repair on our side and every stream over it would abort), `&restore=1` (one cold-storage restore call for the whole range), `&manifest=1` (day-level JSON incl. `archive_bytes` + `etag`). Entries extract as `{date}/{venue}-{contract}-{date}.txt.zst` with a per-day MANIFEST.txt - Download manifest + official tool (2026-10, preferred for every order): `GET https://cryptostruct.com/api/download/order/{order_id}/manifest?t=` lists EVERYTHING the order entitles the caller to — items[] (tick files: url, status_url, restore_url, bytes, filename, sha256 when known, formats{}) and bundles[] (per-day zip_url/status_url/restore_url/manifest_url, tar_url over 4 GB, and pre-split range_chunks ≤ 100 days each) — as JSON (schema cryptostruct.download-manifest/1), or rendered with `&as=urls` (one URL per line for wget -i / aria2c -i), `&as=sh` (a probe-then-stream download.sh that resumes and skips what is already there) or `&as=aria2`. Every item carries `downloaded_at` (last delivery, null = never) and the text formats are NEW-ONLY by default (`&new=0` includes files downloaded before) — never re-pull an order by accident. Account-wide: `GET https://cryptostruct.com/api/download/manifest` with `Authorization: Bearer ` (the key is download-only; shown on /account/files). The official single-file tool `https://cryptostruct.com/download/cryptostruct-dl.py` (Python ≥ 3.9, stdlib only: `python3 cryptostruct-dl.py --order --token ` or `--key `; `--dry-run`, `--restore`, `--verify`, `--include-downloaded`) implements the whole contract: 202/503 + Retry-After waits, Range resume, restores, size + Repr-Digest sha-256 verification, exit 1 when incomplete, 2 on 410. Single-file responses carry `Repr-Digest: sha-256=::` on 200 and 206 once the delivery server has hashed the file - [Minute statistics API example](https://cryptostruct.com/api/analyze/instrument-last-24h-minutes/67824?format=csv): rolling 24 h of 1-minute stats as CSV (no auth; line 1 is a `#` source comment); `window=7d` (rolling 7 days) and single UTC days via instrument-day-minutes need a Premium bearer token - [Instrument search API](https://cryptostruct.com/api/search?q=btcusdt&venue=binance_swap): resolve instrument IDs (params: q, venue — a code or a family like "binance", class — incl. aliases perp/swap/futures/option, base, limit); venue and class words inside q are understood and echoed in `interpretation`, zero hits carry `did_you_mean` - [Live analytics](https://cryptostruct.com/analyze): charts and market structure built on the same data - Live statistics as markdown (the analytics dashboards need JavaScript — these twins do not): [24h movers](https://cryptostruct.com/analyze/movers.md) · [exchange liquidity benchmark: spread + order-book depth per venue](https://cryptostruct.com/analyze/liquidity.md) · [exchange feed status](https://cryptostruct.com/status.md) · per exchange https://cryptostruct.com/analyze/exchange/.md (30/90/365-day turnover and trades, monthly table, instrument counts; e.g. /analyze/exchange/bybit.md) · [index of the 500 most-traded instruments, each linking to its document](https://cryptostruct.com/analyze/instruments.md) · per instrument https://cryptostruct.com/analyze/instrument/.md (master data: tick size, lot size, minimums, funding interval, listing date; archive coverage; 30 daily rows of trades, USD turnover, average spread in bps, top-of-book and top-20 depth — resolve ids via the instrument search API below) - Asset pages (https://cryptostruct.com/assets/btc, /assets/eth, …): per-asset venue coverage plus a full daily OHLC/turnover price-history table of the most-recorded pair since January 2025 (the answer to "what was the close on "), computed from the tick archive, and the instrument specifications of the most-recorded instruments (tick size, lot size, minimum order, contract size, funding interval, listing date) - Exchange pages (https://cryptostruct.com/exchanges, /exchanges/bybit, /exchanges/hyperliquid, …): per venue the instrument counts per class, coverage span, 30/90/365-day turnover and trade statistics, most-recorded instruments and their instrument specifications (tick size, lot size, minimum order, contract size, funding interval) - Trading-pair pages (https://cryptostruct.com/pairs, /pairs/btc-usdt, /pairs/eth-usdc, …): per pair the venue × class matrix (spot / perpetual / futures per exchange, first recorded day, recorded days, size), the instrument specifications per exchange (tick size, lot size, minimum order / notional, contract size, linear vs inverse, funding interval, listing date — the answer to "what is the tick size of BTCUSDT on "), the daily OHLC/turnover history of the most-recorded instrument and a download link per venue ## Guides Practical how-to articles for bot builders — training data, tick-file parsing, backtesting workflow and low-latency deployment, grounded in the archive above. - [Guides hub](https://cryptostruct.com/guides): all guides, grouped by topic - [Sports Betting Models on Prediction-Market Order Books](https://cryptostruct.com/guides/sports-betting-models-prediction-market-data): Closing-line value, pre-game line movement and in-play microstructure from tick-level Kalshi and Polymarket sports books. €1 per series-day, no subscription. - [Election Markets as Training Data: Long Contracts, Thin Books, Loud Quotes](https://cryptostruct.com/guides/election-markets-order-book-history): Election contracts trade for months and thinly — the order book, not the tape, carries the signal. Tick-level Kalshi and Polymarket politics data, €1 per day. - [Esports Match Markets: Maps, Handicaps and Best-of Series as Labels](https://cryptostruct.com/guides/esports-match-markets-data): LoL, CS2, Dota 2 and Valorant match, map and kill-total contracts with full order books: how best-of series become labels. €1 per series-day, no subscription. - [Strike Ladders as Distribution Labels: CPI, Fed, Temperature — and Crypto Grids](https://cryptostruct.com/guides/strike-ladder-markets-implied-distributions): CPI, Fed-rate and daily temperature ladders settle one rung — the ladder's prices are a distribution, not one probability. Tick-level data, €1 per series-day. - [A market data feed for a crypto trading bot: from historical tick files to the live WebSocket](https://cryptostruct.com/guides/crypto-trading-bot-data-feed): Crypto trading bot data feed: backtest on €1 tick files, then stream the same schema live over WebSocket: event ids, one connection, latency per endpoint, cost. - [Low-Latency Binance Market Data: What the One-Way Numbers Mean](https://cryptostruct.com/guides/low-latency-binance-market-data): Low-latency Binance market data at our self-serve endpoints: measured one-way figures per location, what the numbers include and how to verify them yourself. - [How to Download Kalshi Historical Data](https://cryptostruct.com/guides/how-to-download-kalshi-historical-data): Step by step: find a Kalshi series, grab its free sample contract, buy days from €1 and pull whole histories as ZIP, tar, CSV or Parquet — full L2 books inside. - [How to Download Polymarket Historical Data](https://cryptostruct.com/guides/how-to-download-polymarket-historical-data): Step by step: how to download Polymarket historical data — tick-by-tick trades and L2 order books per contract, as day bundles, ZIP, tar or CSV/Parquet exports. - [Building a Crypto Order Book Dataset for Machine Learning](https://cryptostruct.com/guides/order-book-dataset-for-machine-learning): How to turn tick-by-tick L2 order-book files into a machine-learning dataset: fixed-grid depth snapshots, features, labels, leak-free splits and Parquet output. - [Kalshi vs Polymarket: the Same Market, Two Order Books](https://cryptostruct.com/guides/kalshi-vs-polymarket-data): Same BTC up/down market, two venues: measured spreads, book depth, trade volume and settlement behavior from one shared day of tick data — 97 windows each. - [Where to Run Your Prediction-Market Trading Bot](https://cryptostruct.com/guides/prediction-market-bot-latency): Measured latency paths to Kalshi and Polymarket, where to deploy a prediction-market bot, and how to measure the exchange-to-capture delta yourself. - [How Much Data Does an Up/Down Trading Bot Need?](https://cryptostruct.com/guides/prediction-market-bot-training-data): A 5-minute BTC market settles 288 times a day — that is your training-label budget. Real contract counts, trade volumes and a data plan for up/down bots. - [Inside a Series-Day Bundle: the Tick File Format](https://cryptostruct.com/guides/series-day-bundle-format): What is inside a prediction-market series-day bundle: zstd JSON-lines tick files with L2 order books, nanosecond timestamps and a parser that reads every venue. - [From Backtest to Production: a Bot Architecture Path](https://cryptostruct.com/guides/backtest-to-production): A four-stage path from historical tick files to a live trading bot: research on day bundles, API cross-checks, SDK backtesting, and production deployment. ## Prediction markets - [Prediction-market data hub](https://cryptostruct.com/prediction-markets): Kalshi, Polymarket, predict.fun & OG.com historical data — tick trades + L2 order books for event contracts, sold as series-day bundles (one bundle = every contract of a series for one UTC day, from €1). Every series page carries 30 days of per-day statistics (contracts traded, trades, USD turnover, buy share, quoted spread, top-of-book depth, L2 updates), per-contract daily OHLC/VWAP/turnover with the outcome implied by the last print (complete results grids for the 5m/15m/1h up-or-down families, top-10 elsewhere), a contract-anatomy block and a FREE sample contract file (native ticks + CSV/Parquet + browser replay); the hub, topic, category and venue pages add per-venue daily totals and the biggest single contracts of the newest day - [All categories](https://cryptostruct.com/prediction-markets/category) · [All topic hubs](https://cryptostruct.com/prediction-markets/topic): index pages of the two hub layers below - Category hubs (full series list, coverage + FAQ per category): [Crypto](https://cryptostruct.com/prediction-markets/category/crypto) · [Sports](https://cryptostruct.com/prediction-markets/category/sports) · [Politics](https://cryptostruct.com/prediction-markets/category/politics) · [Economics](https://cryptostruct.com/prediction-markets/category/economics) · [Climate](https://cryptostruct.com/prediction-markets/category/climate) · [Culture](https://cryptostruct.com/prediction-markets/category/culture) · [Science](https://cryptostruct.com/prediction-markets/category/science) - Crypto topic hubs (series per venue, 30-day activity, FAQ): [Bitcoin Up or Down](https://cryptostruct.com/prediction-markets/topic/bitcoin-up-or-down) · [Ethereum](https://cryptostruct.com/prediction-markets/topic/ethereum) · [Solana](https://cryptostruct.com/prediction-markets/topic/solana) · [XRP](https://cryptostruct.com/prediction-markets/topic/xrp) · [Altcoins](https://cryptostruct.com/prediction-markets/topic/altcoins) - Sports topic hubs (series per venue, 30-day activity, FAQ): [NBA](https://cryptostruct.com/prediction-markets/topic/nba) · [WNBA](https://cryptostruct.com/prediction-markets/topic/wnba) · [NFL](https://cryptostruct.com/prediction-markets/topic/nfl) · [MLB & Baseball](https://cryptostruct.com/prediction-markets/topic/mlb) · [NHL](https://cryptostruct.com/prediction-markets/topic/nhl) · [College Football](https://cryptostruct.com/prediction-markets/topic/college-football) · [College Basketball](https://cryptostruct.com/prediction-markets/topic/college-basketball) · [Soccer](https://cryptostruct.com/prediction-markets/topic/soccer) · [FIFA World Cup](https://cryptostruct.com/prediction-markets/topic/fifa-world-cup) · [Premier League](https://cryptostruct.com/prediction-markets/topic/premier-league) · [UEFA Club Competitions](https://cryptostruct.com/prediction-markets/topic/uefa-club-competitions) · [Bundesliga](https://cryptostruct.com/prediction-markets/topic/bundesliga) · [La Liga](https://cryptostruct.com/prediction-markets/topic/la-liga) · [Liga MX](https://cryptostruct.com/prediction-markets/topic/liga-mx) · [MLS & US Soccer](https://cryptostruct.com/prediction-markets/topic/mls) · [South American Soccer](https://cryptostruct.com/prediction-markets/topic/south-american-soccer) · [Tennis](https://cryptostruct.com/prediction-markets/topic/tennis) · [Table Tennis](https://cryptostruct.com/prediction-markets/topic/table-tennis) · [Golf](https://cryptostruct.com/prediction-markets/topic/golf) · [UFC & MMA](https://cryptostruct.com/prediction-markets/topic/ufc) · [Motorsport](https://cryptostruct.com/prediction-markets/topic/motorsport) · [Esports](https://cryptostruct.com/prediction-markets/topic/esports) · [League of Legends](https://cryptostruct.com/prediction-markets/topic/lol) · [Counter-Strike 2](https://cryptostruct.com/prediction-markets/topic/cs2) · [Dota 2](https://cryptostruct.com/prediction-markets/topic/dota-2) · [Valorant](https://cryptostruct.com/prediction-markets/topic/valorant) · [Chess](https://cryptostruct.com/prediction-markets/topic/chess) · [Super Bowl & NFL Playoffs](https://cryptostruct.com/prediction-markets/topic/super-bowl) · [World Series & MLB Playoffs](https://cryptostruct.com/prediction-markets/topic/world-series) · [NBA Champion & Playoffs](https://cryptostruct.com/prediction-markets/topic/nba-champion) · [Stanley Cup & NHL Awards](https://cryptostruct.com/prediction-markets/topic/stanley-cup) · [Ice Hockey Leagues](https://cryptostruct.com/prediction-markets/topic/ice-hockey) · [Serie A](https://cryptostruct.com/prediction-markets/topic/serie-a) · [Ligue 1](https://cryptostruct.com/prediction-markets/topic/ligue-1) · [European Leagues](https://cryptostruct.com/prediction-markets/topic/european-leagues) · [Asian & Middle East Soccer](https://cryptostruct.com/prediction-markets/topic/asian-soccer) · [Domestic & Continental Cups](https://cryptostruct.com/prediction-markets/topic/soccer-cups) · [Formula 1](https://cryptostruct.com/prediction-markets/topic/f1) · [Boxing](https://cryptostruct.com/prediction-markets/topic/boxing) · [Cricket](https://cryptostruct.com/prediction-markets/topic/cricket) · [Rugby & Aussie Rules](https://cryptostruct.com/prediction-markets/topic/rugby) · [Darts](https://cryptostruct.com/prediction-markets/topic/darts) · [Cycling](https://cryptostruct.com/prediction-markets/topic/cycling) · [International Basketball](https://cryptostruct.com/prediction-markets/topic/international-basketball) · [Season Awards & MVPs](https://cryptostruct.com/prediction-markets/topic/season-awards) · [More Sports](https://cryptostruct.com/prediction-markets/topic/more-sports) - Politics topic hubs (series per venue, 30-day activity, FAQ): [Primaries](https://cryptostruct.com/prediction-markets/topic/primaries) · [Midterms, House & Senate](https://cryptostruct.com/prediction-markets/topic/midterms-house-senate) · [2028 Presidential Election](https://cryptostruct.com/prediction-markets/topic/presidential-election-2028) · [Trump Administration](https://cryptostruct.com/prediction-markets/topic/trump-administration) · [Supreme Court & Congress](https://cryptostruct.com/prediction-markets/topic/supreme-court-congress) · [World Elections & Leaders](https://cryptostruct.com/prediction-markets/topic/world-elections) · [Geopolitics](https://cryptostruct.com/prediction-markets/topic/geopolitics) - Economics topic hubs (series per venue, 30-day activity, FAQ): [Gold](https://cryptostruct.com/prediction-markets/topic/gold) · [Silver](https://cryptostruct.com/prediction-markets/topic/silver) · [Oil (WTI)](https://cryptostruct.com/prediction-markets/topic/oil) · [Commodities](https://cryptostruct.com/prediction-markets/topic/commodities) · [S&P 500](https://cryptostruct.com/prediction-markets/topic/sp500) · [Nasdaq-100](https://cryptostruct.com/prediction-markets/topic/nasdaq) · [Stock Indices](https://cryptostruct.com/prediction-markets/topic/stock-indices) · [Stock Up/Down](https://cryptostruct.com/prediction-markets/topic/stock-updown) · [CPI & Inflation](https://cryptostruct.com/prediction-markets/topic/cpi-inflation) · [Fed & Interest Rates](https://cryptostruct.com/prediction-markets/topic/fed) · [Jobs, Unemployment & GDP](https://cryptostruct.com/prediction-markets/topic/jobs-unemployment) · [GPU & Memory Prices](https://cryptostruct.com/prediction-markets/topic/gpu-memory-prices) · [IPOs & Corporate Actions](https://cryptostruct.com/prediction-markets/topic/ipos) · [Gas Prices](https://cryptostruct.com/prediction-markets/topic/gas-prices) · [Company KPIs & Earnings](https://cryptostruct.com/prediction-markets/topic/company-kpis) · [GDP & Recession](https://cryptostruct.com/prediction-markets/topic/gdp-recession) · [Treasury Yields & FX](https://cryptostruct.com/prediction-markets/topic/yields-fx) · [Housing & Rents](https://cryptostruct.com/prediction-markets/topic/housing-rents) - Climate topic hubs (series per venue, 30-day activity, FAQ): [Temperature](https://cryptostruct.com/prediction-markets/topic/temperature) · [Hurricanes](https://cryptostruct.com/prediction-markets/topic/hurricanes) · [Lowest Temperature](https://cryptostruct.com/prediction-markets/topic/lowest-temperature) - Culture topic hubs (series per venue, 30-day activity, FAQ): [Billboard & Music](https://cryptostruct.com/prediction-markets/topic/billboard-music) · [Awards](https://cryptostruct.com/prediction-markets/topic/awards) · [Love Island & TV](https://cryptostruct.com/prediction-markets/topic/love-island-tv) · [Elon Musk Tweets](https://cryptostruct.com/prediction-markets/topic/elon-musk-tweets) · [Rotten Tomatoes](https://cryptostruct.com/prediction-markets/topic/rotten-tomatoes) · [Mention Markets](https://cryptostruct.com/prediction-markets/topic/mentions) · [Movies, TV & Streaming](https://cryptostruct.com/prediction-markets/topic/movies-tv) · [Podcasts, Media & Internet](https://cryptostruct.com/prediction-markets/topic/podcasts-media) · [Celebrities & Fashion](https://cryptostruct.com/prediction-markets/topic/celebrities-fashion) - Science topic hubs (series per venue, 30-day activity, FAQ): [AI Models](https://cryptostruct.com/prediction-markets/topic/ai-models) · [Space & Tech Milestones](https://cryptostruct.com/prediction-markets/topic/space-tech) · [Health & Science](https://cryptostruct.com/prediction-markets/topic/health-science) - [Most traded prediction markets](https://cryptostruct.com/prediction-markets/most-traded): series ranked by 30-day trades and USD turnover per venue (from our own tick capture) plus the biggest live 24-hour moves — the answer to "which Kalshi/Polymarket/predict.fun/OG.com markets are most active" - Flagship series pages (coverage span, per-day stats, buy link on each): [Kalshi BTC Up/Down 15m](https://cryptostruct.com/prediction-markets/kalshi-btc-15m) · [Polymarket BTC Up/Down 5m](https://cryptostruct.com/prediction-markets/polymarket-btc-5m) · [Polymarket BTC Up/Down 15m](https://cryptostruct.com/prediction-markets/polymarket-btc-15m) · [Kalshi Bitcoin price Above/below](https://cryptostruct.com/prediction-markets/kalshi-kxbtcd) · [Polymarket ETH Up/Down 5m](https://cryptostruct.com/prediction-markets/polymarket-eth-5m) · [Kalshi Pro Football Total Points](https://cryptostruct.com/prediction-markets/kalshi-kxnfltotal) · [Polymarket FIFA World Cup](https://cryptostruct.com/prediction-markets/polymarket-fifa-world-cup) · [Kalshi S&P 500 above/below](https://cryptostruct.com/prediction-markets/kalshi-kxinxu) · [Kalshi Nasdaq above/below](https://cryptostruct.com/prediction-markets/kalshi-kxnasdaq100u) · [Kalshi WTI oil on day](https://cryptostruct.com/prediction-markets/kalshi-kxwti) · [Polymarket Daily High Temperature — New York City](https://cryptostruct.com/prediction-markets/polymarket-high-temp-nyc) · [Polymarket Elon Musk # of Tweets](https://cryptostruct.com/prediction-markets/polymarket-elon-musk-tweets) · [Kalshi House Race Winner?](https://cryptostruct.com/prediction-markets/kalshi-kxhouserace) · [Polymarket Counter-Strike 2 esports](https://cryptostruct.com/prediction-markets/polymarket-cs2) - [Day bundles in the shop](https://cryptostruct.com/shop/bundles): browse and buy series-day bundles — prediction series and Deribit option chains (day calendar per series; delivery per file, as one ZIP, or as one tar for days over 4 GB) - [Kalshi venue data](https://cryptostruct.com/exchanges/kalshi) · [Polymarket venue data](https://cryptostruct.com/exchanges/polymarket) · [predict.fun venue data](https://cryptostruct.com/exchanges/predict_fun) · [OG.com venue data](https://cryptostruct.com/exchanges/og_com): contract counts, coverage, most-traded series and topic hubs per venue ## Options data - [Crypto options data hub](https://cryptostruct.com/options-data): Deribit option chains as day bundles — every call and put of an underlying for one UTC day, all strikes and expiries, with tick trades, L2 order books and the greeks/IV/mark-price stream (message type 7); days over 4 GB deliver as one resumable tar (see the range route above) - Option-chain pages (coverage, recent days, largest contracts): [Deribit BTC options (inverse)](https://cryptostruct.com/options-data/deribit-btc-options) · [Deribit ETH options (inverse)](https://cryptostruct.com/options-data/deribit-eth-options) · [Deribit SOL options (USDC linear)](https://cryptostruct.com/options-data/deribit-sol-usdc-options) · [Deribit XRP options (USDC linear)](https://cryptostruct.com/options-data/deribit-xrp-usdc-options) · [Deribit BTC options (USDC linear)](https://cryptostruct.com/options-data/deribit-btc-usdc-options) · [Deribit ETH options (USDC linear)](https://cryptostruct.com/options-data/deribit-eth-usdc-options) · [Deribit PAXG options (USDC linear)](https://cryptostruct.com/options-data/deribit-paxg-usdc-options) · [Deribit BNB options (USDC linear)](https://cryptostruct.com/options-data/deribit-bnb-usdc-options) · [Deribit TRX options (USDC linear)](https://cryptostruct.com/options-data/deribit-trx-usdc-options) · [Deribit AVAX options (USDC linear)](https://cryptostruct.com/options-data/deribit-avax-usdc-options) · [Deribit MATIC options (USDC linear)](https://cryptostruct.com/options-data/deribit-matic-usdc-options) · [Deribit HYPE options (USDC linear)](https://cryptostruct.com/options-data/deribit-hype-usdc-options) ## Futures curve data - [Crypto futures curve data hub](https://cryptostruct.com/futures-data): dated futures as day bundles — every contract with an expiry date of one underlying on one venue for one UTC day (each expiry: tick trades, L2 order books, mark/index messages, liquidations where the venue's files carry them), one item per day; perpetuals are separate instruments (see the futures & perpetuals data page) - Futures-curve pages (coverage, recent days, term structure of the newest day): [BitMEX BTC futures (XBT, all settlements)](https://cryptostruct.com/futures-data/bitmex-btc-futures) (ended Sep 2026) · [Bybit BTC futures (all settlements)](https://cryptostruct.com/futures-data/bybit-btc-futures) · [Bybit ETH futures (all settlements)](https://cryptostruct.com/futures-data/bybit-eth-futures) · [Bybit SOL futures (all settlements)](https://cryptostruct.com/futures-data/bybit-sol-futures) · [Bybit XRP futures (all settlements)](https://cryptostruct.com/futures-data/bybit-xrp-futures) · [Bybit DOGE futures (all settlements)](https://cryptostruct.com/futures-data/bybit-doge-futures) · [Bybit MNT futures (all settlements)](https://cryptostruct.com/futures-data/bybit-mnt-futures) · [Bybit XAUT futures (all settlements)](https://cryptostruct.com/futures-data/bybit-xaut-futures) · [Bybit HYPE futures (all settlements)](https://cryptostruct.com/futures-data/bybit-hype-futures) · [Deribit BTC futures (inverse)](https://cryptostruct.com/futures-data/deribit-btc-futures) · [Deribit ETH futures (inverse)](https://cryptostruct.com/futures-data/deribit-eth-futures) · [Deribit BTC futures (USDC linear)](https://cryptostruct.com/futures-data/deribit-btc-usdc-futures) · [Deribit ETH futures (USDC linear)](https://cryptostruct.com/futures-data/deribit-eth-usdc-futures) · [Deribit AVAX futures (USDC linear)](https://cryptostruct.com/futures-data/deribit-avax-usdc-futures) · [Deribit SOL futures (USDC linear)](https://cryptostruct.com/futures-data/deribit-sol-usdc-futures) · [Deribit TRX futures (USDC linear)](https://cryptostruct.com/futures-data/deribit-trx-usdc-futures) · [Deribit XRP futures (USDC linear)](https://cryptostruct.com/futures-data/deribit-xrp-usdc-futures) · [Deribit HYPE futures (USDC linear)](https://cryptostruct.com/futures-data/deribit-hype-usdc-futures) · [Gate.io BTC futures (USDT)](https://cryptostruct.com/futures-data/gate-btc-usdt-futures) · [Gate.io ETH futures (USDT)](https://cryptostruct.com/futures-data/gate-eth-usdt-futures) · [Gate.io DOGE futures (USDT)](https://cryptostruct.com/futures-data/gate-doge-usdt-futures) · [Okx BTC futures (coin-margined)](https://cryptostruct.com/futures-data/okx-btc-usd-futures) · [Okx ETH futures (coin-margined)](https://cryptostruct.com/futures-data/okx-eth-usd-futures) · [Okx BTC futures (USDT-margined)](https://cryptostruct.com/futures-data/okx-btc-usdt-futures) (ended Jun 2026) · [Okx ETH futures (USDT-margined)](https://cryptostruct.com/futures-data/okx-eth-usdt-futures) (ended Jun 2026) · [Okx BTC futures (USD-margined)](https://cryptostruct.com/futures-data/okx-btc-usd-um-futures) · [Okx XAU futures (USD-margined)](https://cryptostruct.com/futures-data/okx-xau-usd-um-futures) · [Okx ETH futures (USD-margined)](https://cryptostruct.com/futures-data/okx-eth-usd-um-futures) · [Okx SOL futures (USD-margined)](https://cryptostruct.com/futures-data/okx-sol-usd-um-futures) · [crypto.com ETH futures (USD)](https://cryptostruct.com/futures-data/crypto-com-eth-futures) · [crypto.com BTC futures (USD)](https://cryptostruct.com/futures-data/crypto-com-btc-futures) · [Okx BTC futures (USDC-margined)](https://cryptostruct.com/futures-data/okx-btc-usdc-futures) (ended Jun 2025) · [Okx ETH futures (USDC-margined)](https://cryptostruct.com/futures-data/okx-eth-usdc-futures) (ended Jun 2025) ## Platform & realtime CryptoStruct also operates the realtime side of the same stack — normalized co-located market-data APIs, managed low-latency connectivity between venues, and an ultra-low-latency trading engine with a Strategy Development Kit. The market-data feed is now also self-serve by the day; order entry, connectivity and the SDK remain contract products (quoted, not purchasable online). - [Real-time crypto market data (all venues)](https://cryptostruct.com/realtime-data): the parent of the per-venue realtime pages — Binance, Coinbase, Kalshi, Polymarket and OKX on one page: a card per venue, every line with its one-way latency and basis, the feed contents per market, how UTC-day access works, the per-day prices and the FAQ - [Low-latency Binance market data (product page)](https://cryptostruct.com/realtime): what the Binance feed carries per market and topic (Binance USDT-M and Binance Spot), the endpoints with their one-way latency and its basis, how UTC-day access works, the per-day price and the FAQ — the page to read before buying Binance realtime access - [Coinbase real-time market data](https://cryptostruct.com/realtime/coinbase): order book and trades for every instrument over WebSocket (JSON or SBE), captured at the venue in Ashburn and delivered at our Ohio or Tokyo endpoints over dedicated lines; the line latency with its basis, how UTC-day access works, the per-day price and the FAQ - [Kalshi real-time market data](https://cryptostruct.com/realtime/kalshi): order book and trades for every contract over WebSocket (JSON or SBE), captured at the venue in Ohio and delivered at our Tokyo endpoint over a dedicated line; the line latency with its basis, how UTC-day access works, the per-day price (whole market only) and the FAQ - [Polymarket real-time market data](https://cryptostruct.com/realtime/polymarket): order book and trades for every contract over WebSocket (JSON or SBE), captured at the venue in London and delivered at our Tokyo endpoint over a dedicated line; the line latency with its basis, how UTC-day access works, the per-day price (whole market only) and the FAQ - [OKX real-time market data](https://cryptostruct.com/realtime/okx): order book, top of book, trades, mark price, index price, funding rate and liquidations for every instrument over WebSocket (JSON or SBE), captured at the venue in Tokyo and delivered at our London, Frankfurt, Ashburn or Ohio endpoints over dedicated lines; the line latency with its basis, how UTC-day access works, the per-day price and the FAQ - [Realtime access (self-serve)](https://cryptostruct.com/shop/realtime): live WebSocket market data for Binance USDT-M, Binance Spot, Coinbase Spot, Kalshi, Polymarket and OKX, captured at each venue and delivered at our London, Frankfurt, Ashburn, Ohio or Tokyo endpoints over dedicated lines (Binance and OKX from Tokyo at London, Frankfurt, Ashburn or Ohio; Coinbase from Ashburn at Ohio or Tokyo; Kalshi from Ohio at Tokyo; Polymarket from London at Tokyo) (London, Frankfurt, Ashburn, Ohio and Tokyo are the self-serve locations today; more will follow), bought per UTC calendar day (paid days start on the next UTC day, the rest of the purchase day is free) — €49 per instrument-day or €99 per market-day (every instrument of the market); Kalshi and Polymarket are sold as whole markets only, longer runs cost less per day: −10 % from 14 days, −25 % from 30, −37 % from 180, −50 % from 365; one API key per account (`?apiKey=` on the WebSocket URL), 3 parallel connections per key and endpoint included (one connection can subscribe to every instrument); +5 more for €10 per day, up to 28, added from your account, JSON or SBE encoding, extend any time from https://cryptostruct.com/account/realtime - [Realtime connection guide](https://cryptostruct.com/docs/realtime): how to connect your own system — one WebSocket endpoint per market (the port selects the market), API-key login, subscribe flow, every message type, keep-alive/reconnect rules, runnable Python and Node examples - [Realtime feed spec (markdown, for coding agents)](https://cryptostruct.com/docs/realtime.md): the connection guide as one self-contained markdown document — endpoint per market, login/subscribe sequence, every message type, error and reconnect rules, an implementation checklist and a ready prompt for Claude Code / Cursor ("implement this feed"); the API key is read from the environment, never pasted into prompts - [Realtime instrument directory](https://cryptostruct.com/api/realtime/instruments?market=binance_swap): instrument ids, codes, states, lifecycle times, tick/lot sizes and contract specs per market (add &format=csv; poll &since= every five minutes for new instruments and state changes) — requires the realtime API key as `Authorization: Bearer` header (the same key as the feed) and lists the markets the key holds a day for; the shop replaces the platform's /api/instruments and host-discovery endpoints for self-serve customers — documented at https://cryptostruct.com/docs/realtime#instrument-master-data; field-level protocol reference at https://docs.cryptostruct.com/market-data-api/protocol/ - [Product & API documentation](https://docs.cryptostruct.com/): the full platform docs — market-data API, [Strategy SDK](https://docs.cryptostruct.com/strategy-development/basics/) and [Trading API](https://docs.cryptostruct.com/trading-api/concepts/) - [Pricing](https://cryptostruct.com/pricing): realtime market-data and order-entry APIs (per API per month, volume-tiered), the Strategy Development Kit + trading engine, the per-instrument-day archive and credit packs (bulk discount on shop days, purchased credits never expire) — all on one page - [Premium membership](https://cryptostruct.com/premium): €20 a month for 50 download credits (1 credit = one instrument-day, roll over up to 150) plus the deep analytics tier; credit packs (€100 → 140 credits · €250 → 375 credits · €1,000 → 1,750 credits) for any signed-in account, purchased credits never expire - [Contact](https://cryptostruct.com/contact): managed connectivity, colocated execution and custom setups ## Legal - [Terms & Conditions](https://cryptostruct.com/terms) (markdown: https://cryptostruct.com/terms.md): the contract for every purchase — consumers and businesses, perpetual file purchases, Premium and credits, realtime access, agent orders, refunds and withdrawal, liability - [Data License](https://cryptostruct.com/license): what a buyer may do with the data — unlimited internal use including model training, derived data is the buyer's, no redistribution or resale of the raw data - [Imprint & privacy policy](https://cryptostruct.com/imprint) # ---- https://cryptostruct.com/shop.md # CryptoStruct Data Shop — historical crypto & prediction-market data > Canonical HTML: https://cryptostruct.com/shop (needs JavaScript) · This document: https://cryptostruct.com/shop.md · Day bundles: https://cryptostruct.com/shop/bundles.md · Realtime: https://cryptostruct.com/shop/realtime.md · Agents: https://cryptostruct.com/llms.txt ## What is sold - **Tick-data day files** — one file = one instrument × one UTC day, every message the venue published for it (L2 order-book snapshots + updates, top of book, trades, funding/mark/index, liquidations, option greeks where the venue sends them). 800K+ instruments across 35+ venues, archive since 2021-02-08, newest day = yesterday (UTC). **€1 per instrument-day**, tax-inclusive, no account, subscription or minimum. - **Day bundles** (`kind: series_day`) — every contract file of one prediction-market series (Kalshi, Polymarket, predict.fun, OG.com), one Deribit option chain or one dated-futures curve on one UTC day; priced per series, mostly €1 per bundle day. List: https://cryptostruct.com/shop/bundles.md. - **Realtime access** — live Binance WebSocket data by the UTC day, sold on the website only: https://cryptostruct.com/shop/realtime.md. File format: `.txt.zst` (zstd-compressed JSON lines; line 1 = instrument master data; decimal strings for prices/quantities; integer nanosecond UTC timestamps). Reference + parser: https://cryptostruct.com/skills/cryptostruct-market-data/SKILL.md. Free full-day samples in the same format: https://cryptostruct.com/download.md. ## How to find the instrument `GET https://cryptostruct.com/api/search?q=&venue=&class=` — e.g. `q=BTCUSDT&venue=binance&class=perp` → Binance USDT-M perpetual, instrument_id 67824. Venue and class words inside `q` are understood ("binance btcusdt perp"). Coverage: `GET https://cryptostruct.com/api/instrument/{id}/coverage`, days: `GET https://cryptostruct.com/api/instrument/{id}/days`. Instrument ids are stable and identical across MCP, shop and analytics pages. ## How to buy 1. **Hand the user a link** — Buy link (no API call needed): https://cryptostruct.com/shop?i=&d=.. opens the shop with those UTC days of the instrument in the cart; d also takes a comma list or a mix (d=2026-09-01..2026-09-07,2026-09-15). Bundles: https://cryptostruct.com/shop/bundles?bundle=&d=…. Only archived days are added (gaps and days still being merged are skipped), at most 366 days of span and 1000 lines per cart; the user pays on the site. Example: https://cryptostruct.com/shop?i=67824&d=2026-09-29..2026-10-05 = seven days of Binance BTCUSDT perpetual ticks. 2. **MCP** (https://cryptostruct.com/mcp, docs https://cryptostruct.com/docs/mcp.md): search_instruments → get_coverage → get_price_quote → create_checkout → get_checkout_status → get_order_files. Signed-in agents can pay with the account's credits — only with the user's consent. 3. **Plain HTTP** (https://cryptostruct.com/docs/api.md, OpenAPI https://cryptostruct.com/openapi.json): `POST https://cryptostruct.com/api/quote` → guest `POST https://cryptostruct.com/v1/checkout/session` (Stripe page for the user) → poll → download with the `download_token`. Card payment always happens on a Stripe page the USER opens; an agent never collects card details. Guest download links stay valid for 90 days; orders made with a signed-in account never expire. Credits apply to historical data — single tick-day files and Day Bundles. Realtime access is paid by card. ## Delivery Per file: `GET https://cryptostruct.com/api/download/order/{order_id}/{instrument_id}/{date}?t=` (resumable; `&status=1` readiness, `&restore=1` for days older than ~1 month in deep archive, `&format=trades.csv.gz|bbo.csv.gz|liquidations.csv.gz|trades.parquet|liquidations.parquet` for flat exports). Bundles: one ZIP per day (`&kind=series_day&zip=1`) or one resumable tar per date range. Full contract: https://cryptostruct.com/llms.txt. Terms: https://cryptostruct.com/terms.md · Data license: https://cryptostruct.com/license · Pricing overview (credit packs, Premium): https://cryptostruct.com/pricing # ---- https://cryptostruct.com/docs/api.md # Crypto market data API — buy over HTTP, stream over WebSocket > The same flow the MCP server (https://cryptostruct.com/mcp) runs, as plain HTTP calls: search → coverage → quote → checkout → poll → download. > Canonical HTML: https://cryptostruct.com/docs/api · This document: https://cryptostruct.com/docs/api.md > Machine-readable description: https://cryptostruct.com/openapi.json (OpenAPI 3.1). Site map for agents: https://cryptostruct.com/llms.txt. Terms: https://cryptostruct.com/terms.md · Data license: https://cryptostruct.com/license The CryptoStruct crypto market data API is self-service: a keyless HTTP flow to find instruments, quote and buy tick-data days (machine-readable as OpenAPI 3.1), a WebSocket feed for live order books and trades, free statistics routes, and an MCP server for coding agents — €1 per instrument-day, no subscription, no account for a guest purchase. Contents: Find the instrument · Which days exist · Quote · Checkout (guest) · Poll until paid · The order · Download · Download manifest, tool and account key · Try before buying · No scripting? Hand the user a link · Free endpoints — no key, no purchase · Instrument ids and master data · WebSocket real-time API · The same flow as MCP tools · Limits and conduct Facts that do not change per call: one file = one instrument × one UTC day, €1 per instrument-day (prices are tax-inclusive EUR); day bundles (`kind: series_day`) are priced per series, mostly €1 per bundle-day; no account, subscription or API key is needed — a guest checkout only needs an email for the receipt. Card payment ALWAYS happens in the user's browser on a Stripe page: an agent never collects card details. Every endpoint is rate-limited per IP; on a 429 wait for the `Retry-After` seconds. Machine-readable description: [OpenAPI 3.1](https://cryptostruct.com/openapi.json) · site map for agents: [llms.txt](https://cryptostruct.com/llms.txt) · [terms](https://cryptostruct.com/terms.md) · [data license](https://cryptostruct.com/license). ## Find the instrument `GET https://cryptostruct.com/api/search?q=&venue=&class=&base=&limit=25` - `q`: ticker (`BTCUSDT`), pair, base asset, or a numeric instrument id. Venue and class WORDS inside `q` are understood (`binance btcusdt perp`, `BTCUSDT-PERP`, `ETH options`) and echoed in `interpretation`. - `venue`: a venue code (`binance_swap`) or a family (`binance` = every Binance venue, `kraken`, `okx`, `gate`, `htx`). - `class`: `spot | perpetual | future | call | put | prediction` — aliases `perp`, `swap`, `futures`, `option` (= call + put) are accepted; an unknown value is a 400 with the vocabulary. - Response: `{query, filters, total, results[{instrument_id, code, type, exchange{code,name}, state, data{days, first_day, last_day, total_bytes}}], interpretation?, did_you_mean?}`. Zero hits come with `did_you_mean` (nearest venue codes, what to drop). Use `exchange.code` + `code` + `type` to confirm you have the right market before buying — `BTCUSDT` exists on many venues. - Free: 100 results per call. The `instrument_id` is stable and identical across MCP, shop and analytics pages. Example: `curl -s 'https://cryptostruct.com/api/search?q=BTCUSDT&venue=binance&class=perp'` → Binance USDT-M perpetual `BTCUSDT` = instrument_id `67824`. ## Which days exist - `GET https://cryptostruct.com/api/instrument/{id}/coverage` → `{first_day, last_day, days_with_data, coverage_pct, gaps[{from,to,days}], total_bytes}` (one call, use it to pick a window). - `GET https://cryptostruct.com/api/instrument/{id}/days?limit=100&before=YYYY-MM-DD` → `{days[{date, size}], next_cursor}`, newest first — "last week" = the first 7 rows. `size` is the compressed (zstd) file size in bytes. - `GET https://cryptostruct.com/api/instrument/{id}/calendar?month=YYYY-MM` → the days of one month. - Day bundles (prediction series, option chains, futures curves): `GET https://cryptostruct.com/api/bundles` lists every sellable series with `bundle_id`, `series_key`, `price_cents`, coverage; `GET https://cryptostruct.com/api/bundle/{series_key}/days?limit=&before=` lists its days. In quote and checkout a bundle day is `{instrument_id: , date, kind: "series_day"}`. - Unknown and hidden ids answer 404 `{error:{code:"NOT_FOUND"}}` alike. Days are UTC; the newest sellable day is normally yesterday (UTC). Only days that exist can be bought — the quote tells you which ones do not. ## Quote `POST https://cryptostruct.com/api/quote` with `{"items":[{"instrument_id":67824,"date":"2026-09-30","kind":"tick"}, …]}` (1–365 items, ≤ 20 distinct instruments/bundles, `kind` defaults to `tick`; no other keys). Response: `{items_requested, items_available, total_cents, total_eur, currency:"EUR", price_eur_per_day, available[{instrument_id,date,kind}], missing[{instrument_id,date,kind,reason}], bundles?, bundle_days?, vat_note, terms_url, checkout{method,url,headers,body_example,then[]}}`. `available` is the checkout-ready item list; `checkout` is the next step spelled out. Keyless, 30 calls per minute per IP. ## Checkout (guest) `POST https://cryptostruct.com/v1/checkout/session` - Headers: `Content-Type: application/json`, `Idempotency-Key: ` (reuse the same key when retrying the same basket — never for a new one), `X-CryptoStruct-Client: http` (marks the order as an HTTP-agent order in our statistics; optional, never affects price or delivery). - Body: `{"email": "", "items": [], "success_url": "https://cryptostruct.com/order/thanks?session_id={CHECKOUT_SESSION_ID}", "cancel_url": "https://cryptostruct.com/shop"}` — return URLs must be on https://cryptostruct.com (anything else is a 400). - Response `201`: `{order_id, checkout_url, session_id, currency, item_count, subtotal_cents}`. Open `checkout_url` for the user (show it, don't fetch it): that is the Stripe page where they pay by card. The order is pending until then. - Errors: 400 `INVALID_INPUT`, 422 `FILE_NOT_AVAILABLE` (`details.missing` lists the items — drop them and retry), 429 (checkout is limited per IP), 409 `ALREADY_OWNED` (signed-in only). - Signed-in buyers (Clerk session / OAuth bearer) get credits and owned-file dedupe automatically; that path is the [MCP server](https://cryptostruct.com/docs/mcp)'s job — plain HTTP agents use the guest flow above. ## Poll until paid `GET https://cryptostruct.com/v1/checkout/session/{session_id}` → `{status:"pending"}` while the user is on the Stripe page, then `{status:"paid", order_id, download_token, invoice_hosted_url, invoice_pdf_url}`. Poll every 10–15 seconds; a session the user abandons stays pending and simply expires — create a new checkout for a new attempt. 404 = unknown session. ## The order `GET https://cryptostruct.com/v1/orders/{order_id}` with `Authorization: Bearer ` → `{order_id, status, paid_at, currency, total_cents, item_count, items[{instrument_id, code, exchange_code, type, date, kind, bytes, price_cents}], invoice_hosted_url, invoice_pdf_url}`. A wrong token and an unknown order both answer 404 (no enumeration). After 90 days a guest order answers 410 `ORDER_EXPIRED` — download within that window, or buy with a signed-in account (never expires). The `download_token` is the only credential: treat it like a password, keep it out of logs and prompts. ## Download Per tick file: `GET https://cryptostruct.com/api/download/order/{order_id}/{instrument_id}/{date}?t=` streams the `.txt.zst` file (zstd-compressed JSON lines; line 1 is the instrument master data; `zstd -d` to inflate). Files are 0.3–2 GB per day for the busiest markets — stream to disk, support `Range` resumes (`curl -C -`). A `200`/`206` carries `Content-Length`, `Accept-Ranges` and, once our delivery server has hashed the file, `Repr-Digest: sha-256=::` for verification. A `202` with a JSON body is NOT the file: `{state:"pending", reason:"queued"|"downloading"|"restoring"|"archived", eta_seconds}` plus `Retry-After` — poll `&status=1` (same JSON, plus `sha256` when known) and retry; `reason:"archived"` means deep archive (days older than ~1 month) — `&restore=1` starts the restore (~12 h), then poll `&status=1`. Instead of `?t=`, account orders accept `Authorization: Bearer `. Faster path for clients that follow redirects: send `X-CryptoStruct-Direct: 1` and a single file may answer `302` to a short-lived storage URL (≤ 1 h, same bytes, `Range` works, no `Repr-Digest`) — follow it without the `Authorization` header (storage rejects it, `curl -L` drops it) and request this URL again to resume after it expired. Derived flat exports of the same day: `&format=trades.csv.gz | bbo.csv.gz | liquidations.csv.gz | trades.parquet | liquidations.parquet` — exports are prepared server-side first: the first request answers `202` + `Retry-After` (`{state:"pending", reason:"converting"}`) while the file is built (minutes for a flagship day), later requests serve the finished file with `Content-Length` and `Range` support; `&format=…&probe=1` reports `ready | pending | empty | failed` without bytes. Day bundles (`kind: series_day`): the same route with `&kind=series_day` plus `&zip=1` (every contract file of that day as ONE archive — never one request per contract, a day can hold thousands), `&manifest=1` (member list), `&status=1` (aggregated `{ready,pending,cold}`), `&restore=1`, `&zip=1&probe=1` (readiness; poll it until `state:"ready"` — the probe copies the day's files onto our server, and `zip=1` answers `202 pending` until every file is local; `{state:"too_large"}` for days over 4 GB), `&complete=1` (409 instead of a partial archive). Whole histories: `GET https://cryptostruct.com/api/download/order/{order_id}/{bundle_id}/range?kind=series_day&from=YYYY-MM-DD&to=YYYY-MM-DD&t=` streams every owned day of the window as one resumable tar (≤ 100 days per stream; `&status=1` / `&restore=1` / `&manifest=1` companions; a `503` with `Retry-After` means wait and retry — `WARMING` while the first day is still being copied to our server, `RANGE_BUSY` while two streams already run). The full delivery contract is on [llms.txt](https://cryptostruct.com/llms.txt). ## Download manifest, tool and account key Start every bulk pull from the manifest: `GET https://cryptostruct.com/api/download/order/{order_id}/manifest?t=` lists everything the order entitles you to — `items[]` (tick files with `url`, `status_url`, `restore_url`, `bytes`, `filename`, `sha256` when known and `formats{}`) and `bundles[]` (per day `zip_url` / `status_url` / `restore_url` / `manifest_url`, `tar_url` over 4 GB, and `range_chunks[]` pre-split to the 100-day / 250 GiB caps) — as JSON (schema `cryptostruct.download-manifest/1`). `&as=urls` renders it as one URL per line (`wget -i`, `aria2c -i`), `&as=sh` as a probe-then-stream `download.sh` that resumes and skips what you already have, `&as=aria2` as an aria2 input file. Every item carries `downloaded_at` (last delivery, `null` = never); the text renderings are new-only by default (`&new=0` includes files downloaded before) so a re-run never re-pulls an order by accident. Never guess file URLs — only what the manifest lists exists. The official tool `https://cryptostruct.com/download/cryptostruct-dl.py` (one Python ≥ 3.9 file, standard library only) implements the whole contract: `python3 cryptostruct-dl.py --order --token --out ` — `--dry-run` prints the plan, `--restore` wakes cold files, `--verify` checks size + `Repr-Digest`, `--include-downloaded` re-fetches what was delivered before; exit 0 = complete, 1 = incomplete, 2 = expired link / usage, 3 = interrupted. Signed-in accounts get a download key (`cs_dl_…`, shown under Get your files on /account/files): `Authorization: Bearer ` on `GET https://cryptostruct.com/api/download/manifest` lists every paid order of the account, and the same header works on every download URL and on `GET /v1/me/orders`. The key is download-only — it can never buy, touch credits or realtime — and rotating it in the account stops the old key at once. - `GET https://cryptostruct.com/v1/me/download-key` (Clerk JWT) → `{api_key, created_at, rotated_at}` — minted on first read; `POST https://cryptostruct.com/v1/me/download-key/rotate` mints a new one (browser session only — an agent token gets 403 `SESSION_REQUIRED`). - `GET https://cryptostruct.com/v1/download-key` with `Authorization: Bearer ` → `{user_id}` (introspection; unknown keys answer a uniform 404). - `POST https://cryptostruct.com/v1/downloads/delivered` `{order_id, via: "tool", items:[{instrument_id, date, kind}]}` (bearer = token, JWT or key) marks items as delivered — our delivery server reports every completed stream this way; a client that fetched through other means may report too, so `downloaded_at` stays truthful. - Every download URL and `GET /v1/me/orders` accept the key in the `Authorization` header as well; `?t=` stays the guest path. ## Try before buying `GET https://cryptostruct.com/api/samples` → curated free full-day files in the exact shop format, each with a direct `href` (`/api/download/sample/{id}/{date}`, no auth, `?format=` supported). Parser, format reference and recipes: the [Agent Skill](https://cryptostruct.com/skills/cryptostruct-market-data/SKILL.md) and the [downloads page](https://cryptostruct.com/download#ai-toolkit). ## No scripting? Hand the user a link Buy link (no API call needed): https://cryptostruct.com/shop?i=&d=.. opens the shop with those UTC days of the instrument in the cart; d also takes a comma list or a mix (d=2026-09-01..2026-09-07,2026-09-15). Bundles: https://cryptostruct.com/shop/bundles?bundle=&d=…. Only archived days are added (gaps and days still being merged are skipped), at most 366 days of span and 1000 lines per cart; the user pays on the site. Example: https://cryptostruct.com/shop?i=67824&d=2026-09-29..2026-10-05 = seven days of Binance BTCUSDT perpetual ticks. The page lists what landed in the cart. ## Free endpoints — no key, no purchase - Instrument search: `GET https://cryptostruct.com/api/search?q=` (section 1) — 100 results per call. - Coverage and days: `GET https://cryptostruct.com/api/instrument/{id}/coverage`, `…/days`, `…/calendar?month=YYYY-MM` (section 2) — also the sellable day bundles via `GET https://cryptostruct.com/api/bundles`. - 1-minute statistics: `GET https://cryptostruct.com/api/analyze/instrument-last-24h-minutes/{id}?format=csv` — the rolling last 24 h of any instrument as a 22-column CSV (OHLC, VWAP, trades, turnover, spreads, depth), computed from every recorded trade; the free CSV carries a `#` source line above the header. - Free sample days: `GET https://cryptostruct.com/api/samples` (section 8) — complete UTC days in the shop format, with the CSV/Parquet exports. - Quote: `POST https://cryptostruct.com/api/quote` (section 3) — the EUR total and the checkout recipe, keyless. ## Instrument ids and master data Every endpoint keys on the numeric `instrument_id` — stable, identical across the shop, the MCP server, the analytics pages and the realtime feed. Resolve it with the search API (`https://cryptostruct.com/api/search?q=BTCUSDT&venue=binance&class=perp` → `67824` for the Binance USDT-M perpetual) and confirm `exchange.code` + `code` + `type`, because the same ticker exists on many venues. Line 1 of every tick file repeats the instrument master data (tick size, lot size, contract specs), so a downloaded day is self-describing; realtime buyers additionally export the master data of every market they hold from the instrument directory (next section). ## WebSocket real-time API Live data is a WebSocket API bought by the UTC day: Binance USDT-M, Binance Spot, Coinbase Spot, Kalshi, Polymarket and OKX stream over WebSocket in JSON or SBE, captured at each venue and delivered at our London, Frankfurt, Ashburn, Ohio or Tokyo endpoints over dedicated lines (Binance and OKX from Tokyo at London, Frankfurt, Ashburn or Ohio; Coinbase from Ashburn at Ohio or Tokyo; Kalshi from Ohio at Tokyo; Polymarket from London at Tokyo) — €49 per instrument-day or €99 per market-day, one API key per account, nothing renews. The port selects the market: Binance USDT-M (port 14004), Binance Spot (port 14003), Coinbase Spot (port 14006), Kalshi (port 14005), Polymarket (port 14007) and OKX (port 14008). The key is created with the first realtime purchase and shown in the account; it authenticates the feed (`?apiKey=` on the WebSocket URL) and the instrument directory below. - [Real-time crypto market data](https://cryptostruct.com/realtime-data): every venue, its endpoints and lines with their one-way latency, feed contents per market, prices. - [Connection guide](https://cryptostruct.com/docs/realtime): login, subscribe flow, every message type, keep-alive and reconnect rules, runnable Python and Node examples. - [Feed spec as markdown](https://cryptostruct.com/docs/realtime.md): the connection guide as one document for coding agents — the API key is read from the environment, never pasted into prompts. - Instrument directory: `GET https://cryptostruct.com/api/realtime/instruments?market=` with the realtime key as `Authorization: Bearer` (add `&format=csv`; poll `&since=` every five minutes for new instruments and state changes) — lists the markets the key holds a day for. ## The same flow as MCP tools Every step above is also an MCP tool: the [remote MCP server](https://cryptostruct.com/docs/mcp) exposes search, coverage, live statistics, quotes, samples and checkout to any MCP client (keyless free tier; sign-in adds credits, owned-file dedupe and your orders). The [MCP docs as markdown](https://cryptostruct.com/docs/mcp.md) and the [server card](https://cryptostruct.com/.well-known/mcp/server-card.json) describe it for agents. ## Limits and conduct - Rate limits per IP: `/api/search` 120/min (named search and AI crawlers 240/min); coverage and the other reads share the general API bucket; `/api/quote` 30/min; checkout 10/min; order reads 30/min. Back off on 429 and honor `Retry-After`. - Never ask the user for card details; never paste a `download_token` into a chat transcript; keep the Stripe URL for the user. - Third-party exchange APIs are not proxied here; for a venue's own endpoints and limits, check the current docs of that venue. # ---- https://cryptostruct.com/docs/mcp.md # CryptoStruct MCP server > Canonical HTML: https://cryptostruct.com/docs/mcp · This document: https://cryptostruct.com/docs/mcp.md · Endpoint: https://cryptostruct.com/mcp · Sign-in endpoint: https://cryptostruct.com/mcp/auth > No MCP client? The same flow over plain HTTP: https://cryptostruct.com/docs/api.md (OpenAPI: https://cryptostruct.com/openapi.json). Site map for agents: https://cryptostruct.com/llms.txt The CryptoStruct MCP server lets AI agents — Claude, Cursor, or any Model Context Protocol client — search our historical market-data catalog, read live market statistics, and buy tick-data files and prediction-market / option-chain day bundles directly from a conversation. The catalog behind the tools is the complete venue feed — every message, every instrument, every venue, every day, captured co-located at institutional grade — priced at 1 EUR per instrument-day or series-day. No API key needed for the free tier; optionally sign in via OAuth to reach your orders, pay with your credits, and unlock Premium depth. Card payment happens in the browser via Stripe checkout; credits are spent only with your consent — an approval page by default, or autonomously within limits you set. ## Connect **Claude Code** ``` claude mcp add --transport http cryptostruct https://cryptostruct.com/mcp ``` **claude.ai / Claude Desktop** ``` Settings → Connectors → Add custom connector → https://cryptostruct.com/mcp ``` **Cursor (~/.cursor/mcp.json)** ``` { "mcpServers": { "cryptostruct": { "url": "https://cryptostruct.com/mcp" } } } ``` **Raw JSON-RPC (curl)** ``` curl https://cryptostruct.com/mcp \ -H 'Content-Type: application/json' \ -H 'Accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' ``` Streamable HTTP, stateless — POST JSON-RPC messages; both Accept types are required. ## Tools ### Catalog & discovery Find instruments and understand what the archive holds — free, no auth. - `search_instruments` — Search 800K+ instruments across 35+ venues by ticker, base asset or id, with class/venue filters — venue and class words in the query ("binance btcusdt perp") are understood. - `list_venues` — All covered venues with the archive headline numbers. - `get_instrument` — Master data + coverage summary for one instrument id. - `get_coverage` — Day-level coverage: first/last day, gaps, total size — check before you buy. - `get_data_dictionary` — File format, message types, integrity guarantees, pricing and links. - `list_sample_files` — Free full-day sample files with direct download URLs. - `get_price_quote` — EUR quote for a basket of tick files and/or series-day bundles (per-series prices), with per-item availability. ### Day bundles Prediction-market series (Kalshi, Polymarket) and Deribit option chains are sold as series-day bundles: one item is every contract file of a series on one UTC day, priced per series (mostly 1 EUR). These tools resolve a series to its bundle_id and list its sellable days; buying and delivery use the generic tools with kind series_day — each purchased day arrives as one zip (or tar over 4 GB). - `search_bundles` — Search ~1,900 bundles by text, class (prediction / option), venue, category or interval — returns bundle_id, series_key, price, covered days and delivery mode. - `get_bundle_coverage` — Sellable days of one bundle (newest first, pageable) with file count, bytes, price, trades/turnover where captured, and partial-day flags. - `get_bundle_sample` — One free contract file of the series — the same format as purchased bundle members — with a direct download URL. ### Market statistics The same 1-minute/daily aggregates the analyze pages chart: OHLC, VWAP, trades, turnover, spreads, top-of-book depth. - `get_market_snapshot` — Live snapshot: last price, 24h change, 60-min turnover/trades, spread (bps), top-1/top-20 depth. - `get_daily_stats` — Daily OHLC/VWAP/turnover series over 30/90/180 days with a window summary. Premium: 365d and max (full history). - `get_hourly_stats` — Hourly OHLC/VWAP/turnover/spread/depth series over 7/30/90 days. Premium: 180d. - `get_slippage` — Market-impact ladder: reachable notional within X bps of mid, time-averaged over 1h. Premium: 24h and 7d. - `get_minutes_range` — [Premium] Historical per-minute series (1h/3h/6h windows, any UTC hour within ~30-day retention) incl. data-quality fields — event studies. - `get_top_instruments` — Top instruments by live 24h turnover across all venues. - `get_movers` — 24h gainers and losers per class with a minimum-turnover floor. ### Your account (sign-in required) Connect with OAuth sign-in and the agent can work with your CryptoStruct account directly. - `list_my_orders` — Your order history: status, totals, credits applied, invoice PDFs, tokenized order links. - `get_my_files` — Every file you own as a flat list with delivery state and direct download URLs (owner links never expire). - `get_my_subscription` — Premium status, credit balance, the latest credit-ledger entries and your agent-spending settings (mode, caps, spent today). - `preview_checkout` — Dry run of a purchase: already-owned files, unavailable days, credit cover — and whether create_checkout will complete from credits, ask for your approval, or hand over a Stripe URL. ### Buying data The agent assembles the purchase; you stay in control of the money. Card payments happen in the browser via Stripe. Credits (signed-in) are spent only with your consent: by default every agent order lands on an approval page you confirm; opt into autonomous mode in your account to let fully credit-covered orders complete within your per-order and daily limits. Tick files are 1 EUR per instrument-day — the raw tick file with every order-book update, trade and liquidation; day bundles (kind series_day) are priced per series, mostly 1 EUR for every contract file of that series on one UTC day. (1-minute statistics are an analytics export, not a shop item: rolling 24 h free, rolling 7 days and any recorded day with Premium.) - `create_checkout` — Start a purchase (max 365 items per checkout; tick files and/or series-day bundles). Card: returns a Stripe checkout URL to open in the browser. Credits: returns approval_required with an approval_url for you to confirm — or, in autonomous mode and within your caps, the order completes immediately. Optional max_credit_cents lets the agent cap its own spend. - `get_checkout_status` — Poll the checkout by session_id (card) or order_id (signed-in; credit/approval orders); once paid it returns the order id and download token. - `get_order_files` — List a paid order's files with delivery state and direct download URLs — day bundles come with a zip (or tar) URL per day plus status/restore URLs. - `request_file_restore` — Wake an archived (cold-storage) tick file — restores take up to ~12 hours (bundle days restore via their restore_url). ## Buying data 1. search_instruments — find the instrument and note its instrument_id (day bundles: search_bundles → bundle_id, then get_bundle_coverage instead of get_coverage; items use kind series_day) 2. get_coverage — confirm the days you need exist 3. get_price_quote — total price in EUR (signed in: preview_checkout also shows owned files, credit cover and what create_checkout will do) 4. create_checkout — card: returns a Stripe checkout URL to open in the browser; credits: returns an approval_url to confirm, or completes on its own if you enabled autonomous mode within your limits 5. get_checkout_status — poll (session_id or order_id) until "paid"; returns order_id + download_token 6. get_order_files — per-file download URLs (ready / restoring / archived); bundle days: one zip_url or tar_url per day ## Notes **Fair use & rate limits.** Anonymous access shares a per-IP budget (weighted per tool call); signed-in callers get their own per-account budget, and Premium raises it 5x. On a RATE_LIMITED error, back off for the indicated seconds. For sustained programmatic scale beyond that — batch queries, bulk exports — the pricing page lists the enterprise options. **Units & conventions.** Market values (turnover, depth) are USD; sale prices are EUR. All file sizes are compressed (zstd) bytes. Minute-level statistics are retained for roughly 30 days; daily aggregates reach back further. Instrument ids are stable for the lifetime of an instrument and identical across MCP, shop and analyze pages. **Guest vs signed-in orders.** Anonymous MCP purchases use the guest flow: the download link and token from get_checkout_status stay valid for 90 days. Signed-in (OAuth) purchases are linked to your account permanently and drop already-owned files automatically. **No MCP client? The same flow over plain HTTP.** Every step of the buy flow is also a documented HTTP call — search, coverage, a keyless POST /api/quote, the guest checkout (Stripe URL for the user), status polling and the tokenized download routes — in https://cryptostruct.com/docs/api.md, with an OpenAPI 3.1 description at https://cryptostruct.com/openapi.json. Or hand the user a pre-filled shop link — Buy link (no API call needed): /shop?i=&d=.. opens the shop with those UTC days of the instrument in the cart; d also takes a comma list or a mix (d=2026-09-01..2026-09-07,2026-09-15). Bundles: /shop/bundles?bundle=&d=…. Only archived days are added (gaps and days still being merged are skipped), at most 366 days of span and 1000 lines per cart; the user pays on the site. Example: /shop?i=67824&d=2026-09-29..2026-10-05 = seven days of Binance BTCUSDT perpetual ticks. **Credits & agent consent.** Your credits are never spent by an agent without your consent. Default — approve each purchase: create_checkout returns approval_required plus an approval page where you pay with credits (or by card) or discard the order; unapproved orders expire after 24 hours with nothing charged. Opt-in — autonomous within limits (https://cryptostruct.com/account/agents): a fully credit-covered order completes immediately as long as it fits your per-order cap and your rolling 24-hour cap; anything larger, or not fully covered, comes back to you for approval instead of failing. The agent can pass its own max_credit_cents on top. Only you can change these settings — from the website, never through an agent's token — and every autonomous purchase is listed on the Agents tab and in your credit ledger. ## Sign-in & Premium The free tier mirrors what the website shows — same windows, same limits, keyless. Signing in connects the agent to your CryptoStruct account; CryptoStruct Premium (20 EUR/month, the same subscription that powers the deep analyze views) unlocks the deep windows on top. Shop files stay 1 EUR per instrument-day for everyone; day bundles keep their per-series price. - Account tools: list_my_orders, get_my_files (never-expiring download links), get_my_subscription. - Checkout knows you: email optional, already-owned files are dropped, and your credits pay (1 credit = 1 EUR = 1 file-day) — with your approval, or autonomously within the limits you set on the Agents tab. - Your own call budget, keyed to your account instead of your IP. | Feature | Free | Premium | | --- | --- | --- | | Call budget | 120 units/min | 600/min (5x) | | get_daily_stats | 30 / 90 / 180d | + 365d, max | | get_hourly_stats | 7 / 30 / 90d | + 180d | | get_slippage | 1h | + 24h, 7d | | get_minutes_range | — (locked) | full ~30-day retention | | get_market_snapshot | core metrics | + data-quality block | | search_instruments | ≤ 25 / call | up to 100 / call | **claude.ai / Claude Desktop (sign-in)** ``` Settings → Connectors → Add custom connector → https://cryptostruct.com/mcp/auth ``` The /mcp/auth endpoint asks for sign-in on connect (OAuth in the browser). Same tools as /mcp. **Claude Code (sign-in)** ``` claude mcp add --transport http cryptostruct https://cryptostruct.com/mcp claude mcp login cryptostruct ``` **Cursor (~/.cursor/mcp.json, sign-in)** ``` { "mcpServers": { "cryptostruct": { "url": "https://cryptostruct.com/mcp/auth" } } } ``` Terms: https://cryptostruct.com/terms.md · Data license: https://cryptostruct.com/license · Authentication details: https://cryptostruct.com/auth.md # ---- https://cryptostruct.com/terms.md # Terms & Conditions > CryptoStruct Terms & Conditions, version 1.5, October 2026. > Canonical HTML: https://cryptostruct.com/terms · This document: https://cryptostruct.com/terms.md · Data License: https://cryptostruct.com/license These terms govern every purchase and every use of the CryptoStruct market-data shop — tick files, day bundles, Premium membership, credit packs, realtime access and orders placed through our API or by an AI agent on your behalf. What you may do with the data itself is set out in the [Data License](https://cryptostruct.com/license), which forms part of these terms. Contents: § 1 Parties; scope · § 2 Consumers and business customers · § 3 Acceptance; orders; precedence · § 4 Definitions · § 5 Licence to use the Data · § 6 Restrictions · § 7 Customer responsibility; third-party rights · § 8 Accounts, credentials and AI agents · § 9 Orders, guest orders and delivery · § 10 Fees; taxes; payment; refunds · § 11 Premium membership and credits · § 12 Realtime access · § 13 Free samples, free tier and rate limits · § 14 Referral program · § 15 No advice; no reliance · § 16 Changes; availability; no SLA; beta features · § 17 Force majeure · § 18 Right of withdrawal (Consumers only) · § 19 Intellectual property · § 20 Disclaimer · § 21 Limitation of liability · § 22 Indemnification; compliance verification (Business Customers only) · § 23 Export controls; sanctions · § 24 Suspension; termination · § 25 Governing law; jurisdiction · § 26 Confidentiality · § 27 Privacy · § 28 Changes to these Terms; miscellaneous · § 29 Assignment · Annex A — Instruction on the right of withdrawal (Consumers) · Model withdrawal form ## § 1 Parties; scope These Terms and Conditions (the "Terms") govern access to and use of the market-data products and related services of CryptoStruct GmbH (the "Services"), including datasets, files, day bundles, APIs, WebSocket feeds, documentation, schemas and related materials (collectively, the "Data"). - Provider: CryptoStruct GmbH, Sachsenstraße 5, 20097 Hamburg, Germany ("CryptoStruct", "we"). - Customer: the person or entity entering into these Terms ("Customer", "you"). - Authorized Users: any individual accessing the Services under the Customer's account. ## § 2 Consumers and business customers The Services may be purchased and used by consumers (natural persons acting for purposes outside their trade, business or profession — "Consumers") and by customers acting in the course of their trade, business or profession ("Business Customers"). A purchase made for a company, fund, employer or other organisation is a purchase by a Business Customer. If you purchase or use the Services on behalf of an organisation, you represent that you have authority to bind it. Where a provision states that it applies to Business Customers only, it does not apply to Consumers; mandatory consumer-protection law is never limited by these Terms. ## § 3 Acceptance; orders; precedence By purchasing, accessing, downloading, connecting to or otherwise using the Services or Data, you accept these Terms. Prices, limits, delivery methods and the scope of a purchase are defined by the applicable "Order": the checkout confirmation (on the website, through our API or by an agent acting for you), a subscription, an invoice or a written quote. A separate written agreement signed by both parties prevails over these Terms in case of conflict. The Data License prevails over these Terms for questions of permitted use. ## § 4 Definitions - "Authorized User" — an employee, contractor or representative authorised by the Customer to access the Services on its behalf. - "Data License" — the CryptoStruct Data License published at [cryptostruct.com/license](https://cryptostruct.com/license), version as current at the time of the Order. - "Derived Data" — anything the Customer produces from the Data that does not contain the Data and cannot reasonably be used to reconstruct it: indicators, signals, aggregates and statistics, trained models and their weights, research reports, charts and backtest results (as defined in the Data License). - "Order" — as defined in § 3. - "Third-Party Terms" — terms, restrictions, licences, attribution or display requirements imposed by exchanges, trading venues, index or benchmark providers or other data licensors, as amended from time to time. ## § 5 Licence to use the Data The permitted use of the Data is set out in the [Data License](https://cryptostruct.com/license), which forms part of these Terms. In short: a non-exclusive, non-transferable licence for internal use by you and your affiliates, including research, backtesting, live trading and training machine-learning models; Derived Data is yours; the raw Data may not be passed on. - Purchased files and day bundles are licensed perpetually — they never expire. - Realtime access is licensed for the UTC days you have paid for; Premium membership for the paid period. - Consumers receive the same scope of use for personal purposes, including their own trading. - All rights not expressly granted are reserved. ## § 6 Restrictions Except as expressly permitted by the Data License, an Order or CryptoStruct in writing, the Customer shall not, and shall not permit any Authorized User or third party to: - resell, redistribute, sublicense, rent, lease or otherwise make the Data or any substantial part of it available to third parties, in any form; - publish the Data as a feed, dataset, lookup service, public API, public website or similar offering; - share accounts, download links, API keys, realtime keys or access tokens outside the Customer's Authorized Users; - scrape, crawl or systematically download Data outside the intended functionality of the Services, or bypass rate limits, connection limits, access controls or security measures; - remove or obscure proprietary notices or attribution; - use the Data to create or operate a product that substantially replicates or substitutes the Data — a market-data feed, consolidated feed, historical archive or tick-level copy; - offer to third parties a benchmark, index, reference rate, settlement price or price oracle computed from the Data without our prior written approval (internal use of such figures is free); - provide the Data, or a corpus containing it, to third parties for training machine-learning or AI models (training your own models is internal use and permitted); - use the Services or Data in violation of applicable law, sanctions, export controls or Third-Party Terms. CryptoStruct may apply technical limits, monitoring and throttling to protect the Services and enforce these Terms. ## § 7 Customer responsibility; third-party rights The Data is recorded from public venue feeds. The Customer is responsible for ensuring that its own use complies with applicable law and any Third-Party Terms. Certain use cases — in particular redistribution, public display or publicly offered benchmarks — may require additional licences directly from the respective venue. CryptoStruct grants no rights in third-party intellectual property beyond the licence in § 5 and makes no representation that the Customer's intended use is permitted under Third-Party Terms. ## § 8 Accounts, credentials and AI agents You are responsible for everything done under your account and credentials, including by your Authorized Users. Keep API keys and realtime keys confidential; rotate a key in your account if it may have leaked. Orders placed by an AI agent or other software using your credentials or an OAuth token issued for your account are your Orders. By default an agent order waits for your approval on the website and expires after 24 hours if not approved, with nothing charged. You may allow agents to complete orders autonomously from your credit balance within limits you set (€1 to €1,000 per order and per day; defaults €10 per order and €25 per day). Card payments are never made autonomously. Only you can change these settings, on the website; every autonomous purchase is listed in your account. ## § 9 Orders, guest orders and delivery - Delivery. Access to purchased files begins as soon as payment is confirmed. Files older than about one month are held in deep-archive storage and may take up to about twelve hours to become downloadable after your first request; you can trigger the restore from your order page or account. - Re-download. Files stay downloadable in your account for as long as the account exists. Keep your own copy; we are not an archive service for your purchases. - Guest orders. You may buy without an account by giving an email address. The download link shown after payment is your only access and expires after 90 days; a guest order can later be claimed into an account with the same email. - Partial or late-start days are marked as such before purchase and sold as they are. - Already owned. A file you already own is not sold to you again. ## § 10 Fees; taxes; payment; refunds - Prices include VAT where applicable and are shown in EUR. Business Customers who enter a valid EU VAT ID at checkout are invoiced under the reverse-charge mechanism where the law provides for it. - Payment is by card through Stripe (our payment provider); orders of historical data can also be paid from your credit balance (§ 11). Stripe issues an invoice for every payment; invoices are available in your account. - No refunds once access to the Data has been granted or downloads have been made available, except where mandatory law or a written agreement provides otherwise. For Consumers, the statutory right of withdrawal in § 18 applies. - Overdue or failed payment. An unpaid Order is not delivered. We may suspend an account with overdue amounts; Data you have already paid for remains licensed. ## § 11 Premium membership and credits - Premium costs €20 per month, renews monthly and can be cancelled at any time with effect from the end of the paid period (billing portal in your account). It includes 50 credits per month and the deep-analytics tier. - Monthly credits accumulate while you are subscribed, up to 150; remaining monthly credits expire when the membership ends. - Credit packs are one-time purchases; purchased credits never expire. - Credits (1 credit = €1) can be redeemed for historical data — single instrument-day files and Day Bundles — and are applied automatically at checkout. Unless agreed otherwise, credits cannot be redeemed for realtime access (§ 12). - Credits have no cash value, are not transferable and are not paid out. A refund or chargeback of a payment reverses the credits it granted; a balance can become negative and is settled by future credits first. - Owner grants (courtesy credits) may carry their own expiry, shown in your ledger. ## § 12 Realtime access - Price. The price shown at checkout applies. A run of consecutive days of the same market or instrument can carry a lower duration price per day. A day bought during the public beta keeps the price paid. - Term. Paid days start at the next 00:00 UTC after purchase; the remainder of the purchase day is included at no charge. Entitlement is per delivery location and market. - Payment. Realtime access is paid by card at checkout (§ 11). - Connections. Unless agreed otherwise, 3 parallel connections per key and delivery endpoint are included; connection packs add 5 each, up to 5 packs, and require an active access day at that endpoint. - Transport. The feed is delivered over plain WebSocket (no TLS) from our delivery endpoints; run your client from an environment you control. - Keys. One API key per account. Refunding a realtime purchase revokes the corresponding access. ## § 13 Free samples, free tier and rate limits Free sample files, the keyless analytics API and the free tier of our MCP server are provided as a courtesy under fair-use limits (per-IP and per-account budgets, documented in the API docs). We may change or withdraw free features, samples and limits at any time. Samples are licensed under the Data License. ## § 14 Referral program - Commission. A participant earns 50 % of the net revenue (after VAT, refunds and chargebacks) of every new customer they refer, on data purchases and Premium invoices alike, for as long as that customer stays. Payments made from credits earn no commission. - Attribution is first-touch and cookieless: a visitor who signs up or buys in the same browsing session as the click on the referral link counts. Only new customers count; self-referral and referring your own organisation are excluded. - Payout. Commissions mature 30 days after the underlying payment (refund window) and are paid by SEPA transfer once the payable balance reaches €50. A refund of the underlying payment claws the commission back; a negative balance is settled by future commissions. - Program changes. CryptoStruct may pause a participant for suspected abuse and may change or end the program with reasonable notice; matured commissions remain payable. ## § 15 No advice; no reliance The Services and Data are provided for informational, research and educational purposes and do not constitute financial, investment, legal, tax, accounting or trading advice. The Data may contain errors, omissions, delays, duplicates, gaps or venue outages (see the [exchange status page](https://cryptostruct.com/status)). It is not an official source for trading, execution, settlement, liquidation, valuation, accounting, benchmark administration or regulatory reporting. You assume all risks arising from reliance on the Data. ## § 16 Changes; availability; no SLA; beta features We may modify, restrict or discontinue aspects of the Services at any time — exchange coverage, endpoints, protocols, schemas, formats, delivery methods and features marked as beta. Files you have already purchased stay as delivered. The Services depend on third-party venues, cloud providers and internet infrastructure; we are not responsible for outages or changes caused by them. No uptime or latency guarantee applies unless agreed in a signed service level agreement. ## § 17 Force majeure CryptoStruct is not liable for failures caused by events beyond its reasonable control, including natural disasters, internet or telecommunications outages, cyberattacks, exchange or market disruptions and governmental actions. ## § 18 Right of withdrawal (Consumers only) Consumers have a statutory right to withdraw from a distance contract within fourteen days without giving reasons. The full instruction and the model withdrawal form are in [Annex A](https://cryptostruct.com/terms#withdrawal). Purchased files, day bundles, credit packs and realtime days are digital content delivered immediately. By clicking the pay button you expressly request that we begin delivery before the withdrawal period ends and acknowledge that you thereby lose your right of withdrawal once delivery has started. For the Premium membership (a digital service) the right of withdrawal remains; if you withdraw after asking us to start the service, you pay a proportionate amount for the period used. ## § 19 Intellectual property CryptoStruct and its licensors retain all rights, title and interest in the Services and the Data, including the proprietary normalisation, schemas, formats and methodologies and the sui-generis database rights in the archive. No ownership is transferred; Derived Data belongs to the Customer. ## § 20 Disclaimer To the extent permitted by law, the Services and Data are provided "as is" and "as available", without warranty of accuracy, completeness, timeliness, continuity, availability, non-infringement or fitness for a particular purpose. Statutory rights of Consumers, including those relating to digital products, remain unaffected. ## § 21 Limitation of liability 1. CryptoStruct is liable without limitation for damage caused intentionally or by gross negligence, for injury to life, body or health, under the German Product Liability Act, and under any guarantee it has expressly given. 2. For damage caused by slight negligence, CryptoStruct is liable only for breach of a material contractual obligation (an obligation whose fulfilment makes the proper performance of the contract possible and on which the Customer regularly relies), and then only for the foreseeable damage typical for this type of contract. For Business Customers this liability is additionally capped at the fees the Customer paid for the affected Services in the twelve months preceding the event giving rise to the claim. 3. Any further liability of CryptoStruct is excluded. In particular, CryptoStruct is not liable for trading or liquidation losses, lost profits or lost business opportunities arising from the use of the Data, except in the cases of paragraph 1. 4. These limitations also apply to the personal liability of our employees, representatives and agents. Nothing in these Terms limits liability where such limitation is not permitted by mandatory law. ## § 22 Indemnification; compliance verification (Business Customers only) This section applies to Business Customers only. The Customer shall indemnify CryptoStruct against third-party claims arising from the Customer's breach of these Terms or misuse of the Data. CryptoStruct may, upon reasonable notice, request information reasonably necessary to verify the Customer's compliance with the usage limits and permitted scope of its Orders. ## § 23 Export controls; sanctions The Customer warrants that it is not subject to sanctions or export restrictions that prohibit access to the Services and shall not use or make available the Services or Data in violation of applicable export-control or sanctions laws. ## § 24 Suspension; termination - CryptoStruct may suspend or terminate access immediately if the Customer materially breaches these Terms or the Data License, or if its usage threatens the stability, integrity or security of the Services. On termination for breach, the licence to the Data ends and the Customer must delete its copies; Derived Data created before termination stays with the Customer. - On overdue payment we may suspend the account until the balance is settled; Data already paid for remains licensed. - The Customer may close its account at any time. Purchased files remain licensed, but re-download requires an account — keep your own copies. ## § 25 Governing law; jurisdiction These Terms are governed by German law, excluding its conflict-of-law rules and the UN Convention on Contracts for the International Sale of Goods. For Business Customers, the exclusive place of jurisdiction is Hamburg, Germany. For Consumers, the statutory rules on jurisdiction apply; mandatory provisions of the law of a Consumer's country of residence remain unaffected. ## § 26 Confidentiality Each party protects the other party's non-public information disclosed in connection with the Services with reasonable care. The Customer keeps non-public technical documentation, credentials, API keys and individually quoted (non-public) pricing confidential, except where disclosure is permitted by these Terms or required by law. ## § 27 Privacy We process personal data in accordance with the GDPR and our [privacy policy](https://cryptostruct.com/imprint#privacy). Privacy contact: Dr. jur. Robika Afzal, [ra@cryptostruct.com](mailto:ra@cryptostruct.com). ## § 28 Changes to these Terms; miscellaneous We may update these Terms. Material changes are announced at least four weeks in advance by email to account holders and on the website; for subscriptions they take effect with the next billing period, and you may cancel before then. Changes never narrow the rights in Data you have already purchased. If a provision is held invalid, the remainder stays in effect. These Terms, the Data License and the applicable Order are the entire agreement regarding the Services. ## § 29 Assignment The Customer may not assign these Terms without CryptoStruct's prior written consent. CryptoStruct may transfer these Terms in connection with a merger, acquisition, reorganisation or sale of the business assets relating to the Services; account holders are informed. ## Annex A — Instruction on the right of withdrawal (Consumers) ### Right of withdrawal You have the right to withdraw from this contract within fourteen days without giving any reason. The withdrawal period is fourteen days from the day of the conclusion of the contract. To exercise the right of withdrawal, you must inform us (CryptoStruct GmbH, Sachsenstraße 5, 20097 Hamburg, Germany, email [ts@cryptostruct.com](mailto:ts@cryptostruct.com)) of your decision to withdraw from this contract by an unequivocal statement (for example an email). You may use the model withdrawal form below, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired. ### Effects of withdrawal If you withdraw from this contract, we shall reimburse to you all payments received from you without undue delay and in any event not later than fourteen days from the day on which we are informed about your decision to withdraw. We will carry out the reimbursement using the same means of payment as you used for the initial transaction, unless you have expressly agreed otherwise; in any event, you will not incur any fees as a result of the reimbursement. If you requested that a service (such as the Premium membership) begin during the withdrawal period, you shall pay us an amount proportionate to what has been provided until you informed us of your withdrawal. ### Expiry of the right of withdrawal for digital content For digital content not supplied on a tangible medium (purchased files, day bundles, credit packs, realtime days) the right of withdrawal expires when we have begun performance after you expressly agreed that we begin before the end of the withdrawal period and acknowledged that you thereby lose your right of withdrawal. You give this agreement by clicking the pay button, which carries the corresponding note. ## Model withdrawal form Complete and return this form only if you wish to withdraw from the contract. ```text To: CryptoStruct GmbH, Sachsenstraße 5, 20097 Hamburg, Germany Email: ts@cryptostruct.com I/We (*) hereby give notice that I/We (*) withdraw from my/our (*) contract for the supply of the following digital content / service (*): Ordered on (*) / received on (*): Order number: Name of consumer(s): Address of consumer(s): Signature of consumer(s) (only if this form is notified on paper): Date: (*) Delete as appropriate. ``` CryptoStruct Terms & Conditions, version 1.5, October 2026. Questions: [info@cryptostruct.com](mailto:info@cryptostruct.com). # ---- not inlined (served live): https://cryptostruct.com/shop/bundles.md · https://cryptostruct.com/download.md · https://cryptostruct.com/shop/realtime.md · https://cryptostruct.com/docs/realtime.md · https://cryptostruct.com/auth.md · https://cryptostruct.com/analyze/instruments.md