CoinPaprika API
Free cryptocurrency API with no key: prices, market cap, volume, supply and developer activity for 2,500+ coins with generous limits. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the CoinPaprika API?
CoinPaprika is a free cryptocurrency market data API requiring no API key, covering more than 2,500 coins with prices, market capitalisation, volume, supply figures, ATH data and even developer activity metrics.
CoinPaprika sits between CoinGecko's rich data and CoinLore's permissiveness: no key required, a genuinely usable free limit, and more fundamental data than most free crypto APIs offer.
The all-time-high fields are a differentiator worth knowing about — `ath_price` and `percent_from_price_ath` let you show how far a coin has fallen from its peak, which most free APIs omit entirely.
Quick facts
- Base URL
https://api.coinpaprika.com/v1- Authentication
- No API key required on the free tier.
- Rate limit
- Around 20,000 requests per month on the free keyless tier.
- Pricing
- Free tier; paid plans for higher volume and more history.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the CoinPaprika API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Fetch a cryptocurrency ticker
GET https://api.coinpaprika.com/v1/tickers/btc-bitcoin
curl 'https://api.coinpaprika.com/v1/tickers/btc-bitcoin'const res = await fetch("https://api.coinpaprika.com/v1/tickers/btc-bitcoin");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.coinpaprika.com/v1/tickers/btc-bitcoin", timeout=20)
res.raise_for_status()
print(res.json()){
"id": "btc-bitcoin",
"name": "Bitcoin",
"symbol": "BTC",
"rank": 1,
"total_supply": 20072578,
"max_supply": 21000000,
"beta_value": 1.00392,
"first_data_at": "2010-07-17T00:00:00Z",
"last_updated": "2026-08-19T21:55:15Z",
"quotes": {
"USD": {
"price": 69717.90860905955,
"volume_24h": 32741485961.920124,
"volume_24h_change_24h": 120.63999938964844,
"market_cap": 1399418158552,
"market_cap_change_24h": 7.980000019073486,
"percent_change_15m": 0.28999999165534973,
"percent_change_30m": 0.23999999463558197,
"percent_change_1h": 0.8600000143051147,
"percent_change_6h": 1.5299999713897705,
"percent_change_12h": 8.350000381469727,
"percent_change_24h": 7.980000019073486,
"percent_change_7d": 10.0600004196167,
"percent_change_30d": 0,
"percent_change_1y": 0,
"ath_price": 126173.1777846797,
"ath_date": "2025-10-06T19:00:40Z",
"percent_from_price_ath": -44.74
}
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tickers/<coin-id> | path | Optional | Ticker for one coin. tickers/btc-bitcoin |
tickers | path | Optional | All coins. tickers |
quotes | string | Optional | Comma-separated quote currencies. USD,EUR |
coins/<coin-id> | path | Optional | Full coin profile including team and links. coins/btc-bitcoin |
Response fields
id / name / symbolstring- Coin identifiers — ids are slug-style like btc-bitcoin.
rankinteger- Market cap rank.
total_supply / max_supplyinteger- Supply figures.
quotes.USD.pricenumber- Current price — a real number, not a string.
quotes.USD.market_capnumber- Market capitalisation.
quotes.USD.percent_change_24hnumber- 24-hour change.
quotes.USD.ath_pricenumber- All-time high price.
quotes.USD.percent_from_price_athnumber- How far below the all-time high it currently sits.
What you can build with the CoinPaprika API
- Show crypto prices with all-time-high context
- Build a portfolio tracker with supply and market cap data
- Compare coins by distance from their peak
- Provide a fallback when CoinGecko rate limits are hit
Common errors and how to fix them
404
Coin ids are slug-style, not tickers.
Fix: Use btc-bitcoin rather than BTC. Fetch /coins once to build a symbol-to-id map.
Quotes missing for a currency
Only requested quote currencies are returned.
Fix: Pass quotes=USD,EUR explicitly if you need more than the default.
Monthly quota exhausted
The free tier is metered monthly, not per minute.
Fix: Cache aggressively; a burst is fine but sustained polling will exhaust the month.
CoinPaprika API — frequently asked questions
Does CoinPaprika need an API key?
No, the free tier works with no key at around 20,000 requests per month.
What coin id format does it use?
Slug-style ids combining symbol and name, such as btc-bitcoin or eth-ethereum — not bare ticker symbols.
What does percent_from_price_ath tell me?
How far the current price sits below its all-time high. Most free crypto APIs omit ATH data entirely, so this is a genuine differentiator.
How does it compare with CoinGecko?
CoinGecko has broader coverage and better documentation; CoinPaprika has a more predictable keyless limit and includes ATH and developer activity data. Both are worth having as fallbacks for each other.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
CoinPaprika is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.