BitcoinDatabase.com

Query the chain · Historical data API

Bitcoin historical data API back to the 2009 genesis block

Backtests and research need depth, not just the last few weeks. The Bitcoin historical data API serves the full chain since the 2009 genesis block: every block and transaction, point-in-time address balances, daily on-chain metrics like active addresses and exchange flows, plus historical price and market data aligned to the same timeline.

or try it below ↓

REST API · SQL · dashboards · indexed from genesis

Query Console
btc
try:

Hit Run to query the fully-indexed Bitcoin blockchain.

BTC

30-day trend

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Querying the indexed Bitcoin blockchain ...

Pull a date range over the API, write SQL for a custom series, or bulk-export entire datasets for offline analysis. The history is indexed and reconciled block by block, so your numbers tie out. This is informational data for research, not financial or investment advice.

REST API SQL DASHBOARDS WEBHOOKS CSV EXPORT

Indexed from genesis queryable in seconds

On-chain data not financial advice

Why it works

What you get with Historical data API

Full depth since 2009

Every block and transaction from the genesis block onward is indexed, so you can study any address, cohort or metric across the entire history of the chain.

Metrics and price aligned

Daily on-chain metrics and historical market price share one timeline, so you can join on-chain activity to price without stitching vendors together.

Bulk export for research

Pull date ranges over the API, query custom series in SQL, or export whole datasets, so heavy historical work runs offline at scale.

What it handles

The indexed Bitcoin chain, queryable your way

Look up an address, a transaction, a UTXO, the rich list or an on-chain metric, by REST API, SQL or dashboard. The same authoritative data, reconciled block-by-block against the canonical chain, without running a node.

  • Query any block or transaction back to 2009
  • Reconstruct point-in-time address balances
  • Pull daily on-chain metric time series
  • Align on-chain data to historical price
  • Bulk-export full datasets for analysis
GET /v1/address/{addr} query result
200 · JSON
{
  "address": "bc1qxy2k…l0wdv8",
  "balance_btc": 68432.10,
  "balance_usd": 4612165420,
  "tx_count": 1284,
  "unspent_outputs": 37,
  "first_seen": "2014-02-09"
}
indexed from genesis · to the satoshi ✓ reconciled block-by-block

Why BitcoinDatabase

One platform, queryable three ways

Not a raw node to sync, not an indexer to build, and not five vendors to stitch together. The fully-indexed Bitcoin blockchain, available as a REST API, as SQL, and as dashboards, on one authoritative dataset.

REST API

Typed JSON for addresses, transactions, balances, UTXOs and metrics. Drop it into apps, wallets, explorers and agents with curl, Python or any HTTP client.

SQL access

Run SQL directly against the indexed Bitcoin dataset for ad-hoc analysis, cohorts and exports, the same data the API and dashboards read from.

Compliance-first

Informational on-chain data and analytics only. Entity labels and flow tracing are framed as tooling to support a regulated team's own review, not accusations.

Good questions

Questions about Historical data API

To the 2009 genesis block. Every block and transaction since is indexed and reconciled, so you can compute point-in-time balances and full metric histories across the entire life of the chain.
Yes. Beyond API range queries and SQL, higher tiers support bulk exports for offline backtesting and research. The data is informational and not financial or investment advice.
Yes. Because every input and output is stored with the block that confirmed it, a balance can be summed as of any height or date in the chain history, and a date range returns the running balance rather than a single figure. That is the part explorers do not serve, since they keep only the current unspent set.
Yes. The docs cover every REST endpoint, the SQL tables behind them, response shapes and pagination, and they are the same reference our own queries are written against. Historical endpoints take a height or a timestamp range rather than only a current-state lookup, which is the part most block explorer APIs leave out.
Yes. Chain data is stored per block, so any series can be rolled up to hourly, daily or an arbitrary window rather than only the daily granularity most vendors publish. Because blocks arrive roughly every ten minutes, an hourly bucket typically aggregates about six blocks, and the bucket boundaries are yours to define in UTC.
Market data is price, volume and order book activity from exchanges, which happens off-chain. Blockchain data is what the ledger actually recorded: transactions, outputs, balances and fees. Most on-chain questions need both, but only the blockchain half is verifiable from the chain itself, and only that half is what we index.
Do not page a public explorer API for it. Esplora returns 25 transactions per call, so a single busy block takes over 150 sequential requests and roughly eight minutes. Backfills belong in SQL against an indexed copy, where a decade of blocks is a query with a WHERE clause instead of millions of HTTP calls.
That is the point of holding the raw chain rather than a finished series. Every aggregate ties back to the transactions that produced it, so you can recompute it and get the same number. Vendors that ship only computed metrics can silently change a methodology, and a result that will not replicate six months later is a research liability.

Explore more

More ways to query Bitcoin with BitcoinDatabase

Stop running a node. Just query Bitcoin.

Run your first query now and get on-chain data back by REST API, SQL or dashboard, indexed from the genesis block. Informational on-chain data only, not financial advice.

See pricing

Indexed from genesis · REST · SQL · dashboards · addresses, transactions, UTXOs, metrics