Binance Market Data - 24h Tickers & Klines
Pricing
from $0.25 / 1,000 market data row scrapeds
Binance Market Data - 24h Tickers & Klines
Binance spot 24-hour tickers and OHLCV candles (klines) as flat, typed rows: prices and volumes as numbers, ISO-8601 UTC times, base and quote asset on every row. All USDT pairs, any symbol list, any interval from 1s to 1M.
Pricing
from $0.25 / 1,000 market data row scrapeds
Rating
0.0
(0)
Developer
Superslow Sloth
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
Binance spot market data as flat, typed dataset rows: the rolling 24-hour ticker for any set of symbols (or every trading symbol on the exchange), and OHLCV candles ("klines") at any interval from one second to one month.
What you are paying for, honestly
The data comes from Binance's free, public market-data API
(data-api.binance.vision, Binance's own mirror of the api.binance.com
market endpoints). Nothing here is exclusive, and anyone with curl can read
the same numbers. What this actor adds is the plumbing between that API and a
table:
- Typed, flat rows. Binance sends every price and quantity as a string
(
"85443.26000000") and every candle as a positional array. Here each one is a named number column, times come as epoch milliseconds and ISO-8601 UTC, and every row carries itsbase_asset,quote_assetandstatus. - Scheduled feeds into anything Apify connects to. Run it every five minutes or every day and send the dataset to Google Sheets, a webhook, S3, Make, Zapier or your warehouse without writing a client.
- The awkward parts handled. Halted symbols filtered out, a correct quote-asset filter, candle paging past Binance's 1,000-per-request cap, request-weight budgeting, retries from a fresh address on a rate limit.
If you already run code against the Binance API, you probably do not need this. If you want the numbers in a spreadsheet or a pipeline on a schedule, this is the short way there.
Modes
tickers - one row per symbol: last price, 24h change and change %,
open/high/low, volume-weighted average price, previous close, best bid and
ask with their sizes, base and quote volume, trade count and the window's
open and close times.
- Give
symbolsfor specific pairs, or leave it empty for the whole exchange (about 1,370 trading symbols). quoteAssetkeeps only pairs quoted in that asset -USDTgives every USDT pair (about 500). It is matched against the quote asset Binance publishes for each symbol, not against the end of the name: Binance lists quote assets calledU,USD,USD1andFDUSDbesideUSDT, so "ends in USD" would be wrong.
klines - one row per symbol per candle: open, high, low, close, base and
quote volume, trade count, taker-buy base and quote volume, open and close
time.
interval:1s 1m 3m 5m 15m 30m 1h 2h 4h 6h 8h 12h 1d 3d 1w 1M.limitcandles per symbol, up to 10,000 (paged 1,000 at a time).- With
startTime, the firstlimitcandles from that moment. Without it, the most recentlimitcandles up toendTime, or up to now. Either way a symbol's rows come out oldest first.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
mode | select | tickers | tickers or klines. |
symbols | array | BTCUSDT, ETHUSDT | Spot symbols. BTC/USDT, btc-usdt are normalised. Checked against Binance's symbol list first; unknown ones are reported by name and skipped. Required for klines. |
quoteAsset | string | - | Tickers mode only. Exact quote asset, e.g. USDT, BTC, FDUSD, EUR. |
includeNonTrading | boolean | false | Include halted/delisted (BREAK) symbols. See below. |
interval | select | 1d | Klines mode. 1m is a minute, 1M a month. |
limit | integer | 100 | Klines mode. Candles per symbol, 1-10,000. |
startTime | string | - | Klines mode. YYYY-MM-DD (midnight UTC), ISO-8601 datetime, or epoch ms. |
endTime | string | - | Klines mode. Same formats; inclusive. |
maxItems | integer | 1000 | Cap on rows for the whole run, and so on spend. |
proxyConfiguration | proxy | Apify datacenter | The mirror serves datacenter addresses. |
Output
Both record types share one dataset; record_type (ticker or kline)
tells them apart, and the shared columns have the same name and type in
both, so one table holds both. Dataset views: All rows, 24h tickers,
Klines.
Ticker row:
record_type "ticker"symbol e.g. "BTCUSDT"base_asset e.g. "BTC" (from Binance's symbol list)quote_asset e.g. "USDT"status "TRADING", or "BREAK" with includeNonTradinglast_price, last_qtyprice_change absolute change over the 24h windowprice_change_percent e.g. 0.763 means +0.763 %weighted_avg_price 24h volume-weighted average priceprev_close_priceopen_price, high_price, low_pricebid_price, bid_qty, ask_price, ask_qtyvolume base-asset volumequote_volume quote-asset volumeopen_time, close_time epoch ms - the rolling windowopen_time_iso, close_time_iso ISO-8601 UTCfirst_trade_id, last_trade_idtrade_count
Kline row:
record_type "kline"symbol, base_asset, quote_asset, statusinterval e.g. "1h"open_time, close_time, open_time_iso, close_time_isoopen_price, high_price, low_price, close_pricevolume, quote_volume, trade_counttaker_buy_base_volume, taker_buy_quote_volume
Nulls mean "Binance reported none", never zero
Binance writes 0 where there is nothing to report, and a zero in a price
column reads as a measurement. This actor writes null instead, in exactly
these cases:
- Any price that Binance reports as exactly 0 (
last_price,open_price,high_price,low_price,close_price,weighted_avg_price,prev_close_price,bid_price,ask_price). No market trades at zero; Binance sends 0 for "no trade in the window" and for an empty side of the order book. Measured 2026-10-05: the trading pairUIDRhad no trades in its window and was reported withlastPrice "0.00"while its order book showed a bid of 17,783. price_change,price_change_percentandlast_qtywhen the window had no trades (trade_count0). Binance reports a 0% change there, which would read as "the price held" when nothing traded at all.first_trade_id/last_trade_idwhen Binance sends its-1sentinel for "no trades".base_asset,quote_asset,statusonly if Binance's own symbol list omits a symbol, which has not been observed for any symbol this actor requests.
Volumes, quantities and trade_count stay as sent, zeros included: zero
volume traded is a measurement.
Halted and delisted symbols
Binance still lists far more dead spot symbols than live ones: on 2026-10-05,
2,348 of 3,720 had status BREAK. Their 24-hour statistics describe a window
that closed weeks or years ago, so they are left out by default - the
whole-exchange ticker request asks Binance for TRADING symbols only. Turn
on includeNonTrading to get them, each row marked status: "BREAK"; check
close_time_iso before trusting any of their numbers.
Things this data is not
- Not real-time to the millisecond. Each run reads the REST API once; the ticker is a rolling 24h window as of the moment of the request.
- The newest candle may still be forming. A klines request that reaches
the present includes the current, unfinished candle; its
close_timeis in the future and its prices will still move. - Spot only. Futures, options, funding rates and order-book depth are not included.
Rate limits and reliability
Binance counts "request weight" per address per minute (6,000). Measured 2026-10-05: a ticker request for 1-20 symbols costs 2, for 21-100 costs 40, for more or for the whole exchange 80; a klines request costs 2; the symbol list costs 20. The actor sends explicit symbol lists twenty at a time, tracks the weight Binance reports on every response, and pauses for the window to reset before it would go past 4,800. HTTP 429 (rate limited), 418 (Binance's automatic ban after ignored 429s), 403 and 5xx are retried with backoff from a fresh proxy address. An invalid symbol or interval is permanent and is reported, never retried.
A typical run is small: 100 symbols' tickers is 1 symbol-list request plus 5 ticker requests; 100 daily candles for 10 symbols is 11 requests.
Pricing
Pay per event:
- $0.000245 per row (
quote-scraped) - one ticker row or one candle row, charged after the row is written. Rows are de-duplicated before charging. - $0.002 per run (
actor-start).
So 500 USDT-pair tickers cost $0.1245 per run; 1,000 hourly candles $0.247.
Symbols that are skipped (unknown, halted, filtered out) are not charged, and
maxItems caps both rows and spend - the actor never requests more symbols
or candles than maxItems allows.
Source
https://data-api.binance.vision/api/v3/ - exchangeInfo, ticker/24hr,
klines, unauthenticated. On 2026-10-05 the ticker endpoint was verified from
an Apify datacenter address and all three from outside the platform.
api.binance.com itself answers HTTP 451 from Apify datacenter addresses and
is not used.