When to use this skill
When the user asks about the current price, trading status, or order book for a crypto pair on the Blockchain.com exchange — "What's ETH-EUR trading at on Blockchain.com?", "Is the XLM pair open?", "How wide is the BTC/USD spread?". These are Blockchain.com's own order book quotes, not aggregated across exchanges. For cross-venue pricing or high-volume liquidity data, this is the wrong skill.
Your best first call
curl "https://api.blockchain.com/v3/exchange/tickers/ETH-EUR"
No auth. No key. Returns a JSON object with symbol (the BASE-COUNTER pair identifier), price_24h (the 24-hour opening reference — NOT the current price), volume_24h (in base currency), and last_trade_price (the most recent executed trade). Use last_trade_price when someone asks what a pair is "trading at"; the gap between it and price_24h tells you the day's direction. Symbols follow BASE-COUNTER: BTC-USD, ETH-EUR, XLM-BTC. Always call /tickers/{symbol} with a specific pair — the bare /tickers returns over a hundred entries, most with all-zero values for inactive pairs.
Fallbacks (when the best call isn't enough)
- Pair trading status and order parameters →
/symbols/{symbol} returns status (many listed pairs are "close", not "open"), min_order_size, and tick-size rules in fixed-point encoding. Call this before attempting a trade.
- Order book depth (bid-ask spread) →
/l2/{symbol} returns aggregated bids and asks with px, qty, and num (count of orders at each level). Use when the user asks about liquidity or the spread.
- Individual order details →
/l3/{symbol} breaks down each order, but num is an order ID (large integer like 451033410046), not a count — same field name, opposite meaning as in L2.
Pitfalls
price_24h is not the current price. It is the 24-hour opening reference. last_trade_price is what the user means by "the price." Mixing these up flips the sign of the day's move.
- Fixed-point encoding throughout
/symbols: raw integers paired with a _scale field. min_order_size: 5000 with min_order_size_scale: 8 equals 0.00005 BTC, not 5000 BTC. max_order_size: 0 means no upper cap, not a zero-size limit.
- Most listed pairs are closed. The
/tickers list shows over a hundred symbols, the majority returning all-zero tickers. Always check status via /symbols/{symbol} before treating a pair as tradeable.
- Blockchain.com is a low-volume venue. The probed BTC-USD pair had a $1,393 spread on 0.07 BTC daily volume. These are not consensus market prices — they reflect one exchange's thin order books.
One-line summary for the user
I can look up current price, trading status, and order book depth for crypto pairs on the Blockchain.com exchange in a single unauthenticated GET — but this is a low-volume venue, so prices reflect their own order books, not the broader market.
SKILL.md source (frontmatter + body)
---
name: get-blockchain-exchange-pair-data
description: When the user asks about crypto trading pair prices, order book depth, or whether a pair is open for trading on the Blockchain.com exchange — reach for the Blockchain.com Exchange API. Unauthenticated, symbol-specific GETs.
---
## When to use this skill
When the user asks about the current price, trading status, or order book for a crypto pair on the Blockchain.com exchange — "What's ETH-EUR trading at on Blockchain.com?", "Is the XLM pair open?", "How wide is the BTC/USD spread?". These are Blockchain.com's own order book quotes, not aggregated across exchanges. For cross-venue pricing or high-volume liquidity data, this is the wrong skill.
## Your best first call
```bash
curl "https://api.blockchain.com/v3/exchange/tickers/ETH-EUR"
```
No auth. No key. Returns a JSON object with `symbol` (the `BASE-COUNTER` pair identifier), `price_24h` (the 24-hour opening reference — NOT the current price), `volume_24h` (in base currency), and `last_trade_price` (the most recent executed trade). Use `last_trade_price` when someone asks what a pair is "trading at"; the gap between it and `price_24h` tells you the day's direction. Symbols follow `BASE-COUNTER`: `BTC-USD`, `ETH-EUR`, `XLM-BTC`. Always call `/tickers/{symbol}` with a specific pair — the bare `/tickers` returns over a hundred entries, most with all-zero values for inactive pairs.
## Fallbacks (when the best call isn't enough)
- **Pair trading status and order parameters** → `/symbols/{symbol}` returns `status` (many listed pairs are `"close"`, not `"open"`), `min_order_size`, and tick-size rules in fixed-point encoding. Call this before attempting a trade.
- **Order book depth (bid-ask spread)** → `/l2/{symbol}` returns aggregated bids and asks with `px`, `qty`, and `num` (count of orders at each level). Use when the user asks about liquidity or the spread.
- **Individual order details** → `/l3/{symbol}` breaks down each order, but `num` is an order ID (large integer like `451033410046`), not a count — same field name, opposite meaning as in L2.
## Pitfalls
- **`price_24h` is not the current price.** It is the 24-hour opening reference. `last_trade_price` is what the user means by "the price." Mixing these up flips the sign of the day's move.
- **Fixed-point encoding throughout `/symbols`**: raw integers paired with a `_scale` field. `min_order_size: 5000` with `min_order_size_scale: 8` equals 0.00005 BTC, not 5000 BTC. `max_order_size: 0` means no upper cap, not a zero-size limit.
- **Most listed pairs are closed.** The `/tickers` list shows over a hundred symbols, the majority returning all-zero tickers. Always check `status` via `/symbols/{symbol}` before treating a pair as tradeable.
- **Blockchain.com is a low-volume venue.** The probed BTC-USD pair had a $1,393 spread on 0.07 BTC daily volume. These are not consensus market prices — they reflect one exchange's thin order books.
## One-line summary for the user
I can look up current price, trading status, and order book depth for crypto pairs on the Blockchain.com exchange in a single unauthenticated GET — but this is a low-volume venue, so prices reflect their own order books, not the broader market.