BitcoinDatabase.com

Query the chain · Transaction API

Bitcoin transaction API for inputs, outputs and confirmations

The Bitcoin transaction API returns the full anatomy of any transaction. Pass a txid and get every input with the outputs it spends, every output with its value to the satoshi, script types, the fee paid, the block it confirmed in, and its current confirmation count. Unconfirmed transactions are visible in the mempool the moment they broadcast.

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 ...

Use it to detect deposits, verify payments at a confirmation threshold, or reconcile flows. Query it as REST in an app, in SQL across many transactions, or in a dashboard. The chain is fully indexed, so lookups are instant and you never run a node. Informational data only, not 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 Transaction API

Full transaction anatomy

Every input, output, value to the satoshi, script type and fee is returned for any txid, so you see exactly how funds moved.

Confirmations and mempool

Read the confirmation count for settled transactions and detect unconfirmed ones in the mempool, ideal for deposit and payment monitoring.

Built for reconciliation

Because inputs link to the outputs they spend, you can trace and reconcile flows transaction by transaction across the indexed chain.

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.

  • Fetch any transaction by txid
  • See all inputs, outputs and values
  • Read fees, script types and confirmations
  • Detect unconfirmed transactions in the mempool
  • Trace and reconcile flows between transactions
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 Transaction API

For a given txid: all inputs and the outputs they spend, all outputs with values to the satoshi, script types, the fee, the confirming block and the confirmation count. Unconfirmed transactions appear via the mempool view.
Yes. You can watch a transaction reach your chosen confirmation threshold and verify the exact outputs and amounts. It is informational on-chain data and not financial or trading advice.
Request a transaction by its txid and you get its inputs, outputs, amounts, addresses, script types, fee and confirmation status in one JSON response. For anything spanning many transactions, such as flows or aggregates over a block or a date range, SQL over the indexed chain is the better shape than looping over individual lookups.
Yes, that is the point of a hosted transaction API. Running a node means hundreds of gigabytes of storage, an initial sync, and ongoing maintenance through reorgs and upgrades. An indexed API answers the same questions immediately, and answers historical ones a pruned node cannot answer at all.
It varies with demand and block space, typically in the hundreds of thousands. Block-level counts vary widely: we measured 4,329 transactions in block 963,218, 4,402 in block 963,402 and 3,905 in block 963,670. Daily totals are best computed from the blocks themselves rather than quoted from a static figure.
Yes. Because every input records the output it spends, you can follow value forward or backward across hops by joining inputs to outputs. That is how flow tracing works, and it is a query rather than a crawl once the chain is indexed. Interpretation still needs care, since change outputs look identical to payments.
There is no flag for it, which is the hard part. Change is inferred: an output returning to an address that also funded the transaction is almost certainly change, and heuristics extend that to fresh addresses matching the input script type. It matters enormously for volume figures, because most raw output value is change.
Yes. Each transaction carries its fee in BTC and the size and weight needed to derive a fee rate in satoshis per virtual byte, and every input and output carries its script type. That means legacy, P2SH, native SegWit and Taproot activity can be separated without parsing address strings yourself.

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