Mempool API: Get Bitcoin address
Returns a Bitcoin address's confirmed and pending balances, lifetime received and sent totals, and up to 50 recent transactions. USD balance uses the latest reported Bitcoin price.
Unofficial. Not affiliated with or endorsed by Mempool.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Address, required
address Bitcoin address starting with 1, 3 or bc1, for example 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa.
3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
- Max Transactions optional
max_transactions Maximum recent transactions to return, for example 10. Defaults to 10; maximum 50.
50
Whole number from 1 to 50. Default
10.
Input as JSON
{ "address": "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy", "max_transactions": 50}Output
{ "address": "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy", "total_sent_btc": 46.09383956, "transaction_count": 753, "total_received_btc": 46.09383956, "recent_transactions": [ { "link": "https://mempool.space/tx/5037cda8ea28ca7e740ec84f735496671439f9428666f3f74339837c69188353" , "fee_btc": 0.0000039, "confirmed": "yes", "date_time": "2026-10-22T07:57:28+00:00", "block_height": 972586, "net_change_btc": -0.000006, "transaction_id": "5037cda8ea28ca7e740ec84f735496671439f9428666f3f74339837c69188353" }, { "link": "https://mempool.space/tx/157cd0b26b304abbc4e5990c65e0179b4803018870f6db2998f5b14ac115adef" , "fee_btc": 0.00000308, "confirmed": "yes", "date_time": "2026-10-22T07:57:28+00:00", "block_height": 972586, "net_change_btc": 0.000006, "transaction_id": "157cd0b26b304abbc4e5990c65e0179b4803018870f6db2998f5b14ac115adef" }, { "link": "https://mempool.space/tx/0a0a5eca381bdd02a4b8abe0bba91c3a33e20cb9d5aa03a61646cc62601074db" , "fee_btc": 0.00005208, "confirmed": "yes", "date_time": "2026-10-06T23:50:15+00:00", "block_height": 970254, "net_change_btc": -0.00005555, "transaction_id": "0a0a5eca381bdd02a4b8abe0bba91c3a33e20cb9d5aa03a61646cc62601074db" } ], "confirmed_balance_btc": 0, "confirmed_balance_usd": 0, "unconfirmed_balance_btc": 0}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"mempool.space/get_bitcoin_address","input":{"address":"3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy","max_transactions":50}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "mempool.space/get_bitcoin_address" , "input": { "address": "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy", "max_transactions": 50 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "mempool.space/get_bitcoin_address" , "input": { "address": "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy", "max_transactions": 50 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run mempool.space/get_bitcoin_address# with {"address":"3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy","max_transactions":50}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "address" ], "properties": { "address": { "type": "string", "description": "Bitcoin address starting with 1, 3 or bc1, for example 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa." }, "max_transactions": { "type": "integer", "default": 10, "maximum": 50, "minimum": 1, "description": "Maximum recent transactions to return, for example 10. Defaults to 10; maximum 50." } }}Output schema
{ "type": "object", "required": [ "address", "confirmed_balance_btc", "confirmed_balance_usd", "unconfirmed_balance_btc", "total_received_btc", "total_sent_btc", "transaction_count", "recent_transactions" ], "properties": { "address": { "type": "string" }, "total_sent_btc": { "type": "number" }, "transaction_count": { "type": "integer" }, "total_received_btc": { "type": "number" }, "recent_transactions": { "type": "array", "items": { "type": "object", "required": [ "date_time", "net_change_btc", "fee_btc", "confirmed", "link", "transaction_id", "block_height" ], "properties": { "link": { "type": "string", "description": "Transaction page on mempool.space." }, "fee_btc": { "type": "number", "description": "Whole transaction network fee in BTC, not necessarily paid by this address." }, "confirmed": { "enum": [ "yes", "no" ], "type": "string", "description": "Whether this transaction is confirmed." }, "date_time": { "type": [ "string", "null" ], "format": "date-time", "description": "Confirmation date and time in UTC, or null when unconfirmed." }, "block_height": { "type": [ "integer", "null" ], "description": "Block height, or null when unconfirmed." }, "net_change_btc": { "type": "number", "description": "Change in this address's balance in BTC, negative for a net send." }, "transaction_id": { "type": "string", "description": "Transaction ID." } } } }, "confirmed_balance_btc": { "type": "number" }, "confirmed_balance_usd": { "type": "number" }, "unconfirmed_balance_btc": { "type": "number" } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
mempool.space/get_bitcoin_address- Returns
- address, confirmed and unconfirmed balances (BTC, confirmed USD), total received and sent, transaction count, recent transactions
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method mempool.space/get_bitcoin_address with the inputs above.
Ask your agent
- How much bitcoin is sitting in the address bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh, both confirmed and pending, and what is that worth in USD right now?
- Show me the last 25 transactions for the Bitcoin address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, plus how much it has received and sent in total.
- On mempool.space, check the balance and transaction count for address 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy, including unconfirmed amounts.
- Pull up the lifetime totals received and sent, and the 40 most recent transactions, for bc1q9h4l2n7dsk3xwz8e0pqmr6ytf5a2v0cjs4ndde.
- What's the current confirmed and unconfirmed balance in BTC and USD for 1BoatSLRHtKNngkdXEeobR76b53LETtpyT, and how many transactions has it made?
See more
All Mempool methodsGets current Bitcoin fee-rate recommendations, the estimated USD cost of a 140-vbyte transaction at each rate, and the Bitcoin price in USD. Confirmation times are estimates, not guarantees.
mempool.space/get_bitcoin_feesLooks up an Ethereum wallet on Etherscan by address or ENS name: its ETH balance and USD value, the largest displayed ERC-20 holdings, and the newest confirmed transactions. Pending transactions are excluded; unpriced holdings have no USD value.
etherscan.io/get_walletGets a Binance spot pair's latest price and rolling 24-hour trading statistics from a coin name or symbol. Only currently trading pairs are available.
binance.com/get_coin_priceFinds map coordinates and address details for an address or place on OpenStreetMap, optionally restricted to a country.
openstreetmap.org/get_coordinatesFinds the FEMA flood zone, risk designation, base flood elevation, flood map panel and community for a US street address, using Census address coordinates and FEMA's National Flood Hazard Layer.
fema.gov/get_flood_zoneGets a cryptocurrency's price, changes, supply, market cap, volume and all-time high in a chosen currency. If a name or symbol is shared, returns the coin with the largest market cap.
coinmarketcap.com/get_coin_priceGets the Walk, Transit and Bike Scores and neighborhood details for a street address. Unpublished scores are null; unresolved or mismatched addresses are not found.
walkscore.com/get_walk_scoreMatches a US street address and returns its city or place, county, state, ZIP code, census tract, congressional and state legislative districts, coordinates and FIPS codes. Districts follow the Census Geocoder's current geography vintage and may differ from sitting representation.
census.gov/get_address_details