When to use this API
Use this when you need live market data from the Blockchain.com exchange specifically — current prices, order book state, or trading pair specifications. The data reflects Blockchain.com's own order books, not a multi-venue aggregate, and the exchange runs low volume on most pairs: treat its prices as Blockchain.com-specific quotes rather than consensus market prices. No authentication is required for any of these endpoints. If you need cross-exchange price aggregation or high-volume liquidity data, reach for a different data source.
Getting the current price for a trading pair
"What's BTC trading at on Blockchain.com right now?" The /tickers/{symbol} endpoint returns price and volume for a single pair in one call. Symbols follow the BASE-COUNTER convention — BTC-USD, ETH-EUR, XLM-BTC.
curl "https://api.blockchain.com/v3/exchange/tickers/BTC-USD" | head -c 10000
{
"symbol": "BTC-USD",
"price_24h": 72000.0,
"volume_24h": 0.07018205,
"last_trade_price": 70544.63
}
price_24h is the reference price at the start of the 24-hour window — not a high, not an average, not the current price. last_trade_price is the actual most recent executed trade. The gap between them (72000 vs 70544) tells you the direction of the day's move; use last_trade_price when someone asks what BTC is "trading at", not price_24h. The volume_24h of 0.07 BTC — roughly $5,000 at these prices — confirms this is a low-volume venue. On Coinbase or Binance, BTC daily volume is measured in billions.
BTC is currently trading at $70,544.63 on Blockchain.com's exchange, down from its 24h opening reference price of $72,000. Note that Blockchain.com runs low volume on most pairs, so this reflects their order books specifically.
Checking whether a trading pair is open for trading
"Can I trade STX on Blockchain.com, and what's the minimum order?" Call /symbols/{symbol} to get the pair's current status and order parameters. The status field is the authoritative check — many listed pairs are "close" rather than "open".
The probe data only covers BTC-USD, but the data shape is the same for any pair.
curl "https://api.blockchain.com/v3/exchange/symbols/BTC-USD" | head -c 10000
{
"base_currency": "BTC",
"base_currency_scale": 8,
"counter_currency": "USD",
"counter_currency_scale": 2,
"min_price_increment": 1,
"min_price_increment_scale": 2,
"min_order_size": 5000,
"min_order_size_scale": 8,
"max_order_size": 0,
"max_order_size_scale": 8,
"lot_size": 1,
"lot_size_scale": 8,
"status": "open",
"id": 1,
"auction_price": 0.0,
"auction_size": 0.0,
"auction_time": "",
"imbalance": 0.0
}
Every size and price value uses a fixed-point encoding: divide the raw integer by 10^(scale field) to get the actual value. min_order_size: 5000 with min_order_size_scale: 8 → 5000 / 10^8 = 0.00005 BTC. min_price_increment: 1 with min_price_increment_scale: 2 → $0.01. The scale fields are easy to skip until you're wondering why the minimum order reads as "5000". max_order_size: 0 means no upper cap on order size, not a zero-size limit.
BTC-USD is open for trading on Blockchain.com. The minimum order size is 0.00005 BTC, and prices tick in $0.01 increments.
Reading the order book depth
"How tight is the spread on BTC/USD at Blockchain.com?" The /l2/{symbol} endpoint returns the Level 2 order book — bids and asks aggregated by price level, each showing the total quantity and count of orders at that level.
curl "https://api.blockchain.com/v3/exchange/l2/BTC-USD" | head -c 10000
{
"symbol": "BTC-USD",
"bids": [
{"px": 70399.65, "qty": 0.002, "num": 1}
],
"asks": [
{"px": 71793.15, "qty": 0.002, "num": 1}
]
}
The bid-ask spread here is $1,393 — from $70,399 to $71,793. On a liquid exchange, BTC spreads are a few dollars. A spread this wide makes the low-volume picture concrete: one order on each side, 1.9% apart. In L2, num is the count of individual orders aggregated at a price level, which tells you how concentrated liquidity is. The /l3/{symbol} endpoint breaks this down further, but there num is the individual order's ID — a large integer like 451033410046 — not a count. Same field name, completely different meaning.
The current bid-ask spread for BTC/USD on Blockchain.com is approximately $1,393, from a best bid of $70,399.65 to a best ask of $71,793.15. This is unusually wide, reflecting the exchange's shallow order books.
Pitfalls
- Fixed-point encoding throughout
/symbols: raw integer values need to be divided by 10^(their paired scale field) to get real quantities.min_order_size: 5000/min_order_size_scale: 8= 0.00005 BTC, not 5000 BTC. nummeans opposite things in L2 vs L3: in/l2,numis the count of orders aggregated at a price level; in/l3,numis the individual order's ID. The same field name carries completely different semantics across these two endpoints.- Many pairs have
status: "close": the probe data shows the majority of listed pairs returning all-zero tickers. Call/symbols/{symbol}and checkstatusbefore treating a listed pair as tradeable. /tickerswithout a symbol returns the full list — over a hundred entries, the majority with all-zero values for inactive pairs. Always call/tickers/{symbol}directly when you need data for a specific pair.
One-line summary for the user
I can fetch real-time prices, order book depth, and trading pair specifications from the Blockchain.com exchange without authentication, but this is a low-volume venue — prices here reflect Blockchain.com's own order books, not the broader crypto market.