CoinMarketCap APIcoinmarketcap.com ↗
Get real-time cryptocurrency prices, market caps, volumes, and rankings from CoinMarketCap via two simple endpoints. Supports fiat and crypto quote currencies.
What is the CoinMarketCap API?
The CoinMarketCap API exposes two endpoints that return live cryptocurrency market data directly from coinmarketcap.com. The list_coin_prices endpoint delivers paginated, sortable rows across the full coin listing — each row including price, market cap, 24-hour volume, rank, symbol, and slug — while get_coin_price returns a single-coin snapshot by slug with 11 response fields covering supply, volume, and timestamp data.
curl -X GET 'https://api.parse.bot/scraper/7a6ef2d2-4b50-49f4-903f-2eb1c2842773/list_coin_prices?convert=USD&sort_by=rank&sort_type=desc' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace coinmarketcap-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: CoinMarketCap SDK — browse the market listing, drill into a coin."""
from parse_apis.coinmarketcap_com_api import CoinMarketCap, SortBy, SortType, InputNotFound
client = CoinMarketCap()
# Top 5 coins by market cap, descending.
for coin in client.coin_summaries.list(sort_by=SortBy.MARKET_CAP, sort_type=SortType.DESC, limit=5):
print(f"{coin.name} ({coin.symbol}): ${coin.price:,.2f} rank={coin.rank}")
# Drill down: pick the first coin from a price-sorted page and fetch full detail.
top = client.coin_summaries.list(sort_by=SortBy.PRICE, sort_type=SortType.DESC, limit=1).first()
if top is not None:
detail = top.details()
print(f"{detail.name} YTD: {detail.percent_change_ytd}% 1Y: {detail.percent_change_1y}%")
# Direct lookup by slug, with error handling for an unknown coin.
try:
btc = client.coins.get(slug="bitcoin")
print(f"BTC market cap: ${btc.market_cap:,.0f} 24h vol: ${btc.volume_24h:,.0f}")
except InputNotFound:
print("Coin not found")
print("exercised: coin_summaries.list / details / coins.get")
Returns one page of the CoinMarketCap cryptocurrency market listing, one row per coin, with the price and market figures quoted in the requested currency. Paging is offset-based: start is the 1-based rank offset of the first row and limit the page size (clamped to 200); omitting them returns the first 100 rows. total_count is the site's total number of listed coins and has_more indicates a further page exists. When sorting by rank, the site may prepend a sponsored index row without a rank (rank null), so a page can hold one row more than limit. An unrecognised sort_by value is rejected before any request; a currency symbol the site does not know returns a stale_input (input_not_found) error. Single round trip.
| Param | Type | Description |
|---|---|---|
| limit | integer | Rows per page; values above 200 are clamped to 200. |
| start | integer | 1-based offset of the first row in the sorted listing. |
| convert | string | Quote currency symbol for price, market cap and volume figures; fiat (USD, EUR) and crypto (BTC, ETH) symbols were confirmed. Echoed back in each row's currency field. |
| sort_by | string | Field the listing is sorted by. |
| sort_type | string | Sort direction. Note that for sort_by=rank the site treats desc as rank 1 first. |
{
"type": "object",
"fields": {
"coins": "array of coin rows: id (CoinMarketCap numeric id), name, symbol, slug (use with get_coin_price), rank (null for sponsored rows), currency, price, percent_change_1h/24h/7d/30d, market_cap, fully_diluted_market_cap, volume_24h, volume_7d, high_24h, low_24h, all_time_high, all_time_low, circulating_supply, total_supply, max_supply (null when uncapped), market_pair_count, date_added, last_updated (ISO-8601 UTC)",
"limit": "effective page size after clamping",
"start": "offset echoed from the request",
"has_more": "true when a further page exists after this one",
"total_count": "total number of coins in the site's listing"
},
"sample": {
"data": {
"coins": [
{
"id": 1,
"name": "Bitcoin",
"rank": 1,
"slug": "bitcoin",
"price": 76794.73494359593,
"symbol": "BTC",
"low_24h": 76367.37470277929,
"currency": "USD",
"high_24h": 77415.65625172024,
"volume_7d": 153294540808.2736,
"date_added": "2010-07-13T00:00:00.000Z",
"market_cap": 1542347606859.759,
"max_supply": 21000000,
"volume_24h": 14254186282.789457,
"all_time_low": 0.04864654,
"last_updated": "2026-09-14T01:27:00.000Z",
"total_supply": 20084028,
"all_time_high": 126198.06960343386,
"market_pair_count": 12736,
"percent_change_1h": 0.28678027,
"percent_change_7d": -3.8638411,
"circulating_supply": 20084028,
"percent_change_24h": -0.6527113,
"percent_change_30d": 21.95047085,
"fully_diluted_market_cap": 1612689433815.51
}
],
"limit": 5,
"start": 1,
"has_more": true,
"total_count": 8159
},
"status": "success"
}
}About the CoinMarketCap API
Endpoints and Coverage
The API covers two access patterns. list_coin_prices returns one page of the CoinMarketCap market listing, with each coin row carrying fields including id, name, symbol, slug, rank, price, market cap, and 24-hour volume. Pagination is offset-based via the start (1-based rank offset) and limit (max 200) parameters. The response also includes total_count and has_more so you can walk the full listing page by page.
Quote Currency and Sorting
list_coin_prices accepts a convert parameter that shifts all price, market cap, and volume figures into the requested currency — both fiat symbols (USD, EUR) and crypto symbols (BTC, ETH) are supported. Sorting is controlled by sort_by and sort_type; note that sort_by=rank with sort_type=desc returns rank 1 first, which is the site's default behavior rather than a reversal.
Single-Coin Lookup
get_coin_price accepts a slug — the lowercase, hyphen-delimited identifier emitted in list_coin_prices responses (for example, bitcoin) — and returns a USD-quoted snapshot including price, market_cap, volume_24h, total_supply, date_added, last_updated, and the coin's current rank. Quotes are USD only. Passing an unrecognized slug returns a stale_input error with an input_not_found code.
Sponsored Rows and Data Freshness
The listing can include sponsored rows, which appear with a null value in the rank field. The last_updated timestamp on each coin reflects when CoinMarketCap last refreshed the quote, so freshness varies per asset rather than being a single global update time.
The CoinMarketCap API is a managed, monitored endpoint for coinmarketcap.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when coinmarketcap.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official coinmarketcap.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display a live crypto price ticker sorted by market cap rank using
list_coin_priceswithsort_by=rank. - Build a portfolio tracker that resolves current USD prices for a watchlist of coin slugs via
get_coin_price. - Compare market caps denominated in BTC by passing
convert=BTCtolist_coin_prices. - Page through the full CoinMarketCap listing to snapshot
total_supplyandvolume_24hfor all coins. - Alert on significant rank changes by periodically polling
rankfromget_coin_pricefor specific slugs. - Seed a database of listed coins with
date_added,id,symbol, andslugfromlist_coin_prices.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does CoinMarketCap have an official developer API?+
What does `get_coin_price` return, and how do I identify the right coin?+
price, market_cap, volume_24h, total_supply, rank, date_added, and last_updated. The coin is identified by its slug — a lowercase, hyphen-delimited string like bitcoin or usd-coin. The slug for any coin is available in the slug field of list_coin_prices responses.Can I get historical price data or OHLCV candles through this API?+
price and last_updated reflect the latest quote, and there are no historical series or candlestick fields. You can fork this API on Parse and revise it to add an endpoint covering historical data.Are there gaps in the listing data I should know about?+
rank set to null, so filtering by rank should account for those entries. The total_count field tells you the full size of the listing, and pages are capped at 200 rows per request via the limit parameter.