L2 order book data is aggregated by price level, not individual L3 orders.
Bitget Order Book Dataset
Bitget Historical Orderbook Data
Bitget spot and futures order book snapshots plus deltas, normalized for replay, backtesting, and cross-venue liquidity research.
Coverage
Orderbook 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 | Orderbook symbols |
|---|---|---|---|---|
| Bitget Futures | bitget_futures | Futures | 2025-07-15 | 853 |
| Bitget Spot | bitget_spot | Spot | 2025-07-15 | 978 |
Schema
Normalized orderbook schema
Every orderbook row represents a bid or ask price-level event with exchange timing, sequence fields when available, price, quantity, and event type.
| Field | Type | Nullable | Description |
|---|---|---|---|
| received_time | INT64 | No | Unix timestamp (nanoseconds) when our system received the event |
| event_time | INT64 | No | Unix timestamp (exchange dependent on timescale) when the exchange generated the event |
| transaction_time | INT64 | Yes | Exchange-specific transaction timestamp (when available) |
| symbol | STRING | No | Trading pair symbol (e.g., "BTCUSDT") |
| event_type | STRING | No | Type of orderbook event ("snapshot" or "update") |
| first_update_id | INT64 | Yes | First update ID in the update sequence |
| final_update_id | INT64 | Yes | Final update ID in the update sequence |
| prev_final_update_id | INT64 | Yes | Previous final update ID (for gap detection) |
| last_update_id | INT64 | Yes | Last update ID processed by the exchange |
| side | STRING | No | Order book side ("bid" or "ask") |
| price | STRING | No | Price level (stored as string for precision) |
| quantity | STRING | No | Quantity at price level (stored as string for precision) |
| order_count | INT64 | Yes | Number of orders at this price level (when available from exchange) |
Access
Download with Python or REST
The sample below downloads BTCUSDT from Bitget Futures for 2025-08-01, hour 20.
import cryptohftdata as chd
client = chd.CryptoHFTDataClient(api_key="your-api-key-here")
df = client.get_orderbook(
symbol="BTCUSDT",
exchange=chd.exchanges.BITGET_FUTURES,
start_date="2025-08-01",
end_date="2025-08-01",
)
print(df.head())
print(f"Orderbook updates: {len(df):,}")curl "https://api.cryptohftdata.com/download?file=bitget_futures/2025-08-01/20/BTCUSDT_orderbook.parquet.zst&api_key=your-api-key-here" \
-o BTCUSDT_orderbook_20.parquet.zstCaveats
What this data is and is not
These details are important for accurate backtests, replay pipelines, and microstructure features.
Files contain snapshots plus incremental updates, so full book state requires replaying events in sequence.
This page starts on 2025-07-15 based on the earliest stored orderbook files for its covered exchange IDs and grows as new hourly files are published.
Next
Use the orderbook data
Start with an API key, then move between docs, tutorials, and the browser data explorer as needed.