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 · address history from genesis

Query Console
btc
try:

Hit Run to query the Bitcoin blockchain.

Live from the chain for .

BTC

Balance trail

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Reading the chain ...

Pull a date range over the API, write SQL for a custom series over the indexed chain, which grows with every new block, or bulk-export result sets 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

History 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 over the indexed chain, or export result sets, 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.
Yes. GET /v1/price/ohlcv returns daily or hourly OHLCV candles from 18 August 2011 as JSON or CSV, up to 10,000 per call, and the same series is the price_candles table in SQL. Each candle is labeled by its UTC start and carries a closed flag, so a backtest can drop the hour still forming.
Developer at 49 USD a month covers the most recent year of history over REST. Growth at 199 USD and Scale at 799 USD cover the full chain from the 2009 genesis block and the full price series from 2011, and add SQL. A request that reaches past your plan window is refused without charging credits.
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, with address history back to the genesis block over REST. Informational on-chain data only, not financial advice.

See pricing

History from genesis over REST · SQL · dashboards · addresses, transactions, UTXOs, metrics