Skip to main content
Every request to api.coinversa.ai/api/public/v1/* requires an API key. Get one at developers.coinversa.ai.

Sending the key

Pass your key in the X-API-Key header on every request:
That’s it — no OAuth, no bearer prefix, no signing.
Never embed your key in client-side code or commit it to a public repo. Use a server-side proxy if you need to call Pulse from a browser, or use a separate key per environment so you can rotate without disrupting other clients.

Tiers

Your key’s tier is set by your active subscription. Free is the default; paid tiers are managed in the billing portal. See pricing for what each tier unlocks.
Each key is checked on its own. A key serves the tier it was provisioned at, capped by your account’s active entitlement — a Free key calling alongside an unused Pro key on the same account still gets Free limits. See how tier resolution works.

Rate-limit headers

Every successful response includes:

Error responses

All errors are JSON problem details: title, status, a human-readable detail, and a machine-matchable code. Match on code — the detail wording can change. There is no 401 in this API: every auth failure is a 403.
Action: include the X-API-Key header. required_tier names the minimum tier for the endpoint — even free endpoints need a key.
Action: check the key isn’t revoked or rotated in the portal.
Action: upgrade at upgrade_url, or (for builder endpoints) fall back to the endpoint’s x402 pay-per-call twin. Agents: report required_tier to the human rather than retrying.
Action: back off until the duration in X-RateLimit-Next elapses, or upgrade for higher RPM.
Action: the daily window resets at 00:00 UTC; the monthly bucket at your billing period boundary. Or upgrade.
The upstream Hyperliquid endpoint timed out or returned an error. The MCP server retries automatically; direct callers should retry with backoff.
No key at all? Every GET endpoint has a keyless x402 pay-per-call twin — payment is negotiated per request via the x402 protocol instead of a subscription. The builder analytics endpoints are the documented x402 surface today.

Historical-window caps

Caller-controlled history windows (since, hours/days params, explicit startTime/endTime ranges) are clamped to 90 days on every tier — the cap is universal, not tier-based. The clamp is silent: no error is returned, the query just runs against the capped window, and the response may echo the window you asked for. Compare response timestamps against your requested range to detect truncation. Risk endpoints (/live/risk/liquidations/*, etc.) are additionally clamped to data starting 2026-01-01 (the day we began collecting L1 liquidation events). Longer windows are available on Enterprise as custom exports and negotiated data delivery, not as an API parameter. See Data windows for per-endpoint window semantics.

Usage logging

Every authenticated request is logged with the response time and status code so you can audit usage in Usage in the portal. Logs include endpoint, method, IP, and user-agent — but never the key itself (only the SHA-256 hash).