CoinMarketCapCoinMarketCap
PricingAPI StatusGet an API Key

© 2026 CoinMarketCap. All rights reserved.

xgithub
  • Overview
  • API Reference
  • AI Agent Hub
  • Changelog
  • FAQ
Start Here
    API OverviewQuick StartAuthenticationCommon Workflows
Using the API
    Standards and ConventionsRate limits and troubleshootingBest Practices
Start Here

CoinMarketCap API Quick Start

Use this page to make a successful first request against the CoinMarketCap Pro API. If you are evaluating the product, start with the production API first so you can see the normal authentication flow and the real response shape.

What you'll do

  1. Get an API key

    Sign up for a free Developer Portal account at pro.coinmarketcap.com/signup.

  2. Make one production request

    Start with a simple request against the live pro-api.coinmarketcap.com domain.

  3. Choose the right next step

    Use the rest of the docs to find the right endpoint family, workflow, and implementation guidance.

1. Get your API key

Create an account at pro.coinmarketcap.com/signup or sign in to your existing account in the Developer Portal. Your API key is available from the dashboard. If you are just getting started, the free Basic plan is the fastest way to evaluate the API.

2. Make your first production request

For a first request, start with GET /v1/cryptocurrency/listings/latest. It returns a ranked list of active cryptocurrencies and gives you a good first look at the standard response structure used across the API.

cURL

TerminalCode
curl -G 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest' \ --data-urlencode 'start=1' \ --data-urlencode 'limit=10' \ --data-urlencode 'convert=USD' \ -H 'Accept: application/json' \ -H 'X-CMC_PRO_API_KEY: YOUR_API_KEY'

Node.js

Code
async function run() { const url = new URL( "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest", ); url.search = new URLSearchParams({ start: "1", limit: "10", convert: "USD", }).toString(); const response = await fetch(url, { headers: { Accept: "application/json", "X-CMC_PRO_API_KEY": "YOUR_API_KEY", }, }); if (!response.ok) { throw new Error(`Request failed: ${response.status} ${response.statusText}`); } const data = await response.json(); console.log(data); } run().catch(console.error);

If you want a few more tested production examples for the same request, use Python 3 or Ruby:

Python 3
Code
import json import ssl import urllib.parse import urllib.request import certifi params = urllib.parse.urlencode( { "start": "1", "limit": "10", "convert": "USD", } ) request = urllib.request.Request( f"https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?{params}", headers={ "Accept": "application/json", "X-CMC_PRO_API_KEY": "YOUR_API_KEY", }, ) context = ssl.create_default_context(cafile=certifi.where()) with urllib.request.urlopen(request, context=context) as response: data = json.load(response) print(data)
Ruby
Code
require "json" require "net/http" require "uri" uri = URI("https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest") uri.query = URI.encode_www_form( start: "1", limit: "10", convert: "USD", ) request = Net::HTTP::Get.new(uri) request["Accept"] = "application/json" request["X-CMC_PRO_API_KEY"] = "YOUR_API_KEY" response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(request) end raise "Request failed: #{response.code} #{response.message}" unless response.is_a?(Net::HTTPSuccess) data = JSON.parse(response.body) puts JSON.pretty_generate(data)

3. Understand the response

Most CoinMarketCap API endpoints return:

  • data: the records you asked for
  • status: request metadata such as timestamp, credit_count, elapsed, and any error information

For this endpoint, data is a ranked list of cryptocurrencies. Once you can successfully fetch and inspect that payload, you are ready to move deeper into the API.

Important: Do not call the Pro API directly from client-side JavaScript in the browser. Your API key should stay on your backend or another trusted server-side environment.

4. Decide where to go next

Use the next page based on what you need:

  • Authentication if you want the full authentication model and API key handling details
  • Common workflows if you want to start from a use case such as latest prices, historical data, exchange data, or DEX data
  • Choose an endpoint if you want to browse the API by task and category
  • API response format, IDs, and timestamps if you want to understand identifiers, bundling, and response structure
  • Rate limits, errors, and troubleshooting if you want to understand the main failure cases early

Optional: Test in the sandbox

If you want to validate request shape without using production data, you can use the sandbox environment at sandbox-api.coinmarketcap.com. The sandbox returns mock data and should not be used in your live application.

Sandbox cURL

TerminalCode
curl -G 'https://sandbox-api.coinmarketcap.com/v1/cryptocurrency/listings/latest' \ --data-urlencode 'start=1' \ --data-urlencode 'limit=5000' \ --data-urlencode 'convert=USD' \ -H 'Accept: application/json' \ -H 'X-CMC_PRO_API_KEY: b54bcf4d-1bca-4e8e-9a24-22ff2c3d462c'

Optional: Postman collection

To speed up evaluation and team sharing, you can also use the CoinMarketCap Postman collection. Read more here.

API OverviewAuthentication
On this page
  • What you'll do
  • 1. Get your API key
  • 2. Make your first production request
  • 3. Understand the response
  • 4. Decide where to go next
  • Optional: Test in the sandbox
  • Optional: Postman collection
Javascript
Ruby