{"components":{"securitySchemes":{"bearer":{"description":"the cbk_… key returned by POST /v1/accounts","scheme":"bearer","type":"http"}}},"info":{"description":"Indexed Bitcoin chain data. See /AGENTS.md for the plain-text contract.","license":{"name":"proprietary"},"title":"clearblock","version":"1.0.0"},"openapi":"3.1.0","paths":{"/api/address/{address}":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"chain_stats: tx_count, funded_txo_sum, spent_txo_sum"}},"summary":"address lifetime figures","x-auth":"none"}},"/api/address/{address}/txs":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":25,"maximum":100,"type":"integer"}}],"responses":{"200":{"description":"txs, more, next_cursor"}},"summary":"address transactions, newest first","x-auth":"none"}},"/api/address/{address}/txs/chain":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"txs, more, next_cursor"}},"summary":"confirmed transactions, newest first","x-auth":"none"}},"/api/address/{address}/txs/chain/{last_seen_txid}":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}},{"in":"path","name":"last_seen_txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"txs, more, next_cursor"},"400":{"description":"cursor not found within 20,000 entries"}},"summary":"confirmed transactions after a txid","x-auth":"none"}},"/api/address/{address}/txs/mempool":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"txs: []"}},"summary":"always empty: this service indexes confirmed data only","x-auth":"none"}},"/api/address/{address}/utxo":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"utxos, coin_count, truncated"}},"summary":"unspent outputs from the coin index","x-auth":"none"}},"/api/block-height/{height}":{"get":{"parameters":[{"in":"path","name":"height","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"hash"}},"summary":"block hash at a height, plain text","x-auth":"none"}},"/api/block/{hash}":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"block"},"404":{"description":"unknown block"}},"summary":"block details","x-auth":"none"}},"/api/block/{hash}/header":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"header hex"}},"summary":"80-byte header, hex","x-auth":"none"}},"/api/block/{hash}/raw":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"block hex"}},"summary":"serialized block, hex","x-auth":"none"}},"/api/block/{hash}/status":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"in_best_chain, height, next_best"}},"summary":"is this block the chain's block at its height","x-auth":"none"}},"/api/block/{hash}/txid/{index}":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}},{"in":"path","name":"index","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"txid"},"404":{"description":"index out of range"}},"summary":"one txid of a block, plain text","x-auth":"none"}},"/api/block/{hash}/txids":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"array of txids"}},"summary":"every txid in block order","x-auth":"none"}},"/api/block/{hash}/txs":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":25,"maximum":100,"type":"integer"}}],"responses":{"200":{"description":"txs, total, start_index, returned"}},"summary":"transaction bodies, paged","x-auth":"none"}},"/api/block/{hash}/txs/{start_index}":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}},{"in":"path","name":"start_index","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"txs, total, start_index, returned"}},"summary":"transaction bodies from an index","x-auth":"none"}},"/api/blocks":{"get":{"responses":{"200":{"description":"array of block summaries"}},"summary":"the ten blocks ending at the tip","x-auth":"none"}},"/api/blocks/tip/hash":{"get":{"responses":{"200":{"description":"hash"}},"summary":"tip hash, plain text","x-auth":"none"}},"/api/blocks/tip/height":{"get":{"responses":{"200":{"description":"height"}},"summary":"tip height, plain integer","x-auth":"none"}},"/api/blocks/{start_height}":{"get":{"parameters":[{"in":"path","name":"start_height","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"array of block summaries"}},"summary":"the ten blocks ending at that height","x-auth":"none"}},"/api/mempool":{"get":{"responses":{"200":{"description":"count, vsize, total_fee and fee_histogram ([fee_rate, vsize] bins, highest rate first) from the mempool index; until its first snapshot, the node's own summary with vsize null and fee_histogram empty"}},"summary":"the mempool summary","x-auth":"none"}},"/api/mempool/recent":{"get":{"responses":{"200":{"description":"txid, fee, vsize, value; newest first"},"503":{"description":"the mempool index has no snapshot yet"}},"summary":"the 10 newest pending transactions","x-auth":"none"}},"/api/mempool/txids":{"get":{"responses":{"200":{"description":"array of txids; X-Mempool-Updated is the snapshot time"},"503":{"description":"the mempool index has no snapshot yet"}},"summary":"every pending txid","x-auth":"none"}},"/api/tx/{txid}":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"transaction"},"404":{"description":"unknown transaction"}},"summary":"one transaction, verbose","x-auth":"none"}},"/api/tx/{txid}/hex":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"hex"}},"summary":"serialized transaction, hex","x-auth":"none"}},"/api/tx/{txid}/merkle-proof":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"block_height, merkle, pos"}},"summary":"merkle branch to the block root","x-auth":"none"}},"/api/tx/{txid}/merkleblock-proof":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"serialized merkleblock"}},"summary":"BIP37 merkleblock for this transaction, hex","x-auth":"none"}},"/api/tx/{txid}/outspend/{vout}":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}},{"in":"path","name":"vout","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"spent: bool, plus the spender when known (this index keeps none, so null)"}},"summary":"whether one output is spent","x-auth":"none"}},"/api/tx/{txid}/outspends":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"array, one per output"}},"summary":"spend status of every output","x-auth":"none"}},"/api/tx/{txid}/raw":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"raw transaction bytes"}},"summary":"the same transaction as bytes, application/octet-stream","x-auth":"none"}},"/api/tx/{txid}/status":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"confirmed, block_height, block_hash, block_time"}},"summary":"confirmation state of one transaction","x-auth":"none"}},"/api/v1/block/{hash}":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"block plus extras (fee and coinbase facts; template-derived fields are null)"}},"summary":"block with stale flag and extras","x-auth":"none"}},"/api/v1/block/{hash}/audit-summary":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"template, missingTxs, addedTxs, unseenTxs, freshTxs, prioritizedTxs, fullrbfTxs, matchRate, expectedFees, expectedWeight"},"404":{"description":"this block was not audited"}},"summary":"the template expected for a block against the block mined","x-auth":"none"}},"/api/v1/blocks":{"get":{"responses":{"200":{"description":"array of the v1 block shape"}},"summary":"fifteen recent blocks with extras","x-auth":"none"}},"/api/v1/blocks-bulk/{min_height}":{"get":{"parameters":[{"in":"path","name":"min_height","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"array of block summaries"}},"summary":"block summaries from a height","x-auth":"none"}},"/api/v1/blocks-bulk/{min_height}/{max_height}":{"get":{"parameters":[{"in":"path","name":"min_height","required":true,"schema":{"type":"integer"}},{"in":"path","name":"max_height","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"array of block summaries"}},"summary":"block summaries for a range, capped at 10","x-auth":"none"}},"/api/v1/cpfp/{txid}":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ancestors, descendants, effectiveFeePerVsize, cluster (txs, chunks, chunkIndex) when it has relatives; pending txs add fee, sigops, adjustedVsize, bestDescendant; {\"ancestors\": []} when there is nothing to report"}},"summary":"a transaction's unconfirmed relatives and effective fee rate","x-auth":"none"}},"/api/v1/fees/mempool-blocks":{"get":{"responses":{"200":{"description":"blockSize, blockVSize, nTx, totalFees, medianFee, feeRange (7 percentiles); the last block holds everything left"},"503":{"description":"the mempool index has no snapshot yet"}},"summary":"the mempool packed into up to 8 projected blocks","x-auth":"none"}},"/api/v1/fees/precise":{"get":{"responses":{"200":{"description":"fastestFee, halfHourFee, hourFee, economyFee, minimumFee"}},"summary":"the same estimates, unrounded (ours are never rounded)","x-auth":"none"}},"/api/v1/fees/recommended":{"get":{"responses":{"200":{"description":"fastestFee, halfHourFee, hourFee, economyFee, minimumFee"}},"summary":"one fee estimate per speed tier","x-auth":"none"}},"/api/v1/fullrbf/replacements":{"get":{"responses":{"200":{"description":"same shape as /api/v1/replacements"},"503":{"description":"the mempool index has no snapshot yet"}},"summary":"replacement trees containing a full-RBF replacement","x-auth":"none"}},"/api/v1/mining/blocks/audit/score/{hash}":{"get":{"parameters":[{"in":"path","name":"hash","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"hash, matchRate, expectedFees, expectedWeight"},"404":{"description":"this block was not audited"}},"summary":"one block's audit score","x-auth":"none"}},"/api/v1/mining/blocks/audit/scores":{"get":{"responses":{"200":{"description":"array of hash, matchRate, expectedFees, expectedWeight; newest first"}},"summary":"the 16 newest audit scores","x-auth":"none"}},"/api/v1/mining/blocks/audit/scores/{height}":{"get":{"parameters":[{"in":"path","name":"height","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"array, newest first"}},"summary":"16 audit scores at or below a height","x-auth":"none"}},"/api/v1/mining/blocks/timestamp/{timestamp}":{"get":{"parameters":[{"in":"path","name":"timestamp","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"height, hash, timestamp"}},"summary":"block closest to a unix timestamp","x-auth":"none"}},"/api/v1/replacements":{"get":{"responses":{"200":{"description":"up to 25 trees: tx, time, fullRbf, mined, replaces (nested, each with interval)"},"503":{"description":"the mempool index has no snapshot yet"}},"summary":"the newest replacement trees observed","x-auth":"none"}},"/api/v1/transaction-times":{"get":{"parameters":[{"in":"query","name":"txId[]","required":true,"schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"description":"array of unix seconds, 0 for a txid not in this node's pool"},"503":{"description":"the mempool index has no snapshot yet"}},"summary":"entry time per txid, 0 when it is not in the pool","x-auth":"none"}},"/api/v1/validate-address/{address}":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"isvalid, scriptPubKey, isscript, iswitness"}},"summary":"is this a valid mainnet address","x-auth":"none"}},"/health":{"get":{"responses":{"200":{"description":"ok or degraded"}},"summary":"liveness and chain tip"}},"/v1":{"get":{"responses":{"200":{"description":"descriptor"}},"summary":"service descriptor"}},"/v1/accounts":{"post":{"parameters":[{"description":"repeat a request without creating a second account; a repeat answers 409 with the existing account_id","in":"header","name":"Idempotency-Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"contact":{"description":"optional, receipts only","type":"string"}},"type":"object"}}},"required":false},"responses":{"201":{"description":"account and key created"},"409":{"description":"this Idempotency-Key already created an account"}},"summary":"create an account; returns the first key exactly once"}},"/v1/accounts/keys":{"post":{"responses":{"201":{"description":"key created, shown once"}},"security":[{"bearer":[]}],"summary":"create another key"}},"/v1/accounts/me":{"get":{"responses":{"200":{"description":"account"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"your account, plan, keys and usage"}},"/v1/address/{address}/analyze":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"summary"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"address summary: balance, totals, counts, first and last seen"}},"/v1/address/{address}/counterparties":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"limit","schema":{"default":25,"maximum":100,"type":"integer"}}],"responses":{"200":{"description":"counterparties with amounts and tx counts; `complete` says whether the index has covered the full history"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"counterparties over the address's whole history"}},"/v1/address/{address}/txs":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"limit","schema":{"default":25,"maximum":100,"type":"integer"}}],"responses":{"200":{"description":"paged history; says whether more exists"},"401":{"description":"no or unknown key"},"429":{"description":"burst or daily quota; read Retry-After"}},"security":[{"bearer":[]}],"summary":"address transaction history, newest first, paged"}},"/v1/address/{address}/utxos":{"get":{"parameters":[{"in":"path","name":"address","required":true,"schema":{"type":"string"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"limit","schema":{"default":25,"maximum":100,"type":"integer"}}],"responses":{"200":{"description":"paged coins"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"unspent outputs, paged"}},"/v1/block/{height}/analyze":{"get":{"parameters":[{"in":"path","name":"height","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"block analysis"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"one block, decoded"}},"/v1/block/{height}/txs":{"get":{"parameters":[{"in":"path","name":"height","required":true,"schema":{"type":"integer"}},{"in":"query","name":"page","schema":{"type":"integer"}},{"in":"query","name":"limit","schema":{"default":25,"maximum":100,"type":"integer"}}],"responses":{"200":{"description":"paged transactions; says whether more exist"},"401":{"description":"no or unknown key"},"429":{"description":"burst or daily quota; read Retry-After"}},"security":[{"bearer":[]}],"summary":"one block's transactions, paged, each with entity-attributed from/to"}},"/v1/block/{id}/locate":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"height, hash, in_best_chain, tip_height"},"400":{"description":"neither a height nor a block hash"},"404":{"description":"no such block"}},"security":[{"bearer":[]}],"summary":"a height or a block hash to its height and hash, whether it is on the best chain, and the tip"}},"/v1/blocks/tip/hash":{"get":{"responses":{"200":{"description":"height and hash"},"503":{"description":"no block seen yet"}},"security":[{"bearer":[]}],"summary":"the tip height and hash"}},"/v1/blocks/tip/height":{"get":{"responses":{"200":{"description":"height"},"503":{"description":"no block seen yet"}},"security":[{"bearer":[]}],"summary":"the tip height"}},"/v1/chain/info":{"get":{"responses":{"200":{"description":"chain info"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"chain tip and sync state"}},"/v1/fees":{"get":{"responses":{"200":{"description":"estimates; 0 means no estimate for that target"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"fee estimates in sat/vB for 1,2,3,6,12,24,144 blocks"}},"/v1/fees/mempool-blocks":{"get":{"responses":{"200":{"description":"blockSize, blockVSize, nTx, totalFees, medianFee, feeRange"},"503":{"description":"the index has no snapshot yet"}},"security":[{"bearer":[]}],"summary":"the mempool packed into up to 8 projected blocks"}},"/v1/fees/recommended":{"get":{"responses":{"200":{"description":"fees in sat/vB"}},"security":[{"bearer":[]}],"summary":"fastest, half_hour, hour, economy and minimum fees"}},"/v1/fullrbf/replacements":{"get":{"responses":{"200":{"description":"same shape as /v1/replacements"},"503":{"description":"the index has no snapshot yet"}},"security":[{"bearer":[]}],"summary":"replacement trees containing a full-RBF replacement"}},"/v1/keys/{id}/disable":{"post":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"disabled"},"404":{"description":"not your key"}},"security":[{"bearer":[]}],"summary":"disable one of your keys"}},"/v1/latest":{"get":{"responses":{"200":{"description":"block"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"the newest block"}},"/v1/mempool":{"get":{"responses":{"200":{"description":"mempool summary"}},"security":[{"bearer":[]}],"summary":"pending count, bytes, total fee and minimum relay fee"}},"/v1/mempool/index":{"get":{"responses":{"200":{"description":"index health and summary"},"503":{"description":"the index has no snapshot yet"}},"security":[{"bearer":[]}],"summary":"the mempool index itself: tracked txs, vsize, total fee, projected blocks, snapshot age and tip"}},"/v1/mempool/recent":{"get":{"responses":{"200":{"description":"txid, fee, vsize, value; newest first"},"503":{"description":"the index has no snapshot yet"}},"security":[{"bearer":[]}],"summary":"the 10 newest pending transactions from the index"}},"/v1/mempool/txids":{"get":{"responses":{"200":{"description":"array of txids"},"503":{"description":"the index has no snapshot yet"}},"security":[{"bearer":[]}],"summary":"every pending txid from the index"}},"/v1/pricing":{"get":{"responses":{"200":{"description":"tiers"}},"summary":"plans and limits"}},"/v1/replacements":{"get":{"responses":{"200":{"description":"up to 25 trees"},"503":{"description":"the index has no snapshot yet"}},"security":[{"bearer":[]}],"summary":"the newest replacement trees observed"}},"/v1/tx/{txid}/analyze":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"transaction"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"one transaction, decoded"}},"/v1/tx/{txid}/change":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"change analysis"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"which outputs look like change, and why"}},"/v1/tx/{txid}/content":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"content"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"embedded data: inscriptions, OP_RETURN"}},"/v1/tx/{txid}/facts":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"facts"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"the transaction's key facts"}},"/v1/tx/{txid}/graph_data":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"graph"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"the graph form the UI draws"}},"/v1/tx/{txid}/is_inscription":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"boolean-ish answer"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"cheap inscription test"}},"/v1/tx/{txid}/related":{"get":{"parameters":[{"in":"path","name":"txid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"related transactions"},"401":{"description":"no or unknown key"}},"security":[{"bearer":[]}],"summary":"transactions related to this one"}},"/v1/usage":{"get":{"responses":{"200":{"description":"usage"}},"security":[{"bearer":[]}],"summary":"today's usage and limits"}},"/v1/utxo-index/stats":{"get":{"responses":{"200":{"description":"stats"}},"security":[{"bearer":[]}],"summary":"coverage of the coin index"}}},"servers":[{"url":"/"}]}