API reference

public · read-only · no key required
overview

BTCscope is a client of public, documented Bitcoin APIs — there is no proprietary index behind it and no vendor lock-in. Everything you see on this site you can fetch yourself with the endpoints below. We publish this so any figure on BTCscope can be independently reproduced.

chain base url
markets base url
endpoints used by btcscope
methodpathreturnsused by
GET/blocks/tip/heightCurrent chain tip heightDashboard, header
GET/blocks/{startHeight}Page of 10 blocks from a heightBlocks
GET/block/{hash}Block header, size, weight, tx count, poolBlock detail
GET/block/{hash}/txidsAll txids in a blockBlock detail
GET/tx/{txid}Transaction inputs, outputs, fee, statusTransaction
GET/tx/{txid}/outspendsWhether each output has been spentTransaction
GET/address/{address}Funded/spent totals and tx countsAddress
GET/address/{address}/txsAddress transaction historyAddress
GET/mempoolMempool size, vsize, total feesMempool
GET/v1/fees/recommendedFee estimates by targetMempool, alerts
GET/v1/fees/mempool-blocksProjected next blocks & fee bandsMempool
GET/v1/mining/pools/1wPool share of blocks minedMining
GET/v1/mining/hashrate/3mNetwork hashrate & difficulty seriesMining, Charts
GET/v1/difficulty-adjustmentRetarget progress and estimateMining
example — fetch a transaction
curl -s "https://mempool.space/api/tx/<txid>" | jq '{
  txid, fee, size, weight,
  confirmed: .status.confirmed,
  height: .status.block_height
}'
const res = await fetch(`https://mempool.space/api/tx/${txid}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const tx = await res.json();
example — address history + fees
curl -s "https://mempool.space/api/address/<address>/txs" | jq 'length'
curl -s "https://mempool.space/api/v1/fees/recommended"
# { fastestFee, halfHourFee, hourFee, economyFee, minimumFee }
status codes
200
Success — JSON body
400
Malformed hash, txid or address
404
Unknown block, transaction or address
429
Rate limited — back off and retry
5xx
Upstream incident — retried, then surfaced on the status page
caching, retries & fair use
retries
Up to 3 attempts with backoff before an error is shown
cache
Short per-dataset TTLs; every dataset's age is published publicly
rate limits
Upstream providers rate limit by IP — cache aggressively and avoid tight polling loops
transparency
Live latency, retry counts and outage windows on the status page
attribution
If you build on these APIs, credit the upstream providers as we do
exports instead of code

Not a developer? Every table on Blocks, Mempool, Markets and the block, transaction and address pages exports to CSV in one click — same data, no integration work.