CoinMarketCap Exchange API Skill
This skill covers CoinMarketCap APIs for centralized cryptocurrency exchanges (Binance, Coinbase, Kraken, etc.). Use these endpoints to retrieve exchange metadata, trading volumes, market pairs, and asset holdings.
Authentication
All requests require an API key in the header.
- Get your API key at https://pro.coinmarketcap.com/login
- Include the header
X-CMC_PRO_API_KEY: your-api-keyin all requests
curl -X GET "https://pro-api.coinmarketcap.com/v1/exchange/map" \
-H "X-CMC_PRO_API_KEY: your-api-key"
Base URL
https://pro-api.coinmarketcap.com
Common Use Cases
See use-cases.md for goal-based guidance on which endpoint to use:
- Get exchange information by name
- Find an exchange's CMC ID
- Get top exchanges by volume
- Get only spot exchanges (or only derivatives)
- Get current volume for a specific exchange
- Compare volume across multiple exchanges
- Get historical volume for an exchange
- Get all trading pairs on an exchange
- Find BTC pairs on an exchange
- Get perpetual/futures pairs on an exchange
- Check exchange reserves (proof-of-reserves)
- Find exchanges that list a specific coin
API Overview
| Endpoint | Description | Reference |
|---|---|---|
| GET /v1/exchange/map | Map exchange names to CMC IDs | references/info.md |
| GET /v1/exchange/info | Exchange metadata (logo, URLs, description) | references/info.md |
| GET /v1/exchange/listings/latest | List all exchanges with market data | references/listings.md |
| GET /v1/exchange/quotes/latest | Latest exchange volume and metrics | references/quotes.md |
| GET /v1/exchange/quotes/historical | Historical exchange volume data | references/quotes.md |
| GET /v1/exchange/market-pairs/latest | Trading pairs on an exchange | references/market-pairs.md |
| GET /v1/exchange/assets | Assets held by an exchange | references/assets.md |
Common Workflows
Get Exchange Information
Why: Most endpoints require CMC exchange IDs, not names. The map endpoint translates human-readable slugs to IDs.
- Call
/v1/exchange/mapwithslug=binanceto get the exchange ID - Call
/v1/exchange/infowith the ID to get full metadata
Compare Exchange Volumes
Why: Volume indicates liquidity and trustworthiness. Higher volume means better price execution and lower slippage.
- Call
/v1/exchange/listings/latestto get all exchanges ranked by volume - Use
sort=volume_24handsort_dir=descfor descending order
Analyze Trading Pairs
Why: Understanding available pairs helps users find where to trade specific assets and compare liquidity across venues.
- Get the exchange ID from
/v1/exchange/map - Call
/v1/exchange/market-pairs/latestwith that ID - Filter by
category=spotorcategory=derivativesas needed
Track Volume History
Why: Historical volume reveals trends. Declining volume may signal user exodus. Spikes may indicate wash trading or news events.
- Get the exchange ID from
/v1/exchange/map - Call
/v1/exchange/quotes/historicalwith date range parameters
Query Parameters
Most endpoints accept these common parameters:
| Parameter | Type | Description |
|---|---|---|
| id | string | CMC exchange ID (comma-separated for multiple) |
| slug | string | Exchange slug (e.g., "binance") |
| convert | string | Currency for price conversion (default: USD) |
| aux | string | Additional fields to include in response |
Error Handling
All responses include a status object:
{
"status": {
"timestamp": "2024-01-15T12:00:00.000Z",
"error_code": 0,
"error_message": null,
"credit_count": 1
},
"data": { }
}
Common Error Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 400 | Bad request (invalid parameters) |
| 401 | Unauthorized (invalid API key) |
| 403 | Forbidden (plan limit exceeded) |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
Rate Limits
Rate limits depend on your subscription plan. Check the credit_count in responses to track API credit usage. The X-CMC_PRO_API_KEY header must be present on every request.
Response Format
All responses return JSON with this structure:
{
"status": { },
"data": { }
}
The data field contains either an object (single item) or array (multiple items) depending on the endpoint.