Binance BNBUSDT perpetual: historical order book, tick trades & funding
2.22M trade, depth, mark-price and funding events for the BNBUSDT perpetual since 2025-06-01 — about 4,336 events a day.
Coverage
BNBUSDT perp data coverage
What is recorded, how often it updates and how much there is.
History start
2025-06-01
512 days of history
Events recorded
2,220,000
≈ 2.22M as of 2026-10-25
Avg events / day
4,336
trade · depth update · mark price · funding
Update frequency
Every trade tick-by-tick; depth diffs at 100 ms; mark price and funding as published
Daily activity · last 30 days
Indicative daily event volume, last 30 days to 2026-10-25. Shape modeled from collector stats; mean matches the average events/day above.
About this market
What is BNBUSDT perp?
The BNBUSDT perp is the leveraged way to trade Binance's own token; funding and open interest react to exchange news more than to broader crypto flows. AymarData holds 2.22M events for it since 2025-06-01: trades, order-book updates at 100 ms, mark price and funding.
BNB is the native token of BNB Chain and the fee-discount asset of the world's largest exchange. On the derivatives side, BNB perp is moved by the quarterly token burn, which is scheduled and partly priced in, and by Binance corporate and regulatory news, which hits BNB harder than any other major. Because it is leveraged, those same drivers also show up as funding-rate shifts and liquidation-driven bursts that don't appear on spot.
At about 4,336 events a day (trades, depth, mark price and funding), BNBUSDT perp is a complete picture of a leveraged market: join funding with open positioning, replay depth around liquidation-driven moves, and compare perp trades with spot to measure basis in real time.
What moves the BNBUSDT perp
- The quarterly token burn, which is scheduled and partly priced in
- Binance corporate and regulatory news, which hits BNB harder than any other major
- BNB Chain activity — launchpads, memecoin seasons and stablecoin flows
Schema
BNBUSDT perp fields and sample rows
The same columns are returned by the API and in Parquet and CSV files.
| Field | Type | Description |
|---|---|---|
| ts_ms | int64 | Exchange event time, Unix milliseconds |
| symbol | string | USDⓈ-M perpetual symbol, here BNBUSDT |
| event_type | string | trade | depth_update | mark_price |
| side | string | buy / sell for trades; bid / ask for depth; null on mark_price |
| price | number | Trade price, book level or mark price in USDT |
| size | number | Contract quantity; null on mark_price |
| funding_rate | number | null | Current funding rate on mark_price events, else null |
Sample rows
| ts_ms | symbol | event_type | side | price | size | funding_rate |
|---|---|---|---|---|---|---|
| 1792684798795 | BNBUSDT | trade | sell | 612.56 | 9.07 | null |
| 1792684799006 | BNBUSDT | depth_update | ask | 612.58 | 13.21 | null |
| 1792684799752 | BNBUSDT | mark_price | null | 612.55 | null | 0.00011341 |
Illustrative rows for the BNBUSDT perpetual; prices are in USDT and shown for schema purposes, not as live quotes. Funding appears on mark_price events.
Code
Pull BNBUSDT perp in Python, cURL or MCP
Market id: BNBUSDT. Export AYMARDATA_API_KEY from your dashboard, then run the Python requests example.
import os
import requests
API = "https://api.aymardata.com/v1"
KEY = os.environ["AYMARDATA_API_KEY"] # export AYMARDATA_API_KEY=ad_live_…
H = {"Authorization": f"Bearer {KEY}", "User-Agent": "aymardata-docs/1.0"}
# BNBUSDT perp: ten minutes around the 16:00 UTC funding window
trades = requests.get(
f"{API}/trades",
headers=H,
params={
"source": "binance-perps",
"market": "BNBUSDT",
"start": "2026-10-22T15:55:00Z",
"end": "2026-10-22T16:05:00Z",
"limit": 500,
},
timeout=30,
).json()["data"]
marks = [t for t in trades if t["event_type"] == "mark_price"]
print(marks[0]["price"], marks[0]["funding_rate"])
book = requests.get(
f"{API}/book",
headers=H,
params={
"source": "binance-perps",
"market": "BNBUSDT",
"at": "2026-10-22T16:00:00Z",
"depth": 10,
},
timeout=30,
).json()
print(book.get("spread"), len(trades))FAQ
BNBUSDT perp: common questions
How do I use funding and depth together on the BNBUSDT perp perp?
Funding and mark price arrive as their own events alongside depth and trades (~4,336 a day in total for BNBUSDT perp). Align them on timestamp: look at how depth thins in the minutes before each funding time and how aggressive flow changes after a funding reset.
How are funding and mark price stored for the BNBUSDT perpetual?
They are separate events (event_type=mark_price) in the same time-ordered stream as trades and depth. The funding_rate field carries the current funding rate; it is null on other event types, so you can filter funding with a single predicate.
What moves the BNBUSDT perpetual?
The quarterly token burn, which is scheduled and partly priced in, and Binance corporate and regulatory news, which hits BNB harder than any other major. The BNBUSDT perp is the leveraged way to trade Binance's own token; funding and open interest react to exchange news more than to broader crypto flows.
How much BNBUSDT perp history is available?
2.22M events since 2025-06-01, averaging 4,336 per day, each stamped with Binance's exchange timestamp in milliseconds.
Can I measure BNB basis between spot and perp?
Yes: join BNBUSDT perp with BNBUSDT spot on ts_ms. The perp page shows mark price and funding; the spot page has the cash order book. Use both to measure basis and lead-lag.
Backtest BNBUSDT perp with real tick data
Get an API key, pull your first window and join it with the other sources in the catalog.