# CoinMarketCap Crypto Scraper (`kawsar/coinmarketcap-crypto-scraper`) Actor

CoinMarketCap scraper that pulls live prices, market caps, volume, supply data, ATH, tags, and website links for any coin, so you can track crypto markets, build dashboards, or feed data into spreadsheets and pipelines without needing an API key.

- **URL**: https://apify.com/kawsar/coinmarketcap-crypto-scraper.md
- **Developed by:** [Kawsar](https://apify.com/kawsar) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<p align="center">
  <img src="https://i.imgur.com/lHK2Mmr.png" alt="image" />
</p>
## CoinMarketCap Crypto Scraper

Pull live cryptocurrency data from CoinMarketCap. Point it at a list of coin slugs or symbols and you get structured JSON back, price, market cap, volume, supply, ATH, tags, website links, the lot. Works for individual lookups or bulk top-N listings.

### What it does

- Look up any coin by slug (bitcoin, ethereum), ticker (BTC, ETH), or a full CoinMarketCap URL
- Scrape the top N coins by market cap in one run, with automatic pagination
- Each result includes price, 24h/7d/30d percentage changes, market cap, volume, circulating and max supply, fully diluted market cap, dominance, 24h range, ATH/ATL, tags, website, block explorer, and logo URL

### Use cases

- Price and rank tracking for a watchlist
- Crypto dashboard data pipelines
- Research: categories, tags, official links, project descriptions
- Scheduled monitoring of market cap changes
- Exporting to Google Sheets, databases, or webhooks

### Input

| Field | Type | Description |
|---|---|---|
| `coins` | string list | Coin slugs, symbols, or CoinMarketCap URLs (e.g. bitcoin, BTC, https://coinmarketcap.com/currencies/ethereum/) |
| `coin` | string | Single coin slug or symbol |
| `scrapeListings` | boolean | Set to true to scrape top coins by market cap (see below) |
| `maxItems` | integer | Max coins to return (default 100, max 1000) |
| `requestTimeoutSecs` | integer | Timeout per request in seconds (default 30) |

#### Scrape top coins by market cap

Set `scrapeListings` to `true` to collect the top N coins ranked by market cap, without specifying any coin names. Use `maxItems` to control how many coins to return (default 100, max 1000).

The actor first fetches the ranked coin list, then pulls the full detail page for each coin concurrently. Every output field is populated, including tags, website links, ATH/ATL dates, and description.

```json
{
  "scrapeListings": true,
  "maxItems": 100
}
````

Top 200:

```json
{
  "scrapeListings": true,
  "maxItems": 200
}
```

Top 500 for a broad market snapshot:

```json
{
  "scrapeListings": true,
  "maxItems": 500
}
```

When `scrapeListings` is `true`, do not set `coins` or `coin`. If both are provided, the `coins` list takes priority and listings mode is skipped.

#### Example input — specific coins

```json
{
  "coins": ["bitcoin", "ethereum", "solana", "BNB", "XRP"],
  "maxItems": 5
}
```

### Output

Each dataset item represents one cryptocurrency:

```json
{
  "cmcId": 1,
  "name": "Bitcoin",
  "symbol": "BTC",
  "slug": "bitcoin",
  "rank": 1,
  "price": 76830.82,
  "priceChangePercentage1h": 0.18,
  "priceChangePercentage24h": -1.10,
  "priceChangePercentage7d": 0.89,
  "priceChangePercentage30d": 15.33,
  "marketCap": 1538293710643.87,
  "fullyDilutedMarketCap": 1613447237843.60,
  "volume24h": 34821953201.00,
  "circulatingSupply": 20021831,
  "totalSupply": 20021831,
  "maxSupply": 21000000,
  "marketCapDominance": 59.97,
  "high24h": 78270.43,
  "low24h": 76449.32,
  "allTimeHigh": 126198.07,
  "allTimeHighDate": "2025-01-20T00:00:00.000Z",
  "allTimeLow": 65.53,
  "allTimeLowDate": "2013-07-05T00:00:00.000Z",
  "category": "coin",
  "coinDescription": null,
  "coinTags": ["Mineable", "PoW", "SHA-256", "Store Of Value"],
  "websiteUrl": "https://bitcoin.org/",
  "explorerUrl": "https://blockchain.info/",
  "sourceCodeUrl": "https://github.com/bitcoin/bitcoin",
  "twitterUrl": null,
  "logoUrl": "https://s2.coinmarketcap.com/static/img/coins/128x128/1.png",
  "dateAdded": "2010-07-13T00:00:00.000Z",
  "lastUpdated": "2026-04-28T08:06:00.000Z",
  "sourceUrl": "https://coinmarketcap.com/currencies/bitcoin/",
  "scrapedAt": "2026-04-28T08:10:00.000Z",
  "error": null
}
```

### Output fields

| Field | Description |
|---|---|
| `cmcId` | CoinMarketCap internal ID |
| `name` | Full coin name |
| `symbol` | Ticker symbol |
| `slug` | URL slug |
| `rank` | Market cap rank |
| `price` | Current price in USD |
| `priceChangePercentage1h` | Price change over 1 hour (%) |
| `priceChangePercentage24h` | Price change over 24 hours (%) |
| `priceChangePercentage7d` | Price change over 7 days (%) |
| `priceChangePercentage30d` | Price change over 30 days (%) |
| `marketCap` | Market capitalization in USD |
| `fullyDilutedMarketCap` | Fully diluted market cap in USD |
| `volume24h` | 24-hour trading volume in USD |
| `circulatingSupply` | Circulating supply |
| `totalSupply` | Total supply |
| `maxSupply` | Maximum supply |
| `marketCapDominance` | Dominance percentage of total market |
| `high24h` | 24-hour price high in USD |
| `low24h` | 24-hour price low in USD |
| `allTimeHigh` | All-time high price in USD |
| `allTimeHighDate` | Date of all-time high |
| `allTimeLow` | All-time low price in USD |
| `allTimeLowDate` | Date of all-time low |
| `category` | Coin or token |
| `coinDescription` | Project description (where available) |
| `coinTags` | Tags and categories |
| `websiteUrl` | Official website |
| `explorerUrl` | Block explorer URL |
| `sourceCodeUrl` | Source code repository |
| `twitterUrl` | Twitter/X profile |
| `logoUrl` | Logo image URL (128x128 PNG) |
| `dateAdded` | Date first listed on CoinMarketCap |
| `lastUpdated` | Last data update timestamp |
| `scrapedAt` | When this item was scraped |
| `error` | Error message if scraping failed for this coin |

### Tips

- Listings mode paginates automatically. Set `maxItems` to 500 for a broader market snapshot.
- Symbols are case-insensitive. BTC, btc, and Btc all work the same way.
- You can paste full CoinMarketCap URLs directly into the coins list.
- `coinDescription` may be null for some coins regardless of mode. CoinMarketCap does not always have a description on file.
- For large listings runs (500+ coins), increase `requestTimeoutSecs` to 60 to avoid timeouts on slower connections.

### Integrations

The dataset output works with:

- Google Sheets via Apify's Google Sheets integration
- Webhooks for run-complete notifications
- Make (Integromat) or Zapier
- Apify API for programmatic access

# Actor input Schema

## `coins` (type: `array`):

List of cryptocurrency slugs (e.g. bitcoin, ethereum, solana) or ticker symbols (e.g. BTC, ETH, SOL). You can also paste full CoinMarketCap URLs.

## `coin` (type: `string`):

Scrape a single coin by slug or symbol. Combined with 'coins' list if both are provided.

## `scrapeListings` (type: `boolean`):

When enabled (and no 'coins' list is provided), scrapes the top coins ranked by market cap. Use maxItems to control how many coins to collect.

## `maxItems` (type: `integer`):

Maximum number of coins to return per run.

## `requestTimeoutSecs` (type: `integer`):

Per-request timeout in seconds. Increase for slow connections.

## Actor input object example

```json
{
  "coins": [
    "bitcoin",
    "BTC",
    "https://coinmarketcap.com/currencies/ethereum/"
  ],
  "coin": "bitcoin",
  "scrapeListings": false,
  "maxItems": 100,
  "requestTimeoutSecs": 30
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "coins": [
        "bitcoin",
        "ethereum",
        "solana"
    ],
    "coin": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("kawsar/coinmarketcap-crypto-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "coins": [
        "bitcoin",
        "ethereum",
        "solana",
    ],
    "coin": "",
}

# Run the Actor and wait for it to finish
run = client.actor("kawsar/coinmarketcap-crypto-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "coins": [
    "bitcoin",
    "ethereum",
    "solana"
  ],
  "coin": ""
}' |
apify call kawsar/coinmarketcap-crypto-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=kawsar/coinmarketcap-crypto-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CoinMarketCap Crypto Scraper",
        "description": "CoinMarketCap scraper that pulls live prices, market caps, volume, supply data, ATH, tags, and website links for any coin, so you can track crypto markets, build dashboards, or feed data into spreadsheets and pipelines without needing an API key.",
        "version": "0.0",
        "x-build-id": "my4WJnNLOufFF88MD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kawsar~coinmarketcap-crypto-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kawsar-coinmarketcap-crypto-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/kawsar~coinmarketcap-crypto-scraper/runs": {
            "post": {
                "operationId": "runs-sync-kawsar-coinmarketcap-crypto-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/kawsar~coinmarketcap-crypto-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-kawsar-coinmarketcap-crypto-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "coins": {
                        "title": "Coin slugs or symbols",
                        "type": "array",
                        "description": "List of cryptocurrency slugs (e.g. bitcoin, ethereum, solana) or ticker symbols (e.g. BTC, ETH, SOL). You can also paste full CoinMarketCap URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "coin": {
                        "title": "Single coin (slug or symbol)",
                        "type": "string",
                        "description": "Scrape a single coin by slug or symbol. Combined with 'coins' list if both are provided."
                    },
                    "scrapeListings": {
                        "title": "Scrape top coins by market cap",
                        "type": "boolean",
                        "description": "When enabled (and no 'coins' list is provided), scrapes the top coins ranked by market cap. Use maxItems to control how many coins to collect.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of coins to return per run.",
                        "default": 100
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Per-request timeout in seconds. Increase for slow connections.",
                        "default": 30
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
