API
This instance exposes a read-only JSON API — the same endpoints the site itself uses. No key required; requests are rate limited per IP and served through a caching proxy in front of CoinGecko.
OpenAPI: /openapi.json
Embed a live price widget with /embed/price/bitcoin.
REST endpoints
| Route | Parameters | TTL | Description | Try |
|---|---|---|---|---|
GET /api/global | — | 120s | Global market stats (market cap, volume, BTC/ETH dominance) | |
GET /api/fng | — | 600s | Fear & Greed Index current value and 30-day historical points | |
GET /api/altseason | window (24h, 7d, 30d) | 60s | Altcoin Season Index: share of the top 50 coins (stablecoins and wrapped assets excluded) outperforming Bitcoin, with leaders | |
GET /api/news | limit, q, source | 300s | Aggregated crypto news headlines from RSS/Atom feeds (NEWS_FEEDS) | |
GET /api/derivatives | view (contracts, assets), limit | 300s | Perpetual futures: top contracts by open interest and per-asset aggregates | |
GET /api/trending | — | 300s | Trending coins from CoinGecko search | |
GET /api/markets | vs, page, per_page, ids, category, order | 60s | Market coin list with sparklines; served from universe when applicable | |
GET /api/coin/:id | :id | 120s | Coin metadata, market stats, ATH/ATL, description, and links | |
GET /api/coin/:id/chart | vs, days (1, 7, 30, 90, 365, max) | 120s (1d) / 900s | Historical price, market cap, and volume series | |
GET /api/coin/:id/ohlc | vs, days (1, 7, 14, 30, 90, 180, 365) | 300s | OHLC candlestick data | |
GET /api/coin/:id/tickers | page | 300s | Exchange trading pairs, volumes, trust scores, and trade URLs | |
GET /api/search | q | 600s | Multi-category search (coins, categories, exchanges) | |
GET /api/categories | — | 600s | Cryptocurrency category market caps and 24h performance | |
GET /api/exchanges | page, per_page | 600s | Exchange list with trust scores and 24h trading volume | |
GET /api/exchange/:id | — | 600s | Exchange profile (trust, volume, links, description) and top 100 tickers | |
GET /api/exchange/:id/volume | days (7/14/30/90) | 900s | Daily/hourly BTC volume series for the exchange | |
GET /api/coin/:id/similar | vs | universe | Coins ranked next to the coin by market cap (served from the universe, no upstream call) | |
GET /api/simple-price | ids, vs | 60s | Simple prices and 24h change (served from universe if cached) | |
GET /api/currencies | — | 3600s (static) | Supported display currencies (18: fiat + BTC/ETH) | |
GET /healthz | — | — | Health JSON: version, uptime, memory, cache counters, upstream counters/cooldown, live feed state (rendered by /status) |
Every response carries
X-Cache (hit, miss, stale, universe, fallback, aggregate) and Cache-Control. While the data provider is in cooldown the API answers 503 with Retry-After; per-IP limits answer 429 with X-RateLimit-Remaining. Currency codes for vs: see /api/currencies.Tabular endpoints (
/api/markets, /api/coin/:id/ohlc, /api/coin/:id/chart, /api/exchanges, /api/categories) also accept ?format=csv and return a UTF-8 CSV download. Try it
Live price stream
GET /api/stream is a Server-Sent Events endpoint. event: hello lists the tracked coin ids, event: tick arrives at most once per second with USD prices (p) and 24h change (c).
event: hello
data: {"symbols":["bitcoin","ethereum","solana"]}
event: tick
data: {"ts":1710000000000,"prices":{"bitcoin":{"p":76318.9,"c":0.46}}}