Running your own Bitcoin API eliminates third-party dependencies, preserves privacy, and removes rate limits. Satoshi API turns any Bitcoin Core node into a full REST API server with one command.
Every query to a hosted API leaks information about what you're building and who you're serving. Self-hosting fixes that.
No one sees your queries. Address lookups, transaction checks, fee estimates, UTXO scans -- all stay between your app and your node. No IP logging by a third party, no usage analytics you didn't consent to.
Your hardware, your throughput. Burst 10,000 requests per second during a fee spike? No 429 errors, no throttling, no waiting for quota resets. You decide how hard to push your own machine.
Apache-2.0 licensed, no account needed. Your code calls localhost -- if you ever swap to a different tool, change one URL. No proprietary SDKs, no API key migrations, no contract negotiations.
$0 forever. No tiered pricing that changes when you scale. No invoices that spike because your app went viral. The only cost is the hardware you already run your node on.
Your infrastructure, your availability. No dependency on someone else's servers, their maintenance windows, their outages. If your node is up, your API is up.
The Bitcoin ethos is "don't trust, verify." Running a full node embodies that. A self-hosted API extends the same principle to your application layer -- your app verifies data from your own node, not from a company that could censor, throttle, or shut down.
Satoshi API sits between your applications and Bitcoin Core, translating raw RPC into clean REST.
Satoshi API adds analyzed responses (fee recommendations in sat/vB, mempool congestion scores), reorg-aware smart caching (deep blocks cached longer, tip blocks refresh frequently), and tiered rate limiting that protects your node from your own applications during traffic spikes.
From node to API in three steps.
Bitcoin Core running with server=1 in bitcoin.conf. Python 3.10+ installed. txindex=1 recommended for full transaction lookups.
pip install satoshi-api
# Set your Bitcoin Core RPC credentials
export BITCOIN_RPC_USER=your_user
export BITCOIN_RPC_PASSWORD=your_password
# Start the API
satoshi-api
INFO Satoshi API running at http://localhost:9332
INFO Interactive docs at http://localhost:9332/docs
That's it. 75+ REST endpoints are now available on your machine. Open http://localhost:9332/docs for the interactive Swagger UI playground.
Self-hosted doesn't mean local-only. Choose the deployment model that fits your use case.
pip install satoshi-api and run. Best for development, testing, and personal use. API available at localhost:9332.
docker compose up -d for containerized deployment. Includes health checks and auto-restart. Same image runs on any Docker host.
Expose your self-hosted API publicly with DDoS protection, SSL termination, and a custom domain. No port forwarding, no static IP needed.
Put nginx or Caddy in front for SSL, custom domains, and additional access controls. Standard ASGI app, works with any reverse proxy.
Satoshi API is not the only option. Here's how the self-hostable tools compare.
| Capability | Satoshi API | Blockstream Esplora | Bitcoin Core RPC |
|---|---|---|---|
| Interface | REST API | REST API | JSON-RPC only |
| Primary focus | Developer API | Block explorer | Node control |
| Analyzed data | Fee recs, congestion scores | Raw data | Raw data |
| Smart caching | Reorg-aware TTL | Electrs index | None |
| Rate limiting | Built-in, tiered | None | None |
| Address lookups | Roadmap | Yes | Wallet only |
| AI agent support | MCP ready | No | No |
| Install complexity | pip install | Docker + Electrs | Already running |
| License | Apache-2.0 | MIT | MIT |
| Language | Python (FastAPI) | Rust | C++ |
Esplora is the stronger choice if you need address-based lookups and are willing to run Electrs for indexing. Bitcoin Core RPC is always there but provides no REST layer, no caching, and no input validation. Satoshi API fills the gap for developers who want a clean REST interface with analyzed data and minimal setup.
Anyone who already runs a Bitcoin node and wants a proper API on top of it.
You run a full node already. You want programmatic access to fees, mempool state, and block data without relying on someone else's API. Install, point, query.
Building a wallet or payment processor? Get fee estimates, broadcast transactions, and validate addresses from your own infrastructure. No third-party dependency in your critical path.
Every query to a hosted API correlates your IP with the addresses and transactions you care about. Self-hosted means zero data leakage to third parties.
Give Claude, GPT, or your custom agent direct access to Bitcoin data via MCP tool calls. Your agent queries your node -- no API keys, no rate limits, no middleman.
One pip install. Zero third-party dependencies. Full sovereignty over your Bitcoin data.