Self-Hosted Bitcoin API

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.

Why self-host your Bitcoin API?

Every query to a hosted API leaks information about what you're building and who you're serving. Self-hosting fixes that.

Privacy

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.

No rate limits

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.

No vendor lock-in

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.

No surprise pricing

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

Uptime on your terms

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.

Sovereignty

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.

How it works

Satoshi API sits between your applications and Bitcoin Core, translating raw RPC into clean REST.

Your Application
Web app, wallet, bot, AI agent
Satoshi API
localhost:9332 -- REST, caching, rate limiting, analysis
Bitcoin Core RPC
localhost:8332 -- JSON-RPC interface
Blockchain
900,000+ blocks of verified data

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.

Quick start

From node to API in three steps.

1 Prerequisites

Bitcoin Core running with server=1 in bitcoin.conf. Python 3.10+ installed. txindex=1 recommended for full transaction lookups.

2 Install

pip install satoshi-api

3 Run

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

Deployment options

Self-hosted doesn't mean local-only. Choose the deployment model that fits your use case.

Local development

pip install satoshi-api and run. Best for development, testing, and personal use. API available at localhost:9332.

Docker

docker compose up -d for containerized deployment. Includes health checks and auto-restart. Same image runs on any Docker host.

Cloudflare Tunnel

Expose your self-hosted API publicly with DDoS protection, SSL termination, and a custom domain. No port forwarding, no static IP needed.

Reverse proxy

Put nginx or Caddy in front for SSL, custom domains, and additional access controls. Standard ASGI app, works with any reverse proxy.

Self-hosted alternatives

Satoshi API is not the only option. Here's how the self-hostable tools compare.

CapabilitySatoshi APIBlockstream EsploraBitcoin Core RPC
InterfaceREST APIREST APIJSON-RPC only
Primary focusDeveloper APIBlock explorerNode control
Analyzed dataFee recs, congestion scoresRaw dataRaw data
Smart cachingReorg-aware TTLElectrs indexNone
Rate limitingBuilt-in, tieredNoneNone
Address lookupsRoadmapYesWallet only
AI agent supportMCP readyNoNo
Install complexitypip installDocker + ElectrsAlready running
LicenseApache-2.0MITMIT
LanguagePython (FastAPI)RustC++

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.

Who is this for?

Anyone who already runs a Bitcoin node and wants a proper API on top of it.

Node operators

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.

Wallet developers

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.

Privacy advocates

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.

AI agent builders

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.

Your node. Your API. Your rules.

One pip install. Zero third-party dependencies. Full sovereignty over your Bitcoin data.