Low-Latency Trading Solutions
CART
Downloads

Free tick data samples & documentation

Free full-day, tick-by-tick samples across major spot, derivatives, options and prediction-market venues — one complete, settled trading day per instrument (mostly about a week back, rolling daily), in the exact same format every file in the Data Shop ships in.

Samples
13
Sample day
09-15
AI toolkit
Agent Skill: CryptoStruct market data
Teach Claude Code, Cursor or any Agent-Skills-compatible assistant to work with our data: exact message formats, units and pitfalls, a validated streaming parser for the multi-GB tick files, and a minute-API client. No skill support in your tool? The format reference and reader script below work standalone.
unzip cryptostruct-market-data.zip -d ~/.claude/skills/
Documentation
Market data documentation
Field reference for every message type — the structure behind every sample — plus SBE (Simple Binary Encoding) and historical data on docs.cryptostruct.com.
Read the specification
Building a parser? Grab the spec package — SBE schema + sample messages for every type in JSON and SBE (v3.88.0, zip).
Type
Day
Binance USDT-M
BTCUSDT-PERP
id 67824
PERP
2026-09-15
1.57 GB
Replay
Binance USDT-M
BTCUSDT-PERP
High-volatility Bitcoin day — recorded 2026-07-06
id 67824
PERP
2026-07-06 · pinned
1.53 GB
Replay
Binance USDT-M
SNDKUSDT-PERP
SanDisk (SNDK) tokenized-stock perpetual
id 8745
PERP
2026-09-15
415 MB
Replay
Bybit
BTCUSDT-PERP
id 2449
PERP
2026-09-15
312 MB
Replay
Coinbase
LTC-USD
id 15084
SPOT
2026-09-15
235 MB
Replay
Binance USDT-M
TSLAUSDT-PERP
Tesla (TSLA) tokenized-stock perpetual
id 8702
PERP
2026-09-15
77.8 MB
Replay
Okx
SOL-USD
id 242985
SPOT
2026-09-15
52.3 MB
Replay
Kalshi
KXBTC15M-26SEP151500-00
Bitcoin 15-minute up/down — the day's busiest contract
id 17141454
PRED
2026-09-15
34.7 MB
Replay
Binance Spot
BTCUSD
id 1859971
SPOT
2026-09-15
13.0 MB
Replay
Deribit
BTC-18SEP26-79000-C-CALL
Bitcoin option — most-traded contract, greeks included
id 14945024
CALL
2026-09-15
9.52 MB
Replay
Deribit
ETH-17SEP26-2600-C-CALL
Ether option — most-traded contract, greeks included
id 16936660
CALL
2026-09-14
8.96 MB
Replay
Polymarket
btc-updown-5m-1789483800
Bitcoin 5-minute up/down — the day's busiest contract
id 17122277
PRED
2026-09-15
7.90 MB
Replay
Binance Spot
ETHUSD
id 2431025
SPOT
2026-09-15
4.34 MB
Replay

Each sample is one complete trading day — rolling samples sit about a week back and refresh daily, series rows (prediction markets, Deribit options) pick the busiest recent contract, the pinned high-volatility day stays fixed · IDs match the Data Shop and analytics

Formats & converter
Flat CSV/Parquet views of the native file — the file keeps every update
Every file ships in our native tick format (JSON lines, zstd). Need columns instead? Open the ▾ menu on any Download button — on every sample below and every purchased tick file — for gzipped CSV or Parquet that loads straight into pandas, polars or DuckDB.
  • trades .csv.gz · .parquet Every fill: exchange_timestamp, adapter_timestamp, trade_id, side, price, quantity — microsecond UTC timestamps, side = buy/sell.
  • bbo .csv.gz Top of book: bid_price, bid_quantity, ask_price, ask_quantity per update — not on every venue (BitMEX, Coinbase, Kraken spot, Kalshi, Polymarket record depth only).
  • liquidations .csv.gz · .parquet Forced liquidations with the bankruptcy price (derivatives venues, 2026+ files).
Need the full book or funding?
The reader script from the AI toolkit converts any native file locally — trades, depth-grid snapshots at any interval, prices, funding — to CSV or Parquet:
python3 cryptostruct_reader.py trades <file>.txt.zst --out trades.parquet
Stdlib-only, validated against production files — get the reader script or the full AI toolkit.
Full archive
Every venue, every day
Need more than samples? Every instrument-day of the complete tick-by-tick archive is €1 — buy as a guest, download instantly, no subscription, no minimum.
36
Venues
42.9M+
Files
Browse the Data Shop
Good to know
Full archive & training data
The samples are the shop files, byte for byte. What a day file holds, every product line and price and how to buy in bulk are on the historical data overview; dataset sizes, labels and a Parquet pipeline for model builders are on the training data page.
Compression
Files are compressed with zstd — decompress with zstd -d <file> or any libzstd tooling.
Timestamps
Timestamps are taken from the exchange (if available) and recorded locally in the exchange’s specific colocation as soon as the event arrives.
Instrument IDs
Unique instrument IDs remain constant throughout an instrument’s existence within the CryptoStruct system — the same IDs you see in the Data Shop and the analytics.
1-minute statistics
Prefer 1-minute statistics over raw ticks? A rolling 24h CSV is free on every instrument’s analyze page — 22 columns of OHLCV, VWAP, trades, spread and book depth, no parsing required. Premium extends it to a rolling 7-day CSV and to any recorded day.
Bulk downloads
Bought a lot of days? Never fetch prediction-bundle contracts one file at a time — a single request returns a whole series-day as one archive. On any order download URL: ?kind=series_day&zip=1 streams every contract file of that day, &manifest=1 lists them, &status=1 reports readiness, and &restore=1 brings a whole day back from cold storage in one call. Add &complete=1 for scripted pulls: it turns a partially-available day into an error instead of a short archive, so a successful response always means you got everything. Poll &status=1 and fetch once it reports no cold files.
Whole date ranges in one file
For many days of the same series there is one request that covers all of them: /api/download/order/{order}/{bundle}/range?kind=series_day&from=…&to=… streams every owned day in that window as a single uncompressed .tar — the “Download N days (.tar)” button on a bundle in your account does exactly this. It is strict: the response carries an exact Content-Length and a strong ETag, and anything less than the full length is a truncated transfer, never a quietly shorter archive. That also makes it resumable — curl -C - picks up where it stopped. The window covers the days of ONE order, and it takes the same &status=1, &restore=1 and &manifest=1 companions.

Trouble accessing or analyzing the files? Write to support@cryptostruct.com.

Why CryptoStruct

The same four things behind every free sample and every €1 day

We record everything

The complete public feed of each venue as it was published: every Level-2 snapshot and update at the venue's full book depth, every trade with its aggressor side, every quote, funding, mark-price and liquidation event — for every instrument the venue lists, every UTC day since we added the venue. Nothing sampled, no top-N cut, no on-demand capture.

Institutional grade

Captured co-located at the venue with the exchange timestamp and our receive timestamp in integer nanoseconds, an event-id chain that makes any gap visible, and one normalized schema across 35+ venues — the same capture our own high-frequency trading engine and enterprise feeds run on.

€1 per instrument-day

Any instrument-day is €1, series-day bundles start at €1 — no subscription, no minimum order, no tiers to unlock. Credit packs lower the effective price and never expire, and every venue has free full-day samples to test against first.

Self-service for everyone

Pick the days in the Data Shop, pay by card as a guest and download immediately — no sales call, no enterprise contract, no KYC. Coding agents buy the same files through the MCP server, and the free Agent Skill teaches them the format.

FAQ

Frequently asked questions

What do the free sample downloads contain?

One complete, settled UTC trading day per curated instrument — tick-by-tick trades, full Level-2 order-book depth and liquidation events, byte-identical to the files sold in the Data Shop. Most sample days roll forward daily, the prediction-market and Deribit option rows always pick the busiest recent contract (an option file also carries the mark-price stream with implied volatility and greeks), and one high-volatility Bitcoin day is pinned; no account or email required. Every prediction-series page under /prediction-markets and every option chain under /options-data additionally offers its own free contract file.

How do I download a large order without fetching every file separately?

Request one archive per day instead of one request per file. A prediction-series day bundle can hold several thousand contract files, and the order download URL with kind=series_day and zip=1 streams all of them as a single archive — so a full series history is a few hundred requests, not hundreds of thousands. The same URL also accepts manifest=1 to list a day’s files, status=1 to check readiness, and restore=1 to bring an entire day back from cold storage in one call. For scripted downloads add complete=1, which makes a partially-available day return an error rather than a short archive, so a successful response always means every file is included. Days older than about a month sit in deep-archive storage and need roughly twelve hours to become retrievable after a restore, and they stay retrievable for about seven days. There is no per-account download quota that a paced archive-per-day loop would reach.

Can I download a whole date range in one request?

Yes, for prediction-series bundles: the range endpoint on an order download URL takes kind=series_day with from and to, and streams every owned day in that window as one uncompressed tar file. Your account shows it as a “Download N days (.tar)” button on the bundle. Because the archive layout is fixed, the response carries an exact content length and a strong entity tag, so the download resumes where it stopped with curl -C - and a short transfer is always a visible error rather than a quietly incomplete archive. The window covers the days of a single order, up to one hundred days per stream, and the same URL also accepts status=1 to check the whole range, restore=1 to bring it back from cold storage, and manifest=1 to list what it will contain.

Can I download the data as CSV or Parquet?

Yes — every sample and every purchased tick day also exports as gzipped CSV or Parquet at no extra cost, via the ▾ menu on any Download button: trades and liquidations (derivatives, 2026 onward) in both formats, top-of-book (BBO) quotes as CSV. Timestamps are integer microseconds UTC and the columns load straight into pandas, polars or DuckDB. BitMEX, Coinbase, Kraken spot and the prediction markets record full order-book depth without a separate BBO stream — there the free reader script converts depth locally.

What is the native tick format?

One zstd-compressed JSON-lines file per instrument per UTC day: the instrument masterdata header on line one, then every order-book update, trade, liquidation and funding event with nanosecond timestamps, in one schema across all venues — documented in the market-data specification.

What is SBE (Simple Binary Encoding)?

Simple Binary Encoding is the compact binary wire format our realtime feeds offer next to JSON — the same market-data messages, delivered over WebSocket or Unix domain socket. The spec package above ships the SBE schema XML plus sample messages for every type in both encodings; see the SBE documentation.

How do I parse the multi-gigabyte tick files?

Use the free stdlib-only Python reader from the AI toolkit — it streams files of any size and converts trades, depth-grid snapshots at any interval, prices and funding to CSV or Parquet locally. Agents can install the Agent Skill for the full format reference and ready-made recipes.