Rolling Ticker Statistics Dataset

Historical Crypto Ticker Data

Exchange-published rolling price and volume statistics normalized across supported spot and derivatives venues. This is ticker history, not best bid/ask quote data.

No credit card · The sample is one real hourly Parquet file and needs no API key

Is this the right dataset?

Ticker statistics are not top-of-book quotes

Use this dataset for historical rolling market statistics. Choose tick trades for executions or reconstruct the L2 order book for best bid, best ask, spread, and depth.

Sample

See the data before you sign up

The first rows of one real hour: BTCUSDT on Binance Futures, 2026-09-02 at 12:00 UTC. One row per exchange ticker update.

binance_futures/2026-09-02/12/BTCUSDT_ticker.parquetDownload full file
received_timeevent_timesymbolprice_changeprice_change_percentweighted_average_pricelast_pricelast_quantityopen_pricehigh_pricelow_pricebase_asset_volumequote_asset_volumestatistics_open_timestatistics_close_timefirst_trade_idlast_trade_idtotal_trades
17883504007034944821788350400548BTCUSDT-1267.80-1.62477270.6976788.600.04478056.4078396.9076151.90162605.80912564663452.3917882640000001788350400536803970874080436018073876184
17883504017104000181788350401453BTCUSDT-1274.10-1.63277270.6876782.300.05278056.4078396.9076151.90162609.35512564935728.3217882640000001788350401450803970874080436019543876331
17883504027138521471788350402505BTCUSDT-1279.10-1.63977270.6876777.300.00178056.4078396.9076151.90162611.06512565067022.8117882640000001788350402502803970874080436020313876408
17883504037090355351788350403461BTCUSDT-1283.50-1.64477270.6676772.900.34578056.4078396.9076151.90162615.62812565417345.7217882640000001788350403448803970874080436021493876526
17883504047075511861788350404521BTCUSDT-1283.90-1.64577270.6476772.500.01478056.4078396.9076151.90162621.51212565869075.7017882640000001788350404518803970874080436021873876564
17883504057154759331788350405406BTCUSDT-1283.90-1.64577270.6476772.500.03078056.4078396.9076151.90162621.95912565903393.0117882640000001788350405402803970874080436022043876581
Showing 6 of 3,573 rows in this hourTimestamps are raw integers; units are in the schema below

Use cases

What you can build with ticker data

Market activity screens
Track rolling 24-hour volume, trade counts, and price change across every listed symbol without downloading every trade.
Universe selection
Rank symbols by liquidity or volatility on a given day before pulling heavier order book or trade files.
Venue comparison
Compare how activity in the same asset is distributed across exchanges, keeping each venue's own statistics.

Coverage

Ticker statistics coverage

Every venue is stored under its own exchange ID, so spot and derivatives never mix. Bars show each venue's history from its first hourly file to today, or to its last file for a venue that is no longer collected. Symbol counts are live from the symbols API.

Ticker statistics coverage by venue, exchange ID, market, history start, and live symbol count
VenueExchange IDMarketHistoryTicker symbols
Binance Futuresbinance_futuresFutures
2025-06-2815 mo
916
Binance Spotbinance_spotSpot
2025-06-2815 mo
2,031
Bybit FuturesbybitFutures
2025-06-2815 mo
1,459
Bybit Spotbybit_spotSpot
2025-06-2815 mo
833
OKX Futuresokx_futuresFutures
2025-06-2815 mo
610
OKX Spotokx_spotSpot
2025-06-2815 mo
1,579
Bitget Futuresbitget_futuresFutures
2025-07-1514 mo
1,156
Bitget Spotbitget_spotSpot
2025-07-1514 mo
2,854
Kraken Futureskraken_derivativesFutures
2025-06-2815 mo
661
Kraken Spotkraken_spotSpot
2025-06-2815 mo
1,656
Aster Futuresaster_futuresFutures
2025-09-2912 mo
629
BitMEXbitmexFutures
2025-09-29 to 2026-09-2212 mo
156
LighterlighterPerpetuals & Spot
2025-12-309 mo
245

Schema · 18 columns

Normalized ticker statistics schema

Each row is an exchange-published ticker update with rolling price, volume, and trade-count fields when the venue supplies them. Nullable fields reflect venue differences and incremental messages.

Columns in every ticker Parquet file
ColumnTypeDescription
received_timeINT64Unix timestamp (nanoseconds) when our system received the ticker event
event_timeINT64Unix timestamp (exchange dependent on timescale) when the exchange generated the ticker
symbolSTRINGTrading pair symbol (e.g., 'BTCUSDT')
price_changeSTRINGnullableAbsolute price change over 24h period (stored as string for precision)
price_change_percentSTRINGnullablePrice change over the 24h period in percent (-2.07 means -2.07 %). Bybit history before the 2026-09 data-integrity release holds a fraction (-0.0207)
weighted_average_priceSTRINGnullableVolume-weighted average price over 24h period
last_priceSTRINGnullableMost recent trade price
last_quantitySTRINGnullableQuantity of the most recent trade
open_priceSTRINGnullableOpening price at start of 24h period
high_priceSTRINGnullableHighest price during 24h period
low_priceSTRINGnullableLowest price during 24h period
base_asset_volumeSTRINGnullableTotal volume in base asset (e.g., BTC in BTCUSDT). OKX perpetual swap history before the 2026-09 data-integrity release holds contracts (see venue notes)
quote_asset_volumeSTRINGnullableTotal volume in quote asset (e.g., USDT in BTCUSDT). OKX perpetual swap history before the 2026-09 data-integrity release holds base-coin volume
statistics_open_timeINT64nullableUnix timestamp when the 24h statistics period started
statistics_close_timeINT64nullableUnix timestamp when the 24h statistics period ended
first_trade_idINT64nullableID of the first trade in the 24h period
last_trade_idINT64nullableID of the last trade in the 24h period
total_tradesINT64nullableTotal number of trades executed during 24h period

Quickstart

From pip install to DataFrame in a minute

The example loads BTCUSDT from Binance Futures for 2026-09-02. Change the symbol, exchange, or dates to pull any other slice of the archive.

  1. Install the Python SDK

    pip install cryptohftdata
  2. Create a free API key

    Sign up with email or Google, then generate a key from your dashboard. No credit card.

    Create account
  3. Call get_ticker()

    Paste the snippet, replace YOUR_API_KEY, and you get a pandas DataFrame with the columns listed above.

crypto_ticker_data.py
import cryptohftdata as chd

client = chd.CryptoHFTDataClient(api_key="YOUR_API_KEY")

df = client.get_ticker(
    symbol="BTCUSDT",
    exchange=chd.exchanges.BINANCE_FUTURES,
    start_date="2026-09-02",
    end_date="2026-09-02",
)

print(df.head())
print(f"Ticker updates: {len(df):,}")
REST · no API key needed for single files
curl --fail --location \
  "https://api.cryptohftdata.com/download?file=binance_futures/2026-09-02/12/BTCUSDT_ticker.parquet" \
  -o BTCUSDT_ticker_12.parquet

Caveats

Know this before you backtest

Exchange feeds differ in subtle ways. These are the details that matter for accurate backtests, replay pipelines, and features. Missing hours and pending corrections for every venue are listed on Known Gaps & Corrections.

  1. Ticker rows are rolling market-statistics updates, not individual trade executions and not fixed-interval bars.

  2. The normalized ticker schema does not include best bid or best ask. Reconstruct the L2 order book when you need top-of-book quotes or spread.

  3. Fields are nullable because venues publish different statistics and some incremental ticker messages omit values that did not change.

  4. Rolling-window definitions, event frequency, volume units, and timestamp units can differ by exchange; do not compare fields across venues without checking semantics.

  5. price_change_percent is in percent. Bybit history before the 2026-09 data-integrity release holds a fraction (-0.0207 for -2.07 %), and OKX perpetual swap volumes before the release hold contracts in base_asset_volume and base coin in quote_asset_volume.

  6. This page starts on 2025-06-28 based on the earliest stored hourly files for its covered exchange IDs and grows as new hourly files are published.

  7. BitMEX (bitmex) is historical only: the exchange has closed and its files end on 2026-09-22.

FAQ

Frequently asked questions

Is this ticker data free to download?

Yes. A free CryptoHFTData account with no credit card gives API access to this ticker data and every other dataset. Individual hourly files can also be downloaded without an API key on the rate-limited free tier.

How far back does this ticker data go?

The earliest hourly files start on 2025-06-28, and new files are added every hour. Start dates differ by venue; the coverage table on this page lists each one.

What format are the files in?

Each file holds one symbol for one UTC hour, stored as Zstd-compressed Parquet under {exchange_id}/{YYYY-MM-DD}/{HH}/{SYMBOL}_ticker.parquet. Parquet reads directly into pandas, Polars, DuckDB, and Arrow.

How do I load this ticker data in Python?

Install the SDK with pip install cryptohftdata, create a client with your API key, and call client.get_ticker() with a symbol, exchange, and date range. It returns a pandas DataFrame.

Does the ticker data include best bid and ask?

No. The normalized ticker schema carries rolling price and volume statistics only. Reconstruct the L2 order book when you need top-of-book quotes or the spread.

Start using ticker data today.

One free API key covers every exchange and every data type. $0.00.