Unique Pro first — what the pass keeps open

Lead product URL: https://cryptodataapi.com/ai-pricing. Machine-readable twin: GET /api/v1/pricing — no key needed.

I am Sam Deering. I built CryptoDataAPI so agents can keep reading live Hyperliquid decision data after the free window. Agents read. They do not trade. We are not a broker.

A free key and a confirmed email give you 24 hours of Pro on the same cdk_live_ key. When that window ends, Pro surfaces return 403 again. The pass is how an agent stays on the tape without a card.

The Pro tape a pass unlocks:

That is live Hyperliquid decision data. It is not candle Q&A.

This post is not a rewrite of the full pass mechanics — every duration, discount codes, and the pass-vs-monthly comparison already live on Pay Per Hour for Pro Crypto Data. This piece leads with what the pass is for: staying on the whale/GEX/regime/fills tape. Related reads for depth: MCP vs candle AI APIs, the fill-tape post above, and Hot CPI to FOMC for how the regime read gets used.

How the x402 hour and day pass works

Verified directly against src/payments/routes.py's POST /api/v1/payments/agent-subscribe handler and the shared pricing table in src/payments/prices.py.

Agents pay in USDC over the x402 protocol. Base is recommended and gasless via the Coinbase Developer Platform facilitator (the endpoint's own docs literally list "Supported networks: Base (USDC), Ethereum (USDC), Solana (USDC). Recommended: Base for lowest settlement cost"). No account is required for the payment path.

Buy a pass with:

POST /api/v1/payments/agent-subscribe

Body: {"plan":"pass_1d"} (or another plan name below).

Exact plan names and prices (confirmed against the live pricing table):

The flow:

  1. POST with the plan body and no payment header → HTTP 402 with the payment options (amount, network, payTo).
  2. Sign the USDC amount off-chain (EIP-712/EIP-3009; x402 client libraries do this — do not hand-build the header).
  3. Re-POST with the signed payload in the x-payment header (or payment-signature, the v2 header name — both are accepted).
  4. The response returns a real cdk_live_ key once, in the api_key field. Store it immediately.

One nuance not obvious from the happy path: if you send an existing X-API-Key header on the request, the endpoint renews or stacks a pass onto that same key instead of minting a new one — and in that case api_key comes back null, because you already have it. Only a brand-new key (no X-API-Key sent, no prior key found for your wallet) returns the secret.

Your tier is derived from the best of every currently-active subscription on the key, so a pass stacked on top of an existing plan never downgrades it — and passes always start counting from the moment they settle, not from when a prior plan would have expired. When the highest one lapses, the key's tier falls back to whatever is still active (or free, if nothing is). Every existing rate limit and tier gate applies normally throughout.

Per-request payments (a single metered call, no key needed) do not return a key. Only passes and subscriptions do.

Live prices cited

Confirmed directly against the same pricing table that drives GET /api/v1/pricing and /ai-pricing — both render from one source, so re-fetch before you hard-code either into a script.

SurfacePrice
Cheapest per-request call (event calendar)$0.008
1-hour Pro pass (pass_1h)$1.50
1-day Pro pass (pass_1d)$5.00
Whales per call$0.03
Regime / market nowcast per call$0.015

Event calendar is genuinely the cheapest of the six listed per-request routes ($0.008); the others run $0.01–$0.03. These figures come from the same table the 402 body and /api/v1/pricing both read from — there is one source, not a brief that can drift from the API.

Free vs Pro cliff

Free Explorer is a real product. Coin profiles, market health, derivatives, Hyperliquid perps, sentiment, macro, and /daily are there — along with OHLCV on /api/v1/market-data/klines and /api/v1/hyperliquid/candles, both genuinely ungated.

Pro gates the full-universe decision layer: whales, GEX, full quant regimes, forward-looking engines, full liquidation heatmaps, and related Pro boards. On free, those calls return 403. Leave that status as-is — it is the cliff, not an error to invent around.

Path after free:

  1. POST /api/v1/auth/keys with a real email → a cdk_live_ key, once.
  2. Confirm the email → the same key rises to 1,000 req/day and gets 24 hours of Pro.
  3. When the free Pro window ends, buy pass_1h or pass_1d at https://cryptodataapi.com/ai-pricing (or subscribe monthly).

Pay-per-call is for look-arounds, not polling. One feed checked every 5 minutes is 8,640 calls a month — at $0.008/call that's $69.12/month, more than a full month of Pro ($39). A pass or subscription is the polling rail; pay-per-call is the look-first rail.

What they can do after the key returns

  1. Store the cdk_live_ key from the pass response — it will not be shown again.
  2. Send it on every request as X-API-Key.
  3. Keep querying Pro tape for the pass window: whales, GEX, regimes, HL fills.
  4. Respect Pro rate limits: 30 req/min · 10,000/day (Pro Plus: 120/min · 50,000/day). Calls above your tier's scope still return 429 with Retry-After if you exceed the limit.
  5. When the pass ends, tier falls back automatically. Buy another pass or subscribe — no card required on the x402 path.

Example discover → settle (a client library produces the x-payment header; do not hand-build it):

# 1) discover 402
curl -i -X POST https://cryptodataapi.com/api/v1/payments/agent-subscribe \
  -H "Content-Type: application/json" \
  -d '{"plan":"pass_1d"}'

# 2) re-POST signed — the api_key field is shown once, store it
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"}'

Then keep reading:

curl "https://cryptodataapi.com/api/v1/quant/whales" \
  -H "X-API-Key: cdk_live_yourkey" \
  -H "User-Agent: cryptodataapi-python/1.0"

Python's built-in urllib must set a real User-Agent. Its default signature is refused at the CDN with an HTML 403 (Cloudflare error 1010) before the request reaches the API.

What it is not

It is not a broker. Agents read. They do not trade here.

It is not candle-first onboarding. OHLCV is free on /api/v1/market-data/klines and /api/v1/hyperliquid/candles. Fetch bars when a strategy needs bars. Do not open with a candle poll to learn what this API is.

It is not a competitor war page.

It is not a rewrite of the MCP-vs-candle-AI post, the HL fill-tape post, the CPI→FOMC calendar post, or the dedicated x402-passes mechanics post linked above. Those stay their own pieces. This one is Free→Pro conversion via an x402 hour/day pass, framed around the specific Hyperliquid tape it unlocks.

USDC x402 passes and per-request calls are settled on-chain and final. No refunds on passes, per-request calls, or archive purchases.

For agents: MCP and REST truth

Same Pro tape, two surfaces.

REST — pay and call directly:

MCP — tools over https://cryptodataapi.com/mcp (docs: https://cryptodataapi.com/ai-agents):

Remote MCP one-liner:

claude mcp add --transport http cryptodataapi \
  https://cryptodataapi.com/mcp

Stdio:

export CRYPTODATA_API_KEY="cdk_live_yourkey"
claude mcp add cryptodataapi -- npx -y cryptodataapi-mcp

A 401 / 402 / 403 from these paths means what the status says. Do not invent a softer code.

Docs and CTAs