We're building the most comprehensive crypto data API we can, and it's still growing — there's always a coin, a field or an endpoint we haven't got to yet.
Please tell us about any data you think Crypto Data API should nail but doesn't. We're data nerds who love to geek out about market data, trading bots, AI agents, or how to make your trading stack work in general. Prefer a form? Send feedback.
— Sam and the CDA team
Join us on DiscordAgents pay in USDC over the x402 protocol — gasless on Base via the Coinbase Developer Platform facilitator, with Ethereum and Solana also supported. Three rails, open to any wallet, no account required.
A real cdk_live_ key, Pro or Pro Plus, for a fixed window. Every existing rate limit and tier gate applies normally.
Buy one with POST /api/v1/payments/agent-subscribe and a body of {"plan": "<pass>"}. The response returns a cdk_live_ key once — store it, it is not shown again. A pass stacked on an active subscription upgrades your tier for its duration, then falls back automatically.
One response from one endpoint. Keyless GET → 402 → signed retry. Calling with a normal X-API-Key works exactly as before.
One archived file per purchase, no key required. GET /api/v1/backtesting/archives/purchase?data_type=<type> plus that row's params.
/api/v1/backtesting/archives/download.
A pass or subscription grants one of these two tiers. Pro is for live decisions; Pro Plus adds the historical and bulk layer for backtesting.
Requests above your tier return 429 with a Retry-After header — nothing breaks, your client just backs off. Full tier comparison on /pricing.
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": { "net_bias": "short", ... } }
# discover the 402 (price + networks), then re-POST signed
curl -X POST https://cryptodataapi.com/api/v1/payments/agent-subscribe \
-H "Content-Type: application/json" \
-H "x-payment: <signed-payment-header>" \
-d '{"plan":"pass_1d"}'
# plan: pass_1h | pass_1d | pass_7d | *_plus | monthly | monthly_plus | annual | annual_plus
# { "api_key": "cdk_live_..." } ← shown once, store it
The x-payment header is a signed EIP-3009 transferWithAuthorization payload, not something you build by hand. The x402 client libraries (npm and PyPI) produce it from a wallet key. Per-request responses are never cached — Cache-Control: private, no-store. Passes and subscriptions return a cdk_live_ key once; per-request payments do not return a key at all.
One feed polled every 5 minutes is 8,640 calls a month. At the cheapest per-request price ($0.008/call) that is $69.12/month — more than a full month of Pro at $29. Both plans are unchanged by anything on this page. Card payments carry the 7-day money-back guarantee; x402 and USDC payments are settled on-chain and final — no refunds on passes, per-request calls or archive purchases.