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.

The sample is one real hourly Parquet/Zstd file. No API key is required on the rate-limited free tier; file size varies with venue, symbol, and market activity.

Dataset fit

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.

Coverage

Ticker statistics coverage

Coverage is organized by exchange, market type, and hourly object path. Live symbol counts are shown when the symbols API responds during page generation.

VenueExchange IDMarketHistory startTicker symbols
Binance Futuresbinance_futuresFutures2025-06-28860
Binance Spotbinance_spotSpot2025-06-281,998
Bybit FuturesbybitFutures2025-06-281,318
Bybit Spotbybit_spotSpot2025-06-28831
OKX Futuresokx_futuresFutures2025-06-28559
OKX Spotokx_spotSpot2025-06-281,475
Bitget Futuresbitget_futuresFutures2025-07-151,083
Bitget Spotbitget_spotSpot2025-07-151,655
Kraken Futureskraken_derivativesFutures2025-06-28629
Kraken Spotkraken_spotSpot2025-06-281,632
Aster Futuresaster_futuresFutures2025-09-29570
BitMEXbitmexFutures2025-09-29156
Lighter PerpetualslighterPerpetuals2025-12-30221

Schema

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.

FieldTypeNullableDescription
received_timeINT64NoUnix timestamp (nanoseconds) when our system received the ticker event
event_timeINT64NoUnix timestamp (exchange dependent on timescale) when the exchange generated the ticker
symbolSTRINGNoTrading pair symbol (e.g., 'BTCUSDT')
price_changeSTRINGYesAbsolute price change over 24h period (stored as string for precision)
price_change_percentSTRINGYesPercentage price change over 24h period
weighted_average_priceSTRINGYesVolume-weighted average price over 24h period
last_priceSTRINGYesMost recent trade price
last_quantitySTRINGYesQuantity of the most recent trade
open_priceSTRINGYesOpening price at start of 24h period
high_priceSTRINGYesHighest price during 24h period
low_priceSTRINGYesLowest price during 24h period
base_asset_volumeSTRINGYesTotal volume in base asset (e.g., BTC in BTCUSDT)
quote_asset_volumeSTRINGYesTotal volume in quote asset (e.g., USDT in BTCUSDT)
statistics_open_timeINT64YesUnix timestamp when the 24h statistics period started
statistics_close_timeINT64YesUnix timestamp when the 24h statistics period ended
first_trade_idINT64YesID of the first trade in the 24h period
last_trade_idINT64YesID of the last trade in the 24h period
total_tradesINT64YesTotal number of trades executed during 24h period

Access

Download with Python or REST

The sample below downloads BTCUSDT from Binance Futures for 2025-08-01, hour 20. The REST example uses the rate-limited free tier; set CRYPTOHFTDATA_API_KEY for authenticated SDK access and higher limits.

Python SDK
import os
import cryptohftdata as chd

client = chd.CryptoHFTDataClient(
    api_key=os.getenv("CRYPTOHFTDATA_API_KEY")
)

df = client.get_ticker(
    symbol="BTCUSDT",
    exchange=chd.exchanges.BINANCE_FUTURES,
    start_date="2025-08-01",
    end_date="2025-08-01",
)

print(df.head())
print(f"Ticker updates: {len(df):,}")
REST API
curl --fail --location \
  "https://api.cryptohftdata.com/download?file=binance_futures/2025-08-01/20/BTCUSDT_ticker.parquet.zst" \
  -o BTCUSDT_ticker_20.parquet.zst

Caveats

What this data is and is not

These details are important for accurate backtests, replay pipelines, and microstructure features.

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

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.

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

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

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.

Next

Use the ticker data

Validate the free sample first. Then use an API key for larger downloads and move between the SDK reference, tutorial, and data explorer as needed.