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.
unzip cryptostruct-market-data.zip -d ~/.claude/skills/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
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_quantityper 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).
python3 cryptostruct_reader.py trades <file>.txt.zst --out trades.parquetzstd -d <file> or any libzstd tooling.?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./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.
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.
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.