A free crypto market data API, with no key to ask for.
43 read-only JSON endpoints covering funding rates, liquidations, open interest, candles, market cap and the scored setup boards. No account, no API key, no sign-up form. These are the same endpoints coinbeacon.io reads from, so if a number is on the site it is in here.
- Base URL
- api.coinbeacon.io
- Auth
- None. No key, no header.
- Format
- JSON over HTTPS
Getting started
One request, no setup.
curl "https://api.coinbeacon.io/public/funding/coin/BTC"Comes back with BTC’s current funding rate on every venue that lists it, the best venue to be long and to be short, 30 days of hourly history, and 7- and 30-day statistics. Every rate is normalized to an 8-hour basis, so a venue settling hourly and a venue settling every eight hours can be compared directly.
Server-side only
Call this from your backend, a script, or a scheduled job. Browser requests from another domain are blocked, and the block currently surfaces as a 500 rather than a CORS error, so a fetch() in a web page will look like it broke. That is expected, not an outage. Proxy it through your own server.
Market overview
The macro picture: what is moving, how the market is positioned, and how it feels.
/public/market/movers120/minTop 20 gainers and top 20 losers on one venue over a window.
params: exchange (default binance_futures), window in minutes (default 60)
/public/market/movers/all60/minEvery ranked market on one venue, sorted, capped at 250 rows.
params: exchange, window
The cap is hard. There is no paging, so rows beyond 250 are not reachable here.
/public/market/globals120/minBTC and ETH dominance, total market cap, 24h volume, Fear & Greed, average funding.
/public/market/globals/history120/minTime series of total cap, volume, BTC dominance and Fear & Greed, oldest first.
params: hours (default 24, clamped server-side to 1–168)
/public/market/sentiment120/minAverage trend score per timeframe and average RSI for the USDT, BTC and PERP segments.
/public/market/structure120/minSpot-versus-perp basis for BTC, ETH and SOL, altseason breadth, stablecoin supply change.
/public/market/positioning120/minBinance futures positioning for one perp: long/short accounts, top traders, taker ratio.
params: symbol (default BTCUSDT)
Each distinct symbol is its own cache key and reaches Binance on a miss. Do not iterate over it.
/public/market/volatility120/minDeribit implied volatility: current DVOL, 24h change, 30d range and percentile, with history.
params: currency (BTC or ETH, default BTC)
/public/market/trending120/minThe most-searched coins on CoinGecko right now, with price and 24h change.
/public/market/compare/{symbol}60/minCross-venue price comparison for one symbol, from cached prices, with the high-low spread.
params: symbol in the path, uppercase
Market cap
The CoinMarketCap-sourced snapshot the site's own boards read from.
/public/market-cap120/minCoins ranked by market cap with price, volume, supply, percent changes and tags.
params: limit (default and maximum 1500)
Always pass a limit. With none it returns the whole snapshot, around 747 KB. The count field is the total available, not the number returned.
/public/market-cap/narratives120/minCoinMarketCap sectors ranked by average 24h change, with constituents and top mover.
/public/market-cap/{symbol}120/minMarket-cap detail plus project metadata for one base asset: description, links, explorer.
params: symbol in the path, base asset only (BTC, not BTCUSDT)
An unknown coin returns 200 with found:false, not a 404.
Funding rates
Perpetual funding across nine venues, with every rate normalized to a common 8-hour basis so venues that settle at 1h, 4h and 8h are comparable.
/public/funding/all300/minEvery current funding rate on one venue, native and 8h-normalized.
params: exchange (default binance_futures, nine allowed values)
/public/funding/coin/{base}300/minOne coin's funding everywhere: every venue listing it, best long and short venue, 30d hourly history, 7d and 30d stats.
params: base in the path, base asset only
/public/funding/index300/minMarket-wide funding index over the trailing 24h: median and average APR across all tracked perps.
/public/funding/board120/minPre-shaped leaderboard: 25 highest and 25 lowest rates on Binance futures, plus the top cross-venue spreads.
/public/funding/spread150/minThe same funding rate on different venues, side by side, with the gap between the highest and lowest.
Read the warning below this table before using it.
Read this before using /public/funding/spread
It is a raw comparison of one coin’s funding rate across venues. It is not an arbitrage feed, and the biggest numbers in it are usually not real opportunities.
A leg whose rate is exactly 0 almost always means the venue lists that book but does not actually fund it. Around three rows in ten are in that state. Because the spread is the gap between the highest and lowest leg, one of those zeros manufactures the whole number, which is where the occasional four-figure annualised percentage comes from.
Drop any row with a zero leg before you use it, and check the base asset: a handful of tracked books are tokenized equities rather than crypto. Both filters are one line each, and without them the top of the list is noise.
Liquidations and open interest
Forced closes as they print, and the positioning behind them. Binance futures.
/public/liquidations/tape120/minThe 200 most recent liquidation prints, newest first.
/public/liquidations/aggregates120/minPer-symbol long, short and total liquidated notional, plus a market-wide summary.
params: window (5m, 1h or 24h)
/public/liquidations/cascades120/minActive and recently-ended cascades, meaning clusters of same-side liquidations on one symbol.
/public/liquidations/{symbol}/prints120/minIndividual prints for one symbol over 24h, at or above $1,000 notional.
params: symbol in the path, venue-native form
/public/liquidations/board120/minOne snapshot for a dashboard: 24h totals, the 20 most-liquidated symbols, a print tape, the largest print, cascades.
/public/open-interest/{symbol}/history120/minOpen-interest history for one perp, in contracts and USD notional.
params: symbol in the path as a full pair such as BTCUSDT, plus period
An unknown symbol returns 200 with an empty points array, and an invalid period silently falls back to 15m. Check what came back rather than expecting an error.
Screener
Fifteen ready-made whole-market screens, and the vocabulary behind them.
/public/screener/presets120/minThe fifteen screens you may run, with labels and descriptions. Start here.
/public/screener120/minRun one preset and get up to 100 matching coins with the metrics that screen selects on.
params: preset (required, an id from the presets endpoint)
/public/screener/metrics120/minEvery metric column that can appear in a row, with its definition, and the available timeframes.
Indicator Edge
Whether an indicator signal actually preceded a move, measured against each coin's own baseline drift rather than against zero.
/public/indicator-performance/meta120/minThe vocabulary: timeframes, forward windows, lookbacks, venues, and all 19 conditions with sample counts.
/public/indicator-performance/overview120/minAll 19 conditions scored on one timeframe, each with its single best coin.
params: tf (default 4h)
/public/indicator-performance/board120/minThe leaderboard for one condition: top 20 coins by how far the signal beat that coin's baseline.
params: condition, tf
Setups, trends and detectors
The scored pattern and structure boards, across five venues.
/public/setups120/minThe ranked Smart Setups board for one venue and timeframe: score, bias, archetype, checklist and a written narrative.
params: exchange (default binance), timeframe
/public/setups/by-base120/minThe single best setup score per base asset across all board venues, one compact row per coin.
/public/trend-scanner120/minTrend scores across up to 300 coins on one venue, ranked by a chosen timeframe.
params: exchange, timeframe
/public/trend-scanner/by-base120/minA directional trend score per base asset, broken out by timeframe.
/public/trend-scanner/{exchange}/{symbol}120/minPer-timeframe trend detail for one venue-native symbol: score, direction, persistence, contributors, RSI.
/public/detectors/{kind}120/minCurrent hits from one detector family: chart patterns, trendlines, divergences, candlesticks, key levels or volume.
params: kind in the path
/public/athatl120/minDistance from all-time high and low per coin, with drawdown, recovery multiple and days since the high.
params: exchange
/public/pumping/events120/minRecent sharp moves and fresh 24h highs and lows, with percent move, relative volume and a bias tag.
params: exchange
Candles, search and plans
The raw series behind the charts, the instrument catalogue, and the free-tier caps.
/public/ohlcv/{exchange}/{symbol}/{timeframe}120/minOHLCV candles for one instrument, oldest first, straight from cache.
params: exchange, venue-native symbol and timeframe in the path
/public/ohlcv/{exchange}/symbols120/minThe chartable catalogue for one venue: every symbol with base, quote and tick size.
/public/ohlcv/{exchange}/volume-movers120/minCoins trading at an unusual multiple of their own normal volume, with the taker buy and sell split.
params: exchange in the path
/public/fast-search/markets120/minType-ahead search across every ingested market by ticker or name, with venue and quote facets.
params: q
/public/plans300/minThe free-plan caps, read from the same place the enforcement code reads them.
Rate limits
Limits are per IP address and are printed against each endpoint above, because they are genuinely not uniform. Most routes allow 120 requests a minute, the funding routes allow 300, and two of the heavier market routes allow 60.
A few endpoints reach an upstream exchange on a cache miss, and each distinct symbol is its own cache entry. Sweeping those across every symbol is the one usage pattern that will get you blocked, so cache on your side and prefer the endpoints that already return a whole board in one call.
There is no key to identify you and no quota to top up. If you need volumes beyond this, write to support@coinbeacon.io rather than working around the limits.
What this is not
This is the read surface behind our own public pages, opened up because there was no reason to keep it shut. It is not a versioned commercial product. There is no service level, no support contract, and no promise that a field will not change.
Treat responses defensively. Several endpoints answer an unknown symbol with a 200 and an empty result rather than a 404, so check what came back instead of relying on the status code. Timestamps are not one type across every endpoint. Where a route says so above, an unrecognised parameter is ignored rather than rejected.
It is market data, not advice. Nothing here is a recommendation to trade, and the numbers are only as good as the venues we read them from.