Skip to main content

coinmarketcap-sdk

PyPI version

The official Python SDK for the CoinMarketCap Pro API.

Installation

pip install coinmarketcap-sdk
# or
uv add coinmarketcap-sdk
# or
poetry add coinmarketcap-sdk

Note: The PyPI package is coinmarketcap-sdk, but you import it as coinmarketcap:

from coinmarketcap import CoinMarketCap

Quick Start

import os
from coinmarketcap import CoinMarketCap

cmc = CoinMarketCap(api_key=os.environ["CMC_PRO_API_KEY"])

# Use the namespace API — discover endpoints by category with autocomplete
quotes = cmc.cryptocurrency.quotes_latest(id="1,1027")  # 1 = BTC, 1027 = ETH
print(quotes)

Usage

All endpoints are grouped by category on the client instance:

from coinmarketcap import CoinMarketCap

cmc = CoinMarketCap(api_key="your-key")

cmc.cryptocurrency.quotes_latest(id="1")
cmc.cryptocurrency.listings_latest(limit=10)
cmc.global_metrics.quotes_latest()
cmc.exchange.info(id="270")

Async variants are available with the async_ prefix:

quotes = await cmc.cryptocurrency.async_quotes_latest(id="1,1027")

POST Endpoints (Request Models)

POST endpoints require typed request body models:

from coinmarketcap import CoinMarketCap
from coinmarketcap.models import DqueryBatchPriceRequestDTO

cmc = CoinMarketCap(api_key="your-key")

body = DqueryBatchPriceRequestDTO.from_dict({
    "tokens": [{"platform": "ethereum", "address": "0x..."}],
})
prices = cmc.token.batch_get_token_price(body=body)

All 400+ request/response models are available via coinmarketcap.models.

Configuration Options

cmc = CoinMarketCap(
    # Required for 'pro' mode
    api_key="your-api-key",

    # Optional
    environment="pro",      # 'pro' (default) or 'public'
    base_url=None,          # Override base URL entirely
    timeout=30.0,           # Request timeout in seconds (default: 30s)
    max_retries=2,          # Auto-retry count (default: 2)
)

Public (Keyless) Mode

Use the public API without an API key for publicly available endpoints:

from coinmarketcap import CoinMarketCap

cmc = CoinMarketCap(environment="public")

cmc.cryptocurrency.listings_latest(limit=10)

Error Handling

The SDK raises typed exception classes for common HTTP failures:

from coinmarketcap import CoinMarketCap, CMCError, RateLimitError, AuthenticationError

cmc = CoinMarketCap(api_key="your-key")

try:
    quotes = cmc.cryptocurrency.quotes_latest(id="1")
except RateLimitError as e:
    # e.headers carries response headers, e.g. Retry-After
    print("Rate limited, retry after:", e.headers.get("Retry-After"))
except AuthenticationError as e:
    print("Invalid API key:", e)
except CMCError as e:
    # HTTP-level failures: e.status_code, e.body, e.headers
    print(f"API error {e.status_code}:", e)

CMCError (and its subclasses) expose status_code, body, and headers. Transport-level failures raise APIConnectionError / APITimeoutError after retries are exhausted; the original httpx exception is available on .cause. APITimeoutError is a subclass of APIConnectionError, so catching the latter also catches timeouts.

Error Types

Status Code Error Class
400 BadRequestError
401 AuthenticationError
402 PaymentRequiredError
403 ForbiddenError
404 NotFoundError
429 RateLimitError
5xx InternalServerError
Network APIConnectionError
Timeout APITimeoutError

Automatic Retries

Requests that fail with retryable status codes are automatically retried with exponential backoff:

  • Retryable statuses: 408, 409, 429, 500, 502, 503, 504
  • Retryable network errors: connect/read/write/pool timeouts, connection errors, remote protocol errors, and proxy errors
  • Default: 2 retries with 500ms initial delay and exponential backoff, up to 8s max
  • 429 responses: Respects the Retry-After header when present

Both sync and async calls share the same retry behavior.

Disable retries:

cmc = CoinMarketCap(api_key="your-key", max_retries=0)

Timeout

Requests time out after 30 seconds by default:

cmc = CoinMarketCap(api_key="your-key", timeout=10.0)  # 10 seconds

Available Endpoints

All endpoints are available via cmc.<category>.<method>(). Categories include:

  • cmc.cryptocurrency — Quotes, listings, market pairs, OHLCV, categories
  • cmc.exchange — Exchange info, listings, market pairs
  • cmc.global_metrics — Global stats, fear & greed index
  • cmc.content — News, posts
  • cmc.community — Trending tokens, topics
  • cmc.token — DEX token data, pools, trades
  • cmc.derivatives — Derivatives market data
  • cmc.cmc_index — CMC 20/100 index

Requirements

  • Python >= 3.10

License

MIT

Release files for coinmarketcap-sdk 4.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coinmarketcap-sdk 4.0.3
File Size Uploaded
coinmarketcap_sdk-4.0.3.tar.gz 312.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for coinmarketcap-sdk 4.0.3
File Interpreter ABI Platform
coinmarketcap_sdk-4.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / coinmarketcap_sdk-4.0.3.tar.gz

Download URL coinmarketcap_sdk-4.0.3.tar.gz
Size 312.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a6feacef55400a0fa08a70b84a2e97b4d6ea2afe85d5cead2e19ff33da274a3e
BLAKE2b-256 checksum
How to use checksums
791edd5e4ba72720bfc05e2f0515b263ae7f80516bcffb1d1da0e9b068cdf770
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / coinmarketcap_sdk-4.0.3-py3-none-any.whl

Download URL coinmarketcap_sdk-4.0.3-py3-none-any.whl
Size 876.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7140ed6df27ad207fc222b4a2a2b4188ffcacece9faffab86b69aa24f9b0983c
BLAKE2b-256 checksum
How to use checksums
ce01192dd773bedd6cb19e034a7c319bc206c36ba5be9d3e0175454d3bdd6d80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

4.0.3 This release

2 release files

4.0.2

2 release files

4.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page