coinpaprika-api — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited coinpaprika-api (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Independent cryptocurrency data aggregator since 2018. 12,000+ cryptocurrencies, 350+ exchanges, $2.4T+ market cap coverage. Free tier available with no API key required.
https://api.coinpaprika.com/v1/20,000 calls/month, 2,000 assets. No API key, no registration.
curl -s "https://api.coinpaprika.com/v1/tickers/btc-bitcoin" | jqhttps://api-pro.coinpaprika.com/v1/Requires API key in the Authorization header:
curl -s "https://api-pro.coinpaprika.com/v1/tickers/btc-bitcoin" \
-H "Authorization: ${COINPAPRIKA_API_KEY}" | jqNever hardcode API keys. Store in environment variables:
export COINPAPRIKA_API_KEY="your_key_here"| Plan | Price | Calls/month | Assets |
|---|---|---|---|
| Free | $0 | 20,000 | 2,000 |
| Starter | $99 | 400,000 | All |
| Pro | $199 | 1,000,000 | All |
| Business | $799 | 5,000,000 | All |
| Enterprise | Custom | Unlimited | All |
Rate limit: 10 requests/second per IP across all plans.
All endpoints below. Use the appropriate base URL for the tier.
https://github.com/coinpaprika/coinpaprika-cliCrypto market data from the terminal. 8,000+ coins, real-time prices, OHLCV, exchanges. Free tier included.
For CLI command reference, read references/cli-reference.md.
Hosted MCP server for Claude Desktop, Cursor, Windsurf, and any MCP client.
Add to claude_desktop_config.json or equivalent:
{
"mcpServers": {
"coinpaprika": {
"url": "https://mcp.coinpaprika.com/sse"
}
}
}No API key needed for the hosted version. Provides 30+ tools for querying coins, tickers, exchanges, OHLCV, contracts, tags, and search.
| Language | Repository |
|---|---|
| Go | https://github.com/coinpaprika/coinpaprika-api-go-client |
| Python | https://github.com/coinpaprika/coinpaprika-api-python-client |
| Node.js | https://github.com/coinpaprika/coinpaprika-api-nodejs-client |
| PHP | https://github.com/coinpaprika/coinpaprika-api-php-client |
| Swift | https://github.com/coinpaprika/coinpaprika-api-swift-client |
| Kotlin | https://github.com/coinpaprika/coinpaprika-api-kotlin-client |
Full API spec in Markdown for direct LLM consumption:
GET /global # Market overview dataGET /coins # List all coins
GET /coins/{coin_id} # Coin details (e.g., btc-bitcoin)
GET /coins/{coin_id}/events # Coin events
GET /coins/{coin_id}/exchanges # Exchanges listing a coin
GET /coins/{coin_id}/markets # Trading pairs for a coin
GET /coins/{coin_id}/ohlcv/historical # Historical OHLCV (?start, ?end, ?interval, ?limit, ?quote)
GET /coins/{coin_id}/ohlcv/latest # Last full day OHLCV
GET /coins/{coin_id}/ohlcv/today # Today's OHLCV (partial)
GET /coins/{coin_id}/twitter # DEPRECATEDGET /tickers # All tickers (?quotes=USD,BTC)
GET /tickers/{coin_id} # Specific coin ticker
GET /tickers/{coin_id}/historical # Historical ticks (?start, ?end, ?interval, ?limit, ?quote)GET /exchanges # List all exchanges
GET /exchanges/{exchange_id} # Exchange details
GET /exchanges/{exchange_id}/markets # Exchange marketsGET /contracts # List contract platforms
GET /contracts/{platform_id} # Contracts on a platform
GET /contracts/{platform_id}/{contract_address} # Ticker by contract (301 redirect)
GET /contracts/{platform_id}/{contract_address}/historical # Historical by contract (301 redirect)Note on contract ticker/historical: These return 301 redirects to /tickers/{coin_id}. The Location header may use http:// instead of https://. Handle the redirect manually by reading the Location header, fixing the scheme to https://, and making a second request with the Authorization header.
Verified response shapes:
GET /contracts returns a flat string array: ["btc-bitcoin", "eos-eos", "eth-ethereum", ...]GET /contracts/{platform_id} returns: [{"address": "0xa974...", "type": "ERC20", "id": "xin-mixin", "active": true}]GET /tags # List all tags
GET /tags/{tag_id} # Tag details
GET /tags/{tag_id}?additional_fields=coins # Tag with coin IDs
GET /tags/{tag_id}?additional_fields=coins,icos # Tag with coins and ICOsGET /people/{person_id} # Person details (e.g., vitalik-buterin)GET /search?q={query}&c={categories}&limit={n} # Search (categories: currencies,exchanges,icos,people,tags)
GET /price-converter?base_currency_id={from}"e_currency_id={to}&amount={n}GET /key/info # API key details and usageResponse: {"plan", "plan_started_at", "plan_status", "portal_url", "usage": {"message", "current_month": {"requests_made", "requests_left"}}}
GET /coins/mappings?coinpaprika={id} # ID mappings across providersQuery params (pass one): coinpaprika, coinmarketcap, coingecko, cryptocompare, isin, dti
Response: {"coinpaprika", "coinmarketcap", "coingecko", "cryptocompare", "isin", "dti", "updated_at"}
GET /changelog/ids # Coin ID changes (?page, ?limit)Response: [{"currency_id", "old_id", "new_id", "changed_at"}]
For the full OpenAPI 3.1 specification with all schemas, parameters, and response types, read references/openapi.yml. For CLI commands, read references/cli-reference.md. For the latest docs online: https://docs.coinpaprika.com/llms-full.txt
curl -s "https://api.coinpaprika.com/v1/tickers/btc-bitcoin?quotes=USD" | jq '.quotes.USD.price'curl -s "https://api.coinpaprika.com/v1/tickers" | jq 'sort_by(-.quotes.USD.market_cap) | .[0:10] | .[] | {name, symbol, price: .quotes.USD.price, market_cap: .quotes.USD.market_cap}'curl -s "https://api.coinpaprika.com/v1/coins/eth-ethereum/ohlcv/historical?start=2025-01-01&end=2025-01-31" | jqcurl -s "https://api.coinpaprika.com/v1/search?q=pepe&c=currencies&limit=5" | jq '.currencies'curl -s "https://api.coinpaprika.com/v1/contracts/eth-ethereum/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" -L | jqNote: This follows the 301 redirect automatically with -L. May need manual handling if Authorization header is required.
curl -s "https://api.coinpaprika.com/v1/tags/stablecoin?additional_fields=coins" | jq '.coins'Returns array of coin IDs: ["usdt-tether", "usdc-usdc", "dai-dai", ...]
curl -s "https://api.coinpaprika.com/v1/price-converter?base_currency_id=btc-bitcoin"e_currency_id=usd-us-dollars&amount=1" | jqPattern: {symbol}-{name} (lowercase, hyphens for spaces)
btc-bitcoin, eth-ethereum, usdt-tether, usdc-usd-coin, bnb-binance-coin, sol-solana, xrp-xrp, ada-cardano, doge-dogecoin, dot-polkadot, avax-avalanche, matic-polygon
eth-ethereum, bnb-binance-coin, matic-polygon, sol-solana, arb-arbitrum, avax-avalanche, op-optimism, base-base
binance, coinbase-exchange, kraken, bybit, okx, bitfinex, kucoin
| Parameter | Description | Example |
|---|---|---|
quotes | Quote currencies (comma-separated) | USD,BTC,ETH |
start | Start date (RFC3339 or yyyy-mm-dd) | 2025-01-01 |
end | End date | 2025-12-31 |
interval | OHLCV: 5m, 15m, 30m, 1h, 6h, 12h, 24h. Historical tickers: 5m, 10m, 15m, 30m, 45m, 1h, 2h, 3h, 6h, 12h, 24h, 1d, 7d, 14d, 30d, 90d, 365d | 24h |
limit | Results limit | 100 |
id, name, symbol, rankcirculating_supply, total_supply, max_supplyquotes.USD.price, quotes.USD.volume_24h, quotes.USD.market_capquotes.USD.percent_change_1h, percent_change_24h, percent_change_7d, percent_change_30dquotes.USD.ath_price, quotes.USD.ath_datetime_open, time_closeopen, high, low, closevolume, market_cap2025-01-01T00:00:00Z) or yyyy-mm-dd{symbol}-{name} (lowercase, hyphens for spaces)/tickers endpoint does NOT include tags. Use /tags/{id}?additional_fields=coins to get coin IDs by tag./coins/{id}/twitter endpoint is deprecated and may return errors.For DEX/on-chain data (pools, swaps, token prices by contract), use DexPaprika instead:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.