Bitcoin market intelligence that agents can buy one request at a time.
Seven exchange venues, derivatives, the mempool and up to two years of retained history behind one JSON endpoint. Every value carries its source, timestamp and freshness. Pay $0.02 per call with x402. No account, no API key, no monthly bill.
Observational data, not advice. Payments settle in USDC on Base. Paid routes return 503 until the operator enables payments.
GET /api/v1/btc/preview
What you get for two cents
One call, seven venues
Coinbase, Kraken, Binance spot and futures, OKX, Bybit and Hyperliquid, normalised into one payload with a freshness-restricted median index. You stop maintaining seven clients and seven rate limits.
Provenance in every row
Source, event time, receipt time, provenance class and licensing status travel with each observation. Stale venues are named and excluded from the index, never silently back-filled.
Depth and flow, not just last price
Top-of-book spread, ten-level depth imbalance, microprice and one-second taker buy/sell volume from the Binance perpetual stream. Funding, open interest and options IV on the derivatives route.
History you can audit
Minute, hour and day buckets recorded at ingest time with sample counts and gap counters. Retained fourteen days granular, ninety days by minute and two years by hour, counted from when this deployment started recording. Up to five thousand rows per call.
How a paid request works
- Your agent calls a paid route.
GET /api/v1/btc/market - The server answers 402 with x402 payment requirements.
HTTP/1.1 402 · PAYMENT-REQUIRED: {scheme: exact, price: $0.02, USDC, Base} - An x402 client signs the payment and retries the same request.
GET /api/v1/btc/market · PAYMENT-SIGNATURE: … - You receive the data and a settlement receipt. The server records the on-chain transaction hash.
HTTP/1.1 200 · PAYMENT-RESPONSE: {success: true, transaction: 0x…}
No pre-funding, no API key to leak, no invoice. The charge is the price shown in the catalog at the moment of the call. Nothing is charged for a 402, a 429 or a 5xx.
Catalog and prices
Prices are read live from /api/discovery, the same document the payment middleware uses. A route is marked unavailable when its data sources are not configured on this deployment, so you are never charged for an empty answer.
| Route | What it returns | Price | Status |
|---|---|---|---|
| Loading catalog | |||
Three ways to connect
# Free, no payment curl -s https://agentreeve.com/api/v1/btc/preview | jq # Paid: shows the 402 challenge when payments are enabled curl -si https://agentreeve.com/api/v1/btc/market | head -20
# pip install "x402[httpx,evm]"
import httpx
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from eth_account import Account
signer = EthAccountSigner(Account.from_key(PRIVATE_KEY)) # wallet holding USDC on Base
async with x402HttpxClient(signer) as client:
r = await client.get("https://agentreeve.com/api/v1/btc/market")
market = r.json()
print(market["spot_index_usd"], market["quality"]["source_coverage"])
// Add to your MCP client configuration (Streamable HTTP)
{
"mcpServers": {
"agentreeve": { "url": "https://agentreeve.com/mcp" }
}
}
// Tools: btc_free_preview, list_paid_endpoints,
// btc_market_endpoint, btc_snapshot_endpoint, btc_history_endpoint
# Agent card
curl -s https://agentreeve.com/.well-known/agent-card.json | jq
# Ask the discovery agent (JSON-RPC)
curl -s https://agentreeve.com/a2a -H 'content-type: application/json' -H 'A2A-Version: 1.0' -d '{
"jsonrpc":"2.0","id":"1","method":"SendMessage",
"params":{"message":{"messageId":"m1","role":"ROLE_USER",
"parts":[{"text":"What BTC data can I buy and at what price?"}]}}}'
What this is not
- Not a trading signal, forecast or recommendation. Indices are medians of observed venue prices; nothing is modelled.
- Not tick-level L2. Binance depth is a sampled top-20 book at one second; other venues are REST snapshots at 10–20 s.
- Not exchange-wide whale coverage. The whales route reports an operator-configured Hyperliquid watch-list and says so in the payload.
- Not institutional options data. Deribit public open interest is published with a delay and is labelled as such.