# CryptoStruct > Realtime and historical crypto AND prediction-market data (Kalshi, > Polymarket) 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 also available as > markdown: request it with `Accept: text/markdown` (responses carry > x-markdown-tokens). ## 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 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 pays with Premium credits, and CryptoStruct Premium unlocks deep windows (daily 365d/max, hourly 180d, slippage 24h/7d, minute-range history, 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) — in-browser agents can search the catalog 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 ## 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, 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). 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 (depth-only venues); liquidations are derivatives-only, 2026+ files - [Data Shop](https://cryptostruct.com/shop): the full archive — every venue, every instrument-day (€1 per instrument-day — tick file or 1-minute stats CSV, incl. archived days beyond the ~30-day minute-API retention) - 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). 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 - 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. Caps: 100 days per stream (a 413 body carries `suggested_to` for automatic splitting) and 2 parallel streams (503 + `Retry-After`). Companions: `&status=1` (NDJSON, one line per day — pull once no line reports cold or errored files), `&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 - [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) - [Instrument search API](https://cryptostruct.com/api/search?q=btcusdt&venue=binance_swap): resolve instrument IDs (params: q, venue, class, base, limit) - [Live analytics](https://cryptostruct.com/analyze): charts and market structure built on the same data ## Prediction markets - [Prediction-market data hub](https://cryptostruct.com/prediction-markets): Kalshi & Polymarket 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); per-series pages with coverage spans link from the hub - [Prediction bundles in the shop](https://cryptostruct.com/shop?bundles=1): browse and buy series-day bundles (day calendar per series; delivery per file or as one ZIP) - [Kalshi venue data](https://cryptostruct.com/exchanges/kalshi) · [Polymarket venue data](https://cryptostruct.com/exchanges/polymarket): contract counts, coverage and top instruments per venue ## 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. These are contract products, not self-serve: they are quoted, not purchasable online. - [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, and the per-instrument-day archive — all on one page - [Contact](https://cryptostruct.com/contact): managed connectivity, colocated execution and custom setups