API reference
Every public REST endpoint in one place — 118 endpoints across 14 categories, with real curl examples, response shapes, and the tier required to call them. Everything here is stable; breaking changes get a /v2 path.
Quick start
The fastest path to a working request. No account needed — the fear & greed index is anonymous-tier. If this returns 200, everything else below will work once you have a key.
curl -sS "https://api.example.com/api/v1/sentiment/fear-greed?limit=5"{
"data": {
"latest": {
"ts": 1744761600000,
"value": 62,
"classification": "Greed"
},
"history": [
{ "ts": 1744243200000, "value": 54, "classification": "Neutral" },
{ "ts": 1744329600000, "value": 58, "classification": "Greed" }
]
},
"meta": { "total": 2, "limit": 5 }
}For AI agents
If you are an LLM, an autonomous agent, or a human building one: these artefacts are the machine-readable version of this page. Same source of truth, no drift.
OpenAPI 3.1 spec
Every endpoint, every parameter, with examples and auth metadata. Drop into Postman, Insomnia, Stoplight, or any OpenAPI toolchain.
/openapi.jsonllms.txt + llms-full.txt
LLM-ingestible discovery files following the llmstxt.org spec. The short file is an overview; the full file is every endpoint inlined for one-fetch ingestion.
MCP server (coming soon)
Model Context Protocol server exposes every REST endpoint as a native tool for Claude Desktop, Cursor, Windsurf, Cline. Register interest on the MCP page.
/docs/mcpChatGPT plugin manifest
Legacy plugin spec still walked by several agent frameworks; points at the same OpenAPI + llms.txt files.
/.well-known/ai-plugin.jsonAuthentication
Anonymous-tier endpoints (fear & greed, status, symbols) are open. For every other endpoint you pass a bearer token on each request. Keys are prefixed cg_live_ — GitHub's secret scanner recognises this format and will warn you if you commit one.
1. Create a key
Head to API keys in your dashboard. The plaintext is shown once at creation — save it somewhere durable; we only ever store the hash.
2. Send it as Bearer
Every request includes the key in an Authorization header. Query-string auth is deliberately not supported — keeps keys out of server logs.
curl -sS "https://api.example.com/api/v1/liquidations?coin=BTC&limit=10" \
-H "Authorization: Bearer cg_live_YOUR_KEY"Rate limit headers
Every response carries live rate-limit counters — no need to track them client-side. Read X-RateLimit-Remaining before sending your next batch; back off when it approaches zero. On a 429 the server also sets Retry-After with the seconds until the window resets.
HTTP/1.1 200 OK
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 294
X-RateLimit-Reset: 48
Retry-After: 48 (sent only on 429 responses)Tier limits
The requests-per-minute budget for every tier. Full feature matrix and pricing lives on the pricing page.
| Tier | Requests per minute | Window | Positioning |
|---|---|---|---|
| Anonymous | 10 | 60s | No key. Open endpoints for tire-kicking and public dashboards. |
| Hobbyist | 30 | 60s | Logged-in free tier. Enough for side projects and learning. |
| Startup | 80 | 60s | Small teams and solo quant devs building weekend bots. |
| Standard | 300 | 60s | Prop desks and production dashboards. The canonical tier. |
| Professional | 1,200 | 60s | Funds and institutions — priority support, full history. |
| Enterprise | 10,000 | 60s | Custom SLA, dedicated infra, WebSocket priority lane. |
Endpoints
118 endpoints, grouped by domain. Click any row for the full reference — parameters, response shape, curl example, and tier.
Futures
Derivatives data across all major CEXs — liquidations, open interest, funding, long/short ratios.
/api/v1/liquidationsRecent forced-close events across every derivatives exchange we ingest.
/api/v1/open-interestCross-exchange open interest — totals, top coins, or per-coin time series.
/api/v1/funding-ratesCurrent funding matrix across every exchange, or per-coin history for carry-strategy backtests.
/api/v1/long-shortAggregate and elite-trader long/short positioning ratios — the classic contrarian feed.
/api/v1/futures/funding/historyPer-coin funding rate history in 8-hour buckets, cross-exchange average.
/api/v1/futures/funding/heatmapCross-exchange funding matrix (coins × exchanges) + current extremes.
/api/v1/futures/funding/weightedOI-weighted funding rate per coin — the honest carry number.
/api/v1/futures/oi/historyPer-coin OI history — aggregate + per-exchange split in 5-minute buckets.
/api/v1/futures/oi/by-exchangeCross-exchange OI pivot — per-venue sum, share, instrument count.
/api/v1/futures/oi/dominanceCoin-level OI dominance — share of aggregate OI per coin.
/api/v1/futures/volumePer-coin 24h futures notional (perp + dated futures).
/api/v1/futures/premium-indexLatest mark-vs-index premium snapshot across every connected perp venue.
/api/v1/futures/premium-index/historyPer-coin cross-exchange average premium %, bucketed to 5-minute floors.
/api/v1/futures/basisLatest annualised perp-vs-spot basis per base asset. Cash-and-carry telemetry.
/api/v1/futures/taker-volumeTaker buy vs sell volume per coin over a trailing window.
/api/v1/futures/taker-volume/{base}Per-coin taker buy/sell split for a single base asset.
/api/v1/futures/largest-liquidationsTop-N single liquidation events by USD notional over a trailing window, filterable.
Spot
Spot-market quote and directory endpoints — the symbol table is shared across asset classes.
/api/v1/spot/large-ordersWhale spot orderbook prints above a configurable notional threshold.
/api/v1/spot/volumesPer-coin 24h spot volume leaderboard across all tracked venues.
/api/v1/spot/exchangesPer-venue spot rankings — 24h volume, pair count, share-of-total.
/api/v1/spot/exchanges/{source}Single-venue spot rollup.
/api/v1/spot/pairsDirectory of tracked spot pairs with venue coverage + 24h volume.
/api/v1/spot/price/{base}Latest spot price for a single coin across every reporting venue.
Coins
Per-asset rollups — aggregated price, OI, funding, and volume stats across every venue for a single base.
/api/v1/coinsOne-call rollup table — every base asset we track, blended price, 24h change, volume, OI, and average funding.
/api/v1/coins/{base}Single-coin deep view — overview row + per-exchange OI, funding, and 24h volume.
/api/v1/coins/{base}/exchangesPer-exchange snapshot for a single base asset — one row per venue.
/api/v1/coins/{base}/historyOHLCV history for a single coin, bucketed to the requested interval across all venues.
/api/v1/coins/heatmapPre-shaped tiles for the market heatmap widget — one tile per coin.
/api/v1/coins/top-movers24h gainers + losers, pre-filtered by minimum volume floor.
Markets
Market-wide overviews — totals, gainers, losers, most-traded; the macro-lens over the coin universe.
Exchanges
Venue directory and per-exchange rollups — OI, volume, instrument coverage, heartbeat status.
/api/v1/exchangesVenue directory + rollup — OI, 24h volume, coin count, status.
/api/v1/exchanges/{source}Single-exchange identity + rollup row.
/api/v1/exchanges/{source}/instrumentsPer-exchange instrument table — OI + 24h notional for each instrument.
/api/v1/exchanges/{source}/statsAggregate OI/volume/funding/heartbeat summary for one exchange.
Options
Deribit options chain, Greeks, put/call ratio, max-pain by underlying.
/api/v1/options/{underlying}Deribit options chain, Greeks, put/call ratio, and max-pain strike for BTC or ETH.
/api/v1/options/{underlying}/chainLatest Deribit chain snapshot — optionally narrowed to one expiry.
/api/v1/options/{underlying}/ivPer-strike IV at the latest snapshot for a single expiry.
/api/v1/options/{underlying}/iv/historyIV history for a single (expiry, strike) tuple — ATM by default.
/api/v1/options/{underlying}/iv/surfaceFull IV surface — strikes × expiries with per-cell IV.
/api/v1/options/{underlying}/iv-rankIV RANK — where today's ATM IV sits in its rolling N-day range.
/api/v1/options/{underlying}/dvolDeribit Volatility Index (DVOL) — current + history.
/api/v1/options/{underlying}/greeksGreeks snapshot — every strike in the latest chain.
/api/v1/options/{underlying}/max-painMax-pain strike per expiry for the N next upcoming expiries.
/api/v1/options/{underlying}/max-pain/historyHistorical max-pain strike — nearest expiry or per-expiry flavours.
/api/v1/options/{underlying}/pcrPut/Call ratio snapshot — underlying total + per-expiry breakdown.
/api/v1/options/{underlying}/pcr/historyPut/Call ratio history — OI PCR + volume PCR over N days.
/api/v1/options/{underlying}/by-strikeStrike-level aggregates: OI + volume + avg IV per strike.
/api/v1/options/{underlying}/by-expiryExpiry-level aggregates — term structure of OI, volume, max pain.
/api/v1/options/{underlying}/oiAggregate open interest — totals + per-exchange breakdown.
/api/v1/options/{underlying}/volumeAggregate 24h volume — totals + per-strike breakdown.
/api/v1/options/{underlying}/expiriesDistinct expiry list at the latest snapshot with strike counts.
/api/v1/options/{underlying}/term-structureATM implied volatility per expiry — the term-structure curve.
On-chain
Network-level metrics sourced from CoinMetrics — realized cap, active addresses, NVT, and more.
/api/v1/on-chain/{asset}CoinMetrics-sourced network metrics — realized cap, active addresses, NVT, MVRV, and more.
/api/v1/on-chain/{asset}/metric/{metric}Edge-cacheable variant of /on-chain/{asset} series mode — metric in the path.
/api/v1/on-chain/{asset}/metrics/listDirectory of metrics ingested for this asset — for populating chart dropdowns.
/api/v1/on-chain/{asset}/active-addressesDaily unique active addresses (sender or receiver) — CoinMetrics `AdrActCnt`.
/api/v1/on-chain/{asset}/hashrateDaily network hashrate for proof-of-work chains — BTC only.
/api/v1/on-chain/{asset}/tx-countDaily settled transaction count — CoinMetrics `TxCnt`.
/api/v1/on-chain/{asset}/mvrvDerived MVRV (MarketCap / RealizedCap) — daily series without a Pro tier.
/api/v1/on-chain/{asset}/nvtKalichkin-adjusted NVT — CoinMetrics `NVTAdj`.
/api/v1/on-chain/whale-transfersRecent large on-chain transfers plus an hourly volume histogram.
/api/v1/on-chain/stablecoin/supplyCirculating supply history for every tracked stablecoin in one call.
/api/v1/on-chain/stablecoin/{symbol}Circulating supply history for a single named stablecoin.
/api/v1/on-chain/stablecoin/exchange-reservesLatest stablecoin balances held on major exchange wallets.
ETFs
Spot Bitcoin and Ethereum ETF flows, AUM, issuer breakdowns.
/api/v1/etf/bitcoinDaily spot Bitcoin ETF flows, cumulative AUM, rolling 7-day flow, and issuer breakdown.
/api/v1/etf/ethereumDaily spot Ethereum ETF flows — mirrors the shape of the Bitcoin endpoint.
/api/v1/etf/{asset}Unified ETF summary — accepts bitcoin|ethereum|btc|eth in one route.
/api/v1/etf/{asset}/{ticker}Single-ticker daily flow history for one spot ETF.
/api/v1/etf/{asset}/aumCumulative all-time net flow plus issuer-level breakdown for the asset.
/api/v1/etf/{asset}/biggest-flowsTop-N biggest inflow and outflow days for the asset.
/api/v1/etf/{asset}/tickersDistinct tickers tracked for the asset plus the canonical order.
/api/v1/etf/{asset}/cumulativeCumulative running-sum flow time series for the asset.
/api/v1/etf/{asset}/dailyDaily per-ticker flow breakdown, newest first.
/api/v1/etf/hkHong Kong spot BTC/ETH ETFs — canonical shape with a data-status flag.
/api/v1/etf/grayscaleGrayscale product family rollup (GBTC, ETHE, mini trusts).
/api/v1/etf/corporate-treasuryCorporate bitcoin treasuries (MSTR + peers) — canonical shape, ingestion pending.
/api/v1/etf/corporate-treasury/{ticker}Single-company bitcoin treasury history.
/api/v1/etf/summaryCross-asset ETF rollup — BTC + ETH + combined in a single call.
Sentiment
Market-wide psychology indices. Start with fear & greed; more to come.
/api/v1/sentiment/fear-greedCrypto Fear & Greed Index — latest reading plus history.
/api/v1/sentiment/listDirectory of every sentiment index we have stored, with the latest reading for each.
/api/v1/sentiment/{index}Latest reading for a single sentiment index, looked up by name.
/api/v1/sentiment/{index}/historyHistorical time series for a named sentiment index, ready for charting.
Indicators
Derived cycle-signal dashboards — bull-market-peak, Pi Cycle, MVRV Z-Score, Rainbow band, and more. Computed from free on-chain primitives.
/api/v1/indicators/bull-market-peakAggregated cycle-signal dashboard — the JSON mirror of /indicators/bull-market-peak.
/api/v1/indicators/pi-cyclePi Cycle Top signal — 111-DMA vs 2× 350-DMA crossover.
/api/v1/indicators/rainbowRainbow-band classifier — distance-to-2Y-high proxy.
/api/v1/indicators/mvrv-zMVRV Z-Score — dispersion-normalised market-cap vs realised-cap spread.
/api/v1/indicators/puellPuell Multiple (miner-revenue cycle signal) — Pro-tier metric.
/api/v1/indicators/rsi-heatmapPer-coin RSI heatmap across the top basket — feed pending.
/api/v1/indicators/altcoin-seasonAltcoin-season index (0–100) — feed pending.
Macro
Traditional-finance macro series (M2, DXY, gold) from FRED. Powers the 'crypto vs. global liquidity' overlays. Requires the FRED ingestion adapter to be live.
Hyperliquid
Hyperliquid-specific data — HLP vault, trader leaderboards, whale positions, predicted funding.
/api/v1/hyperliquid/vault/hlpHyperliquid HLP vault snapshot + history (TVL, PnL, APR, followers).
/api/v1/hyperliquid/leaderboardHyperliquid trader leaderboard snapshot for a given time window.
/api/v1/hyperliquid/vaultsEvery Hyperliquid vault we track — newest snapshot per vault address, TVL-sorted.
/api/v1/hyperliquid/vault/{address}Latest snapshot + trailing history for a single Hyperliquid vault address.
/api/v1/hyperliquid/vault/hlp/historyHLP deep-dive bundle — TVL, PnL (daily + weekly), and APR series over N days.
/api/v1/hyperliquid/leaderboard/{window}Path-param flavour of the leaderboard endpoint.
/api/v1/hyperliquid/whale-positionsTop whale positions by USD size, plus coin/side aggregates in one call.
/api/v1/hyperliquid/whale-positions/{address}All currently-open positions for a single whale address.
/api/v1/hyperliquid/whale-positions/by-coin/{coin}Every whale position for a single coin, ranked by USD size.
/api/v1/hyperliquid/marketsHL-native markets table — OI, funding, 24h volume, 24h change.
/api/v1/hyperliquid/predicted-fundingCurrent vs predicted funding rate per HL perp — spot divergences before they print.
DEX perps
Cross-venue DEX comparison plus per-venue drill-downs — dYdX v4, GMX v2 (multi-chain), Drift + insurance fund, Paradex, Vertex.
/api/v1/dex/listCross-venue DEX comparison feed — every supported venue with OI, 24h volume, market count, and share %s.
/api/v1/dex/dydx/marketsEvery dYdX v4 perpetual market.
/api/v1/dex/dydx/markets/{ticker}Single dYdX v4 market by canonical symbol or base asset.
/api/v1/dex/gmx/marketsEvery GMX v2 market across both chains (Arbitrum + Avalanche).
/api/v1/dex/gmx/statsPer-chain GMX v2 breakdown — Arbitrum vs Avalanche.
/api/v1/dex/drift/marketsEvery Drift (Solana) perpetual market.
/api/v1/dex/drift/insurance-fundLatest Drift insurance-fund TVL snapshot + 30d delta summary.
/api/v1/dex/drift/insurance-fund/historyDrift insurance-fund TVL time series.
/api/v1/dex/vertex/marketsEvery Vertex (Arbitrum) perpetual market.
/api/v1/dex/paradex/marketsEvery Paradex (Starknet) perpetual market.
Meta
Directory and operational endpoints. Use `symbols` on startup, `status` for monitoring.
/api/v1/instrumentsPaginated instrument directory — richer sibling of `/api/v1/symbols`.
/api/v1/instruments/{symbol}Instrument detail + activity counters (trade/OI/funding).
/api/v1/instruments/searchPrefix search across canonical symbol and base — for typeahead.
/api/v1/statusAdapter health + per-table row counts — the public mirror of the internal /status page.
/api/v1/symbolsFull instrument directory — the table you cache on startup to resolve symbols everywhere else.
Response envelope
Every response — success or error, single or list — uses the same shape. Key off the HTTP status for coarse routing, then on body.error.code for fine-grained handling.
interface ApiEnvelope<T> {
data: T | null; // the payload (null on error)
meta?: { // optional, present on list endpoints
total?: number;
limit?: number;
offset?: number;
[key: string]: unknown; // per-endpoint extras (e.g. "window", "days")
};
error?: { // present on 4xx / 5xx only
code: string; // machine-readable — see Error codes below
message: string; // human message (safe to show users)
};
}{
"data": [ /* rows */ ],
"meta": { "total": 42, "limit": 100, "offset": 0 }
}{
"data": null,
"error": {
"code": "BAD_PARAM",
"message": "Invalid 'coin' symbol."
}
}Error codes
Every failure returns a stable error.code. Switch on these in your client — the message field is for humans and may change between releases.
| Code | HTTP | When it happens | What to do |
|---|---|---|---|
| BAD_PARAM | 400 | A query or path parameter failed validation (bad symbol, unknown enum, malformed expiry, etc.). | Re-check the endpoint's parameter table. Each parameter documents its allowed values and defaults. |
| UNKNOWN_UNDERLYING | 404 | The `:underlying` path segment on the options endpoint wasn't BTC or ETH. | Use `/api/v1/options/BTC` or `/api/v1/options/ETH`. |
| UNKNOWN_ASSET | 404 | The `:asset` path segment on the on-chain endpoint didn't match the expected short alphabetic form (2–8 letters). | Use uppercase codes like `BTC`, `ETH`, `SOL`. Avoid tickers with slashes, numbers, or punctuation. |
| RATE_LIMITED | 429 | You exceeded your tier's requests-per-minute budget. Headers `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` tell you where you are. | Back off until `X-RateLimit-Reset` seconds have elapsed, or upgrade tier. Honour the `Retry-After` header when present. |
| DB_ERROR | 500 | The database layer failed (libsql / SQLite unavailable, migration mid-flight, etc.). Message is deliberately opaque — server logs carry detail. | Retry with exponential backoff. If this persists, check `/api/v1/status` — a stalled adapter often precedes a DB issue. |
| INTERNAL_ERROR | 500 | An unexpected error — the catch-all for anything the route didn't classify itself. | Retry once; open a support ticket if it keeps happening with the same request shape. |