Developers

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.

GET/public/market/movers120/min

Top 20 gainers and top 20 losers on one venue over a window.

params: exchange (default binance_futures), window in minutes (default 60)

GET/public/market/movers/all60/min

Every 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.

GET/public/market/globals120/min

BTC and ETH dominance, total market cap, 24h volume, Fear & Greed, average funding.

GET/public/market/globals/history120/min

Time series of total cap, volume, BTC dominance and Fear & Greed, oldest first.

params: hours (default 24, clamped server-side to 1–168)

GET/public/market/sentiment120/min

Average trend score per timeframe and average RSI for the USDT, BTC and PERP segments.

GET/public/market/structure120/min

Spot-versus-perp basis for BTC, ETH and SOL, altseason breadth, stablecoin supply change.

GET/public/market/positioning120/min

Binance 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.

GET/public/market/volatility120/min

Deribit implied volatility: current DVOL, 24h change, 30d range and percentile, with history.

params: currency (BTC or ETH, default BTC)

GET/public/market/trending120/min

The most-searched coins on CoinGecko right now, with price and 24h change.

GET/public/market/compare/{symbol}60/min

Cross-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.

GET/public/market-cap120/min

Coins 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.

GET/public/market-cap/narratives120/min

CoinMarketCap sectors ranked by average 24h change, with constituents and top mover.

GET/public/market-cap/{symbol}120/min

Market-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.

GET/public/funding/all300/min

Every current funding rate on one venue, native and 8h-normalized.

params: exchange (default binance_futures, nine allowed values)

GET/public/funding/coin/{base}300/min

One 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

GET/public/funding/index300/min

Market-wide funding index over the trailing 24h: median and average APR across all tracked perps.

GET/public/funding/board120/min

Pre-shaped leaderboard: 25 highest and 25 lowest rates on Binance futures, plus the top cross-venue spreads.

GET/public/funding/spread150/min

The 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.

GET/public/liquidations/tape120/min

The 200 most recent liquidation prints, newest first.

GET/public/liquidations/aggregates120/min

Per-symbol long, short and total liquidated notional, plus a market-wide summary.

params: window (5m, 1h or 24h)

GET/public/liquidations/cascades120/min

Active and recently-ended cascades, meaning clusters of same-side liquidations on one symbol.

GET/public/liquidations/{symbol}/prints120/min

Individual prints for one symbol over 24h, at or above $1,000 notional.

params: symbol in the path, venue-native form

GET/public/liquidations/board120/min

One snapshot for a dashboard: 24h totals, the 20 most-liquidated symbols, a print tape, the largest print, cascades.

GET/public/open-interest/{symbol}/history120/min

Open-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.

GET/public/screener/presets120/min

The fifteen screens you may run, with labels and descriptions. Start here.

GET/public/screener120/min

Run 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)

GET/public/screener/metrics120/min

Every 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.

GET/public/indicator-performance/meta120/min

The vocabulary: timeframes, forward windows, lookbacks, venues, and all 19 conditions with sample counts.

GET/public/indicator-performance/overview120/min

All 19 conditions scored on one timeframe, each with its single best coin.

params: tf (default 4h)

GET/public/indicator-performance/board120/min

The leaderboard for one condition: top 20 coins by how far the signal beat that coin's baseline.

params: condition, tf

The scored pattern and structure boards, across five venues.

GET/public/setups120/min

The ranked Smart Setups board for one venue and timeframe: score, bias, archetype, checklist and a written narrative.

params: exchange (default binance), timeframe

GET/public/setups/by-base120/min

The single best setup score per base asset across all board venues, one compact row per coin.

GET/public/trend-scanner120/min

Trend scores across up to 300 coins on one venue, ranked by a chosen timeframe.

params: exchange, timeframe

GET/public/trend-scanner/by-base120/min

A directional trend score per base asset, broken out by timeframe.

GET/public/trend-scanner/{exchange}/{symbol}120/min

Per-timeframe trend detail for one venue-native symbol: score, direction, persistence, contributors, RSI.

GET/public/detectors/{kind}120/min

Current hits from one detector family: chart patterns, trendlines, divergences, candlesticks, key levels or volume.

params: kind in the path

GET/public/athatl120/min

Distance from all-time high and low per coin, with drawdown, recovery multiple and days since the high.

params: exchange

GET/public/pumping/events120/min

Recent 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.

GET/public/ohlcv/{exchange}/{symbol}/{timeframe}120/min

OHLCV candles for one instrument, oldest first, straight from cache.

params: exchange, venue-native symbol and timeframe in the path

GET/public/ohlcv/{exchange}/symbols120/min

The chartable catalogue for one venue: every symbol with base, quote and tick size.

GET/public/ohlcv/{exchange}/volume-movers120/min

Coins trading at an unusual multiple of their own normal volume, with the taker buy and sell split.

params: exchange in the path

GET/public/fast-search/markets120/min

Type-ahead search across every ingested market by ticker or name, with venue and quote facets.

params: q

GET/public/plans300/min

The 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.