# Bitcoin API

The Crypto APIs Bitcoin API, part of the Blockchain API, lets you read balances, transactions, blocks and unspent outputs and send BTC without running a node. One API key covers mainnet and testnet. Webhooks tell your server when a payment confirms, and we never hold your private keys.

## Key facts

| | |
| --- | --- |
| Networks | Mainnet, Testnet |
| Model | UTXO |
| Endpoints | 51 |
| Confirmations webhook | Yes, per address |
| Custody | Non-custodial, you sign |
| Free trial | 14 days, no card |

## How do I get the latest Bitcoin block?

Send one GET request with your API key; the same request works on testnet when you replace mainnet with testnet in the path.

```
curl https://rest.cryptoapis.io/blocks/utxo/bitcoin/mainnet/latest/details \
  -H "X-API-Key: YOUR_API_KEY"
```

## Which Bitcoin endpoints are available?

The main calls. Every path takes the network: mainnet or testnet.

| What it does | Method and path | Reference |
| --- | --- | --- |
| Latest block | `GET /blocks/utxo/bitcoin/mainnet/latest/details` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/blocks-utxos/get-last-mined-block-utxos/get) |
| Block by height | `GET /blocks/utxo/bitcoin/mainnet/height/{blockHeight}/details` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/blocks-utxos/get-block-details-by-block-height-utxos/get) |
| Address balance | `GET /addresses-latest/utxo/bitcoin/mainnet/{address}/balance` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/address-latest-utxos/get-address-balance-utxos/get) |
| Unspent outputs of an address | `GET /addresses-historical/utxo/bitcoin/mainnet/{address}/unspent-outputs` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/address-history-utxos/list-unspent-transaction-outputs-by-address-utxos/get) |
| Transactions of an address | `GET /addresses-latest/utxo/bitcoin/mainnet/{address}/transactions` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/address-latest-utxos/list-confirmed-transactions-by-address-utxos/get) |
| Transaction by hash | `GET /transactions/utxo/bitcoin/mainnet/{transactionHash}` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/transactions-data-utxos/get-transaction-details-by-transaction-hash-utxos/get) |
| Fee recommendations | `GET /blockchain-fees/utxo/bitcoin/mainnet/mempool` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/blockchain-fees-utxos/get-fee-recommendations-utxos/get) |
| Derive addresses from an xPub | `GET /utils/bitcoin/mainnet/xpubs/{extendedPublicKey}/derive-addresses` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/features/derive-hd-wallet-xpub-ypub-zpub-change-or-receiving-addresses/get) |
| Prepare an unsigned transaction | `POST /prepare-transactions/utxo/bitcoin/mainnet/native-coins` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/prepare-transactions-utxo/prepare-transaction-from-address-utxo/post) |
| Broadcast a signed transaction | `POST /broadcast-transactions/bitcoin/mainnet` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/broadcast-locally-sign-transactions/broadcast-locally-signed-transaction/post) |
| Webhook on a confirmed payment | `POST /blockchain-events/bitcoin/mainnet/address-coins-transactions-confirmed` | [Docs](https://developers.cryptoapis.io/v-2.2024-12-12-175/RESTapis/create-subscriptions-for/new-confirmed-coins-transactions/post) |

## Bitcoin API questions

**Is there a free Bitcoin API?** You can try it free for 14 days. The Blockchain API free trial covers Bitcoin and every feature, with no card. It ends after 14 days or when its credits run out; after that, calls need a subscription, listed on the pricing page.

**How do I get the balance of a Bitcoin address?** Call the address balance endpoint with the address; it returns the confirmed balance in BTC. For the spendable coins, list the address's unspent outputs (UTXOs).

**How do I broadcast a Bitcoin transaction?** Sign the transaction on your own server, then send the signed raw transaction to the broadcast endpoint, authenticated with your API key, and Crypto APIs pushes it to the Bitcoin network and returns the transaction ID. We can prepare the unsigned transaction for you first.

**Do you support Bitcoin testnet?** Yes. Every Bitcoin endpoint works on mainnet and testnet. Change mainnet to testnet in the path; the same API key works on both.

**What makes Bitcoin different to work with?** It is a UTXO chain — balances are the sum of unspent outputs, not a single account figure. Because there is no account balance to read, spending means selecting unspent outputs and handling change. Crypto APIs does that selection for you in prepare-transactions, so you sign one prepared transaction rather than assembling inputs yourself.

**How do I know when a Bitcoin transaction is confirmed?** Create a webhook subscription for the address. Crypto APIs calls your URL when a transaction to or from it confirms on Bitcoin.

## The backbone of blockchain

The most famous cryptocurrency and blockchain in the world, Bitcoin is open-sourced, with no master, and anyone can take part in its development and management. Its success inspired the creation of the wealth of cryptocurrencies.

Bitcoin paved the way for the evolution of blockchain technology. It represents a new and innovative way for monetary transfers and transactions to occur under the digital governance of a decentralized network that is pseudonymous and secure.

| About Bitcoin | |
| --- | --- |
| Released | 2009 |
| Consensus | Proof of Work (PoW) |
| Block time | 10 minutes |
| Smart contracts | No |

## Other UTXO chains, same request shape

- [Litecoin API](/chains/litecoin)
- [Bitcoin Cash API](/chains/bitcoin-cash)
- [Dogecoin API](/chains/doge)

## Pointers

- [Blockchain API](/products/blockchain-api)
- [All networks](/what-we-support)
- [Pricing](/pricing)
- [Developer portal](https://developers.cryptoapis.io/)
