Free and open source. Hosted or self-hosted.
Bitcoin fee intelligence for apps and AI agents. No signup for basic testing.
Satoshi API gives apps and AI agents live fee recommendations, mempool context, and transaction cost estimates so they can answer the only question that matters: send now or wait and save money.
$ pip install bitcoin-mcp
Loading live fee data...
Want the same answers inside Claude or your own agent? Pair the API with bitcoin-mcp.
For AI Agents
Copy any prompt below into Claude Desktop with bitcoin-mcp installed. These are the highest-value workflows for first-time users.
"Should I send Bitcoin right now?"
Get a send/wait recommendation with specific sat/vB rates and estimated savings if you wait.
"Track this payment"
Paste a txid. Get confirmation count, fee rate, RBF status, and whether it'll make the next block.
"What's happening in the mempool?"
Congestion level, fee buckets, next-block minimum fee, and total pending transactions.
"Compare urgency levels"
Side-by-side: next block vs. 3 blocks vs. 6 blocks vs. 1 day. Exact sats at each level.
Why Satoshi API
If it doesn't, we don't build it.
Pair Satoshi API with bitcoin-mcp so your AI agents can check fees, verify payments, and monitor addresses without custom wrappers.
"Fees are low. Good time to send." Combines multiple fee targets with mempool state so you never overpay. In the March 12 live example, waiting about an hour cut a 140 vB transaction from 299 sats to 159 sats, a 46.8% savings.
$0/month vs $49-100/mo for competitors. Your node, your data, your API. Apache-2.0 licensed. Or use our hosted version free.
The Stack
Bitcoin Core's JSON-RPC was built for humans at a terminal. Satoshi API wraps it in a clean REST layer that AI agents and applications can consume directly - with MCP tooling, fee intelligence, typed responses, and smart caching.
Instead of calling estimatesmartfee five times and doing math, your agent gets a single endpoint with human-readable recommendations in sat/vB.
What You Get
Clear fee recommendations, easy integration, and a path from first call to production use.
Pair with bitcoin-mcp to give Claude or GPT direct access to live Bitcoin fee and mempool data through MCP tool calls.
"Send now or wait?" Not just a fee rate - actual recommendations with mempool context. Congestion scores. Block weight analysis. All in sat/vB.
Your node, your data, your API. No third party sees your queries. No vendor lock-in. No surprise pricing changes. Apache-2.0 licensed.
Every response: { data, meta }. Every error: { error }. Request IDs on everything. Consistent and predictable - ideal for agent parsing.
Reorg-aware caching, tiered rate limiting, input validation, API key auth, Docker support, and a consistent envelope from the first curl call to a real integration.
See It Work
Ask "should I send now?" and get a real answer, not a raw number.
Request
GET /api/v1/blocks/latest
Response
{
"data": {
"hash": "00000000000...",
"height": 885421,
"tx_count": 3847,
"size": 1648231
},
"meta": {
"cached": false,
"node": "local"
}
}
Built For
Start with the fee workflow, then expand into payments, mempool analysis, and self-hosted infrastructure.
Building a wallet, payment processor, or Bitcoin app? Start with fee recommendations, transaction cost estimates, and mempool context before you wire in more advanced flows.
curl https://bitcoinsapi.com/api/v1/fees/landscape
Give Claude or your own agent a safe, structured way to answer fee questions, compare urgency levels, and explain what is happening in the mempool.
# Claude Desktop via bitcoin-mcp
"bitcoin": {
"command": "bitcoin-mcp",
"env": {"SATOSHI_API_URL": "http://localhost:9332"}
}
You already run Bitcoin Core. Add a cleaner REST layer on top so you can query fees, monitor the mempool, and build dashboards without repeating RPC plumbing.
curl localhost:9332/api/v1/mempool
# Congestion level, fee buckets,
# next-block minimum fee
Use the live API and docs to explain fee timing, compare urgency levels, and show how mempool pressure changes the cost of a transaction.
curl localhost:9332/api/v1/mining
# Difficulty, hashrate, next
# retarget height, blocks until
API Surface
Fees, mempool, blocks, transactions, mining, network, prices, and real-time streams.
| Method | Endpoint | Description |
|---|---|---|
| GET | /health | Node reachability check |
| GET | /status | Full node status (sync, peers, disk) |
| GET | /blocks/latest | Latest block analysis |
| GET | /blocks/tip/height | Current chain height |
| GET | /blocks/tip/hash | Current tip block hash |
| GET | /blocks/{height_or_hash} | Block by height or hash |
| GET | /blocks/{height}/stats | Detailed block statistics |
| GET | /blocks/{hash}/txids | Transaction IDs in a block |
| GET | /blocks/{hash}/txs | Full transactions in a block |
| GET | /blocks/{hash}/header | Raw block header |
| GET | /tx/{txid} | Transaction analysis (fees, SegWit, Taproot) |
| GET | /tx/{txid}/raw | Raw decoded transaction |
| GET | /tx/{txid}/hex | Transaction as hex string |
| GET | /tx/{txid}/status | Confirmation status |
| GET | /tx/{txid}/outspends | Spending status of each output |
| GET | /utxo/{txid}/{vout} | UTXO lookup (spent/unspent) |
| POST | /decode | Decode raw transaction hex |
| POST | /broadcast | Broadcast signed transaction |
| GET | /fees | Fee estimates (all targets) |
| GET | /fees/recommended | Human-readable fee recommendation |
| GET | /fees/{target} | Fee for specific confirmation target |
| GET | /fees/landscape | Should I send now or wait? Decision engine |
| GET | /fees/estimate-tx | Transaction size and fee cost estimator |
| GET | /fees/history | Historical fee rates and cheapest hour |
| GET | /fees/mempool-blocks | Fee distribution by projected blocks |
| GET | /mempool | Mempool analysis (congestion, fee buckets) |
| GET | /mempool/info | Raw mempool info |
| GET | /mempool/tx/{txid} | Single mempool entry |
| GET | /mempool/txids | All mempool transaction IDs |
| GET | /mempool/recent | Recently added mempool entries |
| GET | /mining | Mining stats (difficulty, hashrate, retarget) |
| GET | /mining/nextblock | Next block template analysis |
| GET | /network | Network info (connections, relay fee) |
| GET | /network/forks | Chain tips and fork detection |
| GET | /network/difficulty | Current difficulty and retarget info |
| GET | /network/validate-address/{addr} | Validate a Bitcoin address |
| GET | /prices | BTC price in 6 fiat currencies Extended |
| GET | /stream/blocks | Real-time new block events (SSE) |
| GET | /stream/fees | Live fee rate updates every 30s (SSE) |
| GET | /address/{address} | Address balance and UTXO summary Extended |
| GET | /address/{address}/utxos | List unspent outputs for an address Extended |
| POST | /register | Self-serve API key registration |
| GET | /tools/exchange-compare | Compare exchange prices and fees Extended |
All endpoints prefixed with /api/v1. Interactive docs at /docs (Swagger UI) and /redoc.
Get Started
No node, no install, no signup. Start with the fee endpoints that answer "send now or wait?":
# Get current fee recommendations
curl https://bitcoinsapi.com/api/v1/fees/recommended
# Latest block analysis
curl https://bitcoinsapi.com/api/v1/blocks/latest
# Mempool congestion
curl https://bitcoinsapi.com/api/v1/mempool
# Mining stats
curl https://bitcoinsapi.com/api/v1/mining
No API key needed for GET requests. Try the interactive API playground.
Unlock 10,000 requests/day and POST access. Takes 5 seconds:
Already running Bitcoin Core? Run the full API locally: pip install satoshi-api && satoshi-api. Unlimited requests, full privacy. Self-hosting guide →
Use the Python SDK for typed access to all endpoints:
pip install satoshi-api-sdk
Pricing
The hosted API is the fastest way to try it. Self-hosting is the long-term path if you want unlimited usage and full privacy.
Need higher hosted limits or a specific integration path? Contact api@bitcoinsapi.com.
x402 is an open payment standard built on HTTP 402 by Coinbase and Cloudflare. It lets any client — human or AI agent — pay for an API call with stablecoins, no account required.
402 Payment Required with the price and wallet address
2.
Your client signs a USDC payment on Base and resends the request with an X-PAYMENT header
3.
The payment is verified by a facilitator and you get the data
# Step 1: See the 402 challenge
curl https://bitcoinsapi.com/api/v1/x402-demo
# Step 2: Complete the flow
curl -H 'X-PAYMENT: demo' https://bitcoinsapi.com/api/v1/x402-demo
Payments settle on Base (Coinbase L2). Compatible with any x402 client including the official SDK.
Comparison
| Feature | Satoshi API | Raw RPC | Hosted APIs |
|---|---|---|---|
| AI agent support (MCP) | Yes, via bitcoin-mcp | No | No |
| Fee intelligence | Send now or wait? Congestion scoring | Raw values only | Varies |
| Setup time | Minutes, not hours | Already there | Sign up + API key |
| Self-hosted | Yes | Yes | No |
| Privacy | Your node, your data | Your node | They see your queries |
| Pay-per-call (x402) | Yes, USDC on Base | No | No |
| Caching | Reorg-aware TTL | None | Varies |
| Rate limiting | Built-in, tiered | None | Yes (their limits) |
| Input validation | Before RPC call | None | Yes |
| Cost to start | $0 (hosted or self-host) | $0 | $50-500+/mo |
| Vendor lock-in | None (Apache-2.0) | None | Yes |
No signup, no install, no node. Check live fees now or plug the API into Claude via MCP.
Want to be an early tester? Open a GitHub issue or join the Discord community and tell me what is missing, confusing, or broken.