Tick trades — this dataset
Use individual public executions for trade flow, taker-side volume, VWAP, and transaction-level backtests.
Binance Tick Trade Dataset
Binance public trade executions from spot and futures markets, normalized into the same tick schema used across CryptoHFTData venues.
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
Tick data is an overloaded term. This page owns downloadable execution-level trade history; ticker statistics and L2 order book changes are separate datasets.
Use individual public executions for trade flow, taker-side volume, VWAP, and transaction-level backtests.
Use the ticker dataset for exchange-published rolling price and volume statistics, not individual executions or quotes.
View dataset →Use the order book dataset when you need bid/ask depth, spreads, or liquidity replay rather than completed trades.
View dataset →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.
| Venue | Exchange ID | Market | History start | Tick trade symbols |
|---|---|---|---|---|
| Binance Futures | binance_futures | Futures | 2025-06-28 | 869 |
| Binance Spot | binance_spot | Spot | 2025-06-28 | 2,009 |
Schema
Every row is one public execution published by an exchange, with exchange timing, trade ID, exact price and quantity strings, buyer-maker status, and order type.
| Field | Type | Nullable | Description |
|---|---|---|---|
| received_time | INT64 | No | Unix timestamp (nanoseconds) when our system received the trade event |
| event_time | INT64 | No | Unix timestamp (exchange dependent on timescale) when the exchange generated the event |
| symbol | STRING | No | Trading pair symbol (e.g., 'BTCUSDT') |
| trade_id | INT64 | No | Exchange-specific unique trade identifier |
| price | STRING | No | Trade execution price (stored as string for precision) |
| quantity | STRING | No | Trade quantity/volume (stored as string for precision) |
| trade_time | INT64 | No | Unix timestamp (exchange dependent on timescale) when the trade occurred |
| is_buyer_maker | BOOLEAN | No | True if buyer was the maker (passive side), false if taker |
| order_type | STRING | No | Type of order that generated this trade (e.g., "LIMIT", "MARKET") |
Access
The sample below downloads BTCUSDT from Binance Futures for 2026-09-02, hour 12. The REST example uses the rate-limited free tier; replace YOUR_API_KEY for authenticated SDK access and higher limits.
import cryptohftdata as chd
client = chd.CryptoHFTDataClient(api_key="YOUR_API_KEY")
df = client.get_trades(
symbol="BTCUSDT",
exchange=chd.exchanges.BINANCE_FUTURES,
start_date="2026-09-02",
end_date="2026-09-02",
)
print(df.head())
print(f"Tick trades: {len(df):,}")curl --fail --location \
"https://api.cryptohftdata.com/download?file=binance_futures/2026-09-02/12/BTCUSDT_trades.parquet" \
-o BTCUSDT_trades_12.parquetCaveats
These details are important for accurate backtests, replay pipelines, and microstructure features.
Each row is a public tick trade as published by the exchange; trade ID semantics and aggregation behavior vary by venue.
is_buyer_maker identifies the passive side. True means the buyer rested and the seller took liquidity; false means the buyer took liquidity.
received_time is recorded in nanoseconds, while exchange event_time and trade_time units are venue dependent. Inspect and normalize timestamp units before joining feeds.
Prices and quantities are stored as strings to preserve exchange precision; cast to decimals or floats as needed.
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
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.