AI agents pay Crypto Data API in USDC over the x402 protocol — gasless on Base via the Coinbase Developer Platform facilitator, with Ethereum and Solana also supported. Three rails are open to any wallet, no account required: pay per request to try one endpoint once, pay per time for a 1–hour, 1–day or 7–day pass, or pay per resource for a single archived data file. Card and USDC subscriptions on /pricing are unchanged and remain the best value for anything polled regularly — the same numbers are available machine–readable at GET /api/v1/pricing.
monthly
Pro
monthly
$39
monthly_plus
Pro Plus
monthly
$129
annual
Pro
annual
$348
annual_plus
Pro Plus
annual
$1,188
These four plans are unchanged by anything on this page — buy them on /pricing by card or USDC, or over x402 with POST /api/v1/payments/agent-subscribe and {"plan": "monthly"} (or monthly_plus, annual, annual_plus).
cdk_live_ key, Pro or Pro Plus, for a fixed window. Every existing rate limit and tier gate applies normally.whales
GET /api/v1/quant/whales
Classified Hyperliquid whale positioning: net bias, total net USD, long/short ratio across every account >= $100k, with per-coin gross/long/short/net.
$0.03
market
GET /api/v1/quant/market
HMM regime nowcast (6 states) with directional, volatility, funding and liquidation-risk probabilities for the next 24h.
$0.015
regimes_current
GET /api/v1/regimes/current
The committed long-horizon cycle regime (14-basket framework) with rationale.
$0.01
liquidations
GET /api/v1/market-intelligence/liquidations
24h long/short liquidation totals per symbol, merged across venues, full universe.
$0.01
event_calendar
GET /api/v1/event/calendar
Dated crypto catalysts (unlocks, mints, listings, macro) with a long/short bias and 0-1 magnitude each.
$0.008
etf_flows
GET /api/v1/market-intelligence/etf/{asset}/flows
Issuer-aggregated daily spot ETF net flows for btc, eth or sol.
$0.01
Each row 402s a keyless GET with the exact USDC amount, network and payee. Settle with a signed x-payment header and the retry returns the data in one more round trip — see “How to pay” below. Calling with a normal X-API-Key works exactly as before; nothing changes for subscribers.
pass_1h
Pro
1 hour
$1.5
pass_1d
Pro
1 day
$5
pass_7d
Pro
7 days
$15
pass_1h_plus
Pro Plus
1 hour
$4
pass_1d_plus
Pro Plus
1 day
$15
pass_7d_plus
Pro Plus
7 days
$45
Buy one with POST /api/v1/payments/agent-subscribe and a body of {"plan": "<pass>"}, using the id from the table above (e.g. pass_1d_plus). The response returns a cdk_live_ key once — store it, it is not shown again. A pass stacked on top of an active subscription upgrades your tier for its duration and falls back automatically when it expires.
klines
one exchange/symbol/day Parquet
exchange symbol date
$0.25
funding
one exchange/symbol/day Parquet
exchange symbol date
$0.25
liquidations
one symbol/day Parquet
symbol date
$0.25
hl_liquidations
one day, all Hyperliquid coins
date
$1
daily
one consolidated day bundle (klines or funding, one exchange)
date bundle exchange
$2
snapshots
one snapshot type for one day (JSON)
snapshot_type date
$0.25
klines_deep
one exchange/interval/symbol/month Parquet
exchange interval symbol month
$3
funding_deep
one exchange/symbol/month Parquet
exchange symbol month
$3
Endpoint: GET /api/v1/backtesting/archives/purchase?data_type=<type>, plus the params listed for that row as additional query params. Settlement returns a short-lived download URL for exactly that object — a missing file is rejected before it's ever quoted a price. Pro Plus keys download archives free via /api/v1/backtesting/archives/download; /purchase is the keyless x402 path for everyone else.
curl -i https://cryptodataapi.com/api/v1/quant/whales # HTTP/1.1 402 Payment Required # { "accepts": [{ "amount": "0.03", "network": "eip155:8453", "payTo": "0x..." }], ... }
curl -i https://cryptodataapi.com/api/v1/quant/whales \ -H "x-payment: <signed-payment-header>" # HTTP/1.1 200 OK # { "summary": { "accounts_tracked": 3570, "net_bias": "short", ... } }
The x-payment header is a signed EIP-3009 transferWithAuthorization payload, not something you build by hand. The x402 client libraries (npm and PyPI both publish a package named x402) read the 402 body and produce that header for you from a wallet's private key.
x-payment header. Passes and subscriptions do return a cdk_live_ key, once, because they grant standing access rather than a single response.Cache-Control: private, no-store, so it is never served from the shared response cache and never reused for a different payer.GET /api/v1/pricing returns the exact same table as JSON, no key required. This page and that endpoint render from the same source, so they can never disagree.