Historical

Bulk exports

When the job is "give me everything", don't page a query API. Take files. We deliver any archive dataset as Parquet, CSV, or JSONL, landed in your S3 or GCS bucket or available for direct download, partitioned by date and ready for DuckDB, pandas, or Spark.

What can be exported

Every dataset in the archive, raw or derived. One row per event, exact decimal precision, full wallet attribution, and the same schema as the live streams and the query API.

DatasetOne row perHighlights
tradesexecuted fillprice, size, notional, wallet, realized PnL, fees, maker/taker, liquidation flags
ordersorder-status eventplacements, cancels, fills, triggers: the full L1 order lifecycle
book_updatesorder-book deltaevery change to every book; full reconstruction
top_of_booktickbest bid/ask per market over time
twapsalgo statusinstitutional TWAP executions and progress
eventsledger/market eventfunding payments and rates, liquidations, deposits, withdrawals
ohlcv_*candle1s / 1m / 1h / 1d per market, precomputed
wallet_pnladdressrealized PnL, volume, win rate per wallet
liquidationsliquidationsize, price, mark, victim
fundingrate tickfunding-rate time series per market

Requesting an export

An export request names the dataset, the markets, the date range, the format, and where to put it. Submit it from the console (Historical → Exports) or send the same shape to us for recurring deliveries:

export-request.jsonjson
{  "dataset": "trades",  "markets": ["BTC", "ETH", "@107"],  "from": "2026-05-01",  "to": "2026-06-01",  "format": "parquet",  "destination": "s3://your-bucket/hyperliquid/"}
  • markets accepts perps (BTC), spot pairs (@107), and HIP-3 markets (dex:SYMBOL); omit it for all 462+ markets.
  • destination takes an s3:// or gs:// URI you have granted us write access to, or is omitted for direct download links.
  • Date ranges are UTC days, inclusive of from, exclusive of to, so re-running a request is idempotent per partition.

Delivered layout

Files arrive partitioned by dataset and UTC date, with a manifest listing row counts and checksums so you can verify completeness before loading:

s3://your-bucket/hyperliquid/  trades/    dt=2026-05-01/part-00000.parquet    dt=2026-05-01/part-00001.parquet    dt=2026-05-02/part-00000.parquet    ...  manifest.json   # datasets, ranges, row counts, checksums

Choosing a format

FormatBest forNotes
parquetBacktesting and analytics at scale (DuckDB, pandas, Spark)Columnar, compressed, typed. The default choice.
csvSpreadsheets, quick inspection, legacy loadersHeader row included; one file per partition.
jsonlReplaying events through stream-shaped consumersOne JSON object per line, nested fields (e.g. liquidation detail) preserved as objects.

Custom backfills and datasets

The continuous archive runs from launch and grows by roughly 6.5M trades and 725M order events a day. For ranges before our archive starts, we offer custom historical backfills as a paid service. And if the shape you need isn't a stock dataset (specific markets, joins, resampling), tell us the markets, date range, and schema and we build it.

  • One-off and recurring deliveries (daily/weekly drops into your bucket) are both available; recurring exports continue from the last delivered partition.
  • Export volume counts against your plan's quota; large backfills are priced as à-la-carte volume or under an enterprise agreement.
  • Start a custom request via contact. Include datasets, markets, range, format, and destination.

Related

  • Schemas: column-by-column reference for every dataset above.
  • Query API: when you want answers, not files.
  • Replay & backfill: short backfills straight from the stream, from any block height.