I needed crypto prices for a side project and got tired of signing up for keys, reading pricing pages and hitting "upgrade to continue" walls. So I built the data layer for my own site, CoinXview, and opened part of it as a free public API.

No key, no sign-up. CORS is open, so it works straight from the browser.

What you get

  • Live prices for 1,200+ coins, volume-weighted across 22 exchanges (Binance, OKX, Bybit, Coinbase, Kraken, Upbit…). An exchange that drifts more than 5% from the others is dropped from the average.
  • 1h / 24h / 7d change, market cap, 24h volume, ATH and distance from ATH
  • OHLC candles: 1h, 4h, 1d, 1w
  • Global market numbers and a Fear & Greed index
  • A 0–100 risk score per coin, with its components

Limit: 60 requests per minute per IP. Field names are stable; new fields may be added, existing ones won't be renamed.

Prices

curl "https://coinxview.com/api/v1/coins?symbols=BTC,ETH" 
{ "data": [ { "rank": 1, "symbol": "BTC", "name": "Bitcoin", "price_usd": 77966, "change_1h": -0.15, "change_24h": -0.11, "change_7d": -2.98, "market_cap_usd": 1567662728412, "volume_24h_usd": 4687188887, "ath_usd": 126199.6, "ath_change_pct": -38.22, "exchanges": 22, "risk": 0, "risk_level": "low" } ] } 

Without symbols you get the list by rank. Page through it with start and limit.

JavaScript

const res = await fetch("https://coinxview.com/api/v1/coins?symbols=BTC,ETH,SOL"); const { data } = await res.json(); for (const c of data) { console.log(`${c.symbol}: $${c.price_usd} (${c.change_24h}% 24h)`); } 

Python

import requests r = requests.get("https://coinxview.com/api/v1/coins", params={"symbols": "BTC,ETH,SOL"}) for c in r.json()["data"]: print(c["symbol"], c["price_usd"], f'{c["change_24h"]}% 24h') 

Candles

curl "https://coinxview.com/api/v1/ohlc/BTC?interval=1d&limit=30" 

Each candle is [time, open, high, low, close, volume_usd], with time in Unix seconds. interval is 1h, 4h, 1d or 1w. The response tells you which exchange the candles come from (source_exchange).

Risk score

This is the part I haven't seen in other free APIs. Every coin gets a 0–100 score, where higher means riskier. It is computed only from market data:

  • liquidity (30%)
  • volatility (25%)
  • number of exchange listings (15%)
  • price gap between exchanges (15%)
  • how much price history exists (15%)
  • +10 if the project lost $1M+ to a hack in the last 12 months
curl "https://coinxview.com/api/v1/risk/SOL" 

You get the total, a level (low, medium, high, very_high) and each component. That makes it easy to flag thin, freshly listed tokens in a bot or a dashboard. It is a data signal, not investment advice.

Market overview and Fear & Greed

curl "https://coinxview.com/api/v1/global" curl "https://coinxview.com/api/v1/fear-greed" 

global returns total market cap, 24h volume, BTC / ETH dominance and the current Fear & Greed value. fear-greed adds the daily history.

Limits, honestly

  • 60 requests/min per IP. Cache on your side if you poll.
  • Free, best effort, no SLA. Good for side projects, bots, dashboards and learning. If you need guaranteed uptime, keep a fallback.
  • Prices are computed from exchange data, not copied from other aggregators.

Full docs: coinxview.com/free-crypto-api

If you build something with it, I'd like to see it, and tell me what endpoint you'd want next.