# CoinMarketCap Crypto Prices & Market Data Scraper (`parseforge/coinmarketcap-scraper`) Actor

Scrape real-time prices, market caps, volumes, supply, and 24h/7d/30d changes for 10,000+ cryptocurrencies from CoinMarketCap. No API key required.

- **URL**: https://apify.com/parseforge/coinmarketcap-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.25 / 1,000 result items

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

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)

## 🪙 CoinMarketCap Crypto Prices & Market Data Scraper

> 🚀 **Pull live prices, market caps, volumes, supply, and 24h/7d/30d changes for 10,000+ cryptocurrencies in seconds.** Sort and paginate the full CoinMarketCap ranking, or fetch the full profile (description, links, all-time-high stats, tag taxonomy) for any coin by slug. No API key, no registration, no manual CSV wrangling.

> 🕒 **Last updated:** 2026-05-16 · **📊 40+ fields** per record · **10,000+ coins covered** · **25 quote currencies** · **Listings + full profiles in one Actor**

CoinMarketCap is the industry-standard market data hub for cryptocurrencies. This Actor wraps CoinMarketCap's public market-data surface behind a single Apify input and returns each cryptocurrency as a clean, flat row in your dataset. Pick a mode (`listings` for the paginated rank table, or `details` for explicit coin profiles), choose a quote currency, optionally enrich with full profiles, and the Actor handles pagination, retries, residential-proxy routing, and field flattening. Every coin row arrives with stable, well-typed keys: prices, supply numbers, percent changes across nine windows, 24h highs and lows, and the URL back to the coin's CoinMarketCap page.

The output schema is unified across modes. Listings rows carry the full market snapshot (rank, price, market cap, circulating supply, percent changes, dominance, market-pair count, tags). Details rows add description, website, social links, source-code and explorer URLs, all-time-high and all-time-low values with timestamps, and the category taxonomy CoinMarketCap maintains. Enable `includeFullDetails` on listings mode to merge both into one row per coin. Failed records carry an `error` field so a single broken slug never derails a 10,000-coin pull.

| 🎯 Target Audience | 🛠 Primary Use Cases |
|---|---|
| Crypto traders and portfolio managers | Real-time portfolio valuation and risk dashboards |
| Algorithmic traders and quants | Market-cap weighted index reconstruction and backtests |
| DeFi protocols and crypto product teams | Live token feeds for swap rates, leaderboards, and analytics |
| Crypto journalists and content creators | Daily snapshots of price moves, ATHs, and altcoin discovery |
| Investment funds and treasuries | Cross-validation of CoinGecko or exchange-feed pricing |
| Data scientists and ML practitioners | Training sets for forecasting, anomaly detection, and clustering |

---

### 📋 What the CoinMarketCap Scraper does

- 📊 **Full market snapshot.** Pulls the live CoinMarketCap ranking with price, market cap, fully-diluted valuation, 24h volume, circulating supply, total supply, max supply, market-pair count, and dominance, all in one call.
- 🔁 **Nine percent-change windows.** Every coin row includes 1h, 24h, 7d, 30d, 60d, 90d, and 1y price-change percentages plus YTD movement, ready for screening and sorting.
- 🪪 **Full coin profiles.** Switch to `details` mode (or flip `includeFullDetails`) to pull description, official website, social links, source code, explorer URLs, whitepaper, all-time-high and all-time-low with dates, and the full tag and category taxonomy.
- 💱 **25 quote currencies.** USD, EUR, GBP, JPY, CNY, INR, KRW, RUB, BRL, BTC, ETH, and 15 more. One toggle and every price-side number rebases for you.
- 🎚️ **Sort and filter.** Rank by market cap, 24h volume, price, percent change, name, symbol, supply, or date added. Restrict to native coins, tokens only, or both. Skip the first N coins with `startRank` for paginated jobs.
- 🛰️ **Pagination handled for you.** The Actor walks the listing in 200-coin pages until your `maxItems` is hit. Free runs cap at 10; paid runs can pull up to 1,000,000.

Each record carries a stable shape: identifiers (`name`, `symbol`, `slug`, `rank`, `logoUrl`, `url`), market data (`price`, `marketCap`, `fullyDilutedMarketCap`, `volume24h`, `circulatingSupply`, `totalSupply`, `maxSupply`, `marketCapDominance`), price action (`percentChange1h` through `percentChange1y`, `high24h`, `low24h`, `allTimeHigh`, `allTimeHighDate`), taxonomy (`tags`, `category`), and profile fields (`description`, `website`, `twitter`, `reddit`, `sourceCode`, `explorer`, `whitepaper`). Every record also carries `lastUpdated` from CoinMarketCap plus a `scrapedAt` timestamp from your run.

> 💡 **Why it matters:** Many price feeds publish from a single exchange or rely on TradingView passthroughs. CoinMarketCap aggregates across 12,000+ market pairs per major coin, giving a wider, more decentralised view than any single venue. Pulling CMC data alongside CoinGecko is the standard cross-validation step for funds and product teams that need to spot stale or single-source prices.

---

### 🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing mode switching, full-detail enrichment, multi-currency quoting, and a sample portfolio refresh pipeline reading from the dataset.

---

### ⚙️ Input

<table>
<tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr>
<tr><td><code>mode</code></td><td>enum</td><td>No</td><td><code>listings</code> for the paginated rank table (default), <code>details</code> for explicit coin profiles by slug.</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td>No</td><td>Cap on records pushed. Free plans cap at 10. Paid plans up to 1,000,000.</td></tr>
<tr><td><code>convert</code></td><td>enum</td><td>No</td><td>Quote currency. USD, EUR, GBP, JPY, CNY, KRW, INR, RUB, BRL, CAD, AUD, CHF, HKD, SGD, MXN, TRY, ZAR, AED, PLN, SEK, NOK, DKK, ARS, NGN, BTC, ETH. Default <code>USD</code>.</td></tr>
<tr><td><code>sortBy</code></td><td>enum</td><td>No</td><td>Listings sort field. <code>market_cap</code>, <code>name</code>, <code>symbol</code>, <code>date_added</code>, <code>price</code>, <code>circulating_supply</code>, <code>total_supply</code>, <code>max_supply</code>, <code>volume_24h</code>, <code>percent_change_1h</code>, <code>percent_change_24h</code>, <code>percent_change_7d</code>.</td></tr>
<tr><td><code>sortType</code></td><td>enum</td><td>No</td><td><code>desc</code> (default) or <code>asc</code>.</td></tr>
<tr><td><code>cryptoType</code></td><td>enum</td><td>No</td><td><code>all</code> (default), <code>coins</code> (native, own-chain assets), or <code>tokens</code> (issued on another chain).</td></tr>
<tr><td><code>startRank</code></td><td>integer</td><td>No</td><td>1-based starting rank for listings. Use to skip the top N and paginate deep.</td></tr>
<tr><td><code>includeFullDetails</code></td><td>boolean</td><td>No</td><td>Listings mode only. When true, every listed coin is followed up with a detail call. Slower but adds description, links, ATH stats, and category taxonomy.</td></tr>
<tr><td><code>slugs</code></td><td>array of strings</td><td>For details mode</td><td>CoinMarketCap slugs like <code>bitcoin</code>, <code>ethereum</code>, <code>solana</code>. The slug is the lowercase segment in <code>coinmarketcap.com/currencies/{slug}/</code>.</td></tr>
</table>

Example: top 50 coins by market cap, USD-quoted.

```json
{
  "mode": "listings",
  "maxItems": 50,
  "convert": "USD",
  "sortBy": "market_cap",
  "sortType": "desc"
}
````

Example: full profiles for three named coins, EUR-quoted.

```json
{
  "mode": "details",
  "slugs": ["bitcoin", "ethereum", "solana"],
  "convert": "EUR",
  "maxItems": 3
}
```

> ⚠️ **Good to Know:** Listings mode is the fast path and returns the most fields per request. Use `includeFullDetails: true` if you want description and link fields on every coin, but be aware it triggers one extra HTTP call per coin and slows large runs. For just a handful of named coins, `details` mode is the cleanest fit.

***

### 📊 Output

Every record is one row in your dataset. Listings rows hold the ranked market snapshot. Details rows (or listings rows with `includeFullDetails: true`) add the full profile.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🖼️ `logoUrl` | string | `https://s2.coinmarketcap.com/static/img/coins/64x64/1.png` |
| 🏷️ `name` | string | `Bitcoin` |
| 🔤 `symbol` | string | `BTC` |
| 🆔 `slug` | string | `bitcoin` |
| 🥇 `rank` | number | `1` |
| 🔗 `url` | string | `https://coinmarketcap.com/currencies/bitcoin/` |
| 💱 `quoteCurrency` | string | `USD` |
| 💰 `price` | number | `78001.42` |
| 🏦 `marketCap` | number | `1562375602145.11` |
| 🔮 `fullyDilutedMarketCap` | number | `1638029966168.27` |
| 📊 `volume24h` | number | `34381011034.0` |
| 🌊 `circulatingSupply` | number | `20030090` |
| 🪙 `totalSupply` | number | `20030090` |
| 🧊 `maxSupply` | number | `21000000` |
| ⏱️ `percentChange1h` | number | `-0.45` |
| 📉 `percentChange24h` | number | `-3.16` |
| 📈 `percentChange7d` | number | `-2.79` |
| 📈 `percentChange30d` | number | `4.22` |
| 📈 `percentChange90d` | number | `10.61` |
| 📈 `percentChange1y` | number | `-24.73` |
| 👑 `marketCapDominance` | number | `60.28` |
| 🔼 `high24h` | number | `80749.41` |
| 🔽 `low24h` | number | `77895.17` |
| 🏔️ `allTimeHigh` | number | `126198.07` |
| 📆 `allTimeHighDate` | datetime | `2025-10-06T18:59:00.000Z` |
| 🕳️ `allTimeLow` | number | `0.0486` |
| 📆 `allTimeLowDate` | datetime | `2010-07-14T19:24:00.000Z` |
| 🔁 `marketPairCount` | number | `12635` |
| 📅 `dateAdded` | datetime | `2010-07-13T00:00:00.000Z` |
| 🏷️ `tags` | string\[] | `["mineable", "pow", "store-of-value"]` |
| 📂 `category` | string | `Store Of Value` |
| 📝 `description` | string | `### What Is Bitcoin (BTC)? ...` |
| 🌐 `website` | string | `https://bitcoin.org/` |
| 🐦 `twitter` | string | `https://twitter.com/Ripple` |
| 👽 `reddit` | string | `https://reddit.com/r/bitcoin` |
| 💻 `sourceCode` | string | `https://github.com/bitcoin/bitcoin` |
| 🔍 `explorer` | string\[] | `["https://blockchain.info/", "https://blockchair.com/bitcoin"]` |
| 📄 `whitepaper` | string | `https://bitcoin.org/bitcoin.pdf` |
| 🕒 `lastUpdated` | datetime | `2026-05-16T09:30:00.000Z` |
| ⏱️ `scrapedAt` | datetime | `2026-05-16T09:32:21.667Z` |
| ⚠️ `error` | string | only present on failed records |

#### 📦 Sample records

<details>
<summary>Typical record: Bitcoin with full profile enrichment</summary>

```json
{
  "logoUrl": "https://s2.coinmarketcap.com/static/img/coins/64x64/1.png",
  "name": "Bitcoin",
  "symbol": "BTC",
  "slug": "bitcoin",
  "rank": 1,
  "url": "https://coinmarketcap.com/currencies/bitcoin/",
  "quoteCurrency": "USD",
  "price": 78001.42696039384,
  "marketCap": 1562375602145.115,
  "fullyDilutedMarketCap": 1638029966168.27,
  "volume24h": 34381011034.00527,
  "circulatingSupply": 20030090,
  "totalSupply": 20030090,
  "maxSupply": 21000000,
  "percentChange1h": -0.45663691,
  "percentChange24h": -3.16186515,
  "percentChange7d": -2.79805229,
  "percentChange30d": 4.21540421,
  "percentChange90d": 10.58569653,
  "percentChange1y": -24.73568968,
  "marketCapDominance": 60.2801,
  "high24h": 80749.41,
  "low24h": 77895.17,
  "allTimeHigh": 126198.06960343386,
  "allTimeHighDate": "2025-10-06T18:59:00.000Z",
  "allTimeLow": 0.04864654,
  "allTimeLowDate": "2010-07-14T19:24:00.000Z",
  "dateAdded": "2010-07-13T00:00:00.000Z",
  "category": "Store Of Value",
  "website": "https://bitcoin.org/",
  "sourceCode": "https://github.com/bitcoin/bitcoin",
  "whitepaper": "https://bitcoin.org/bitcoin.pdf",
  "lastUpdated": "2026-05-16T09:30:00.000Z",
  "scrapedAt": "2026-05-16T09:32:21.667Z"
}
```

</details>

<details>
<summary>Edge case: stablecoin pegged near $1, no max supply</summary>

```json
{
  "logoUrl": "https://s2.coinmarketcap.com/static/img/coins/64x64/825.png",
  "name": "Tether USDt",
  "symbol": "USDT",
  "slug": "tether",
  "rank": 3,
  "url": "https://coinmarketcap.com/currencies/tether/",
  "quoteCurrency": "USD",
  "price": 0.9993848460443433,
  "marketCap": 189740694936.38,
  "fullyDilutedMarketCap": 193076973990.08,
  "volume24h": 72834696520.94,
  "circulatingSupply": 189857486520.22,
  "totalSupply": 193195819162.44,
  "maxSupply": null,
  "percentChange24h": -0.03010692,
  "percentChange7d": -0.0452261,
  "allTimeHigh": 1.2154899835586548,
  "allTimeHighDate": "2015-02-25T17:04:26.000Z",
  "allTimeLow": 0.5683140158653259,
  "allTimeLowDate": "2015-03-02T01:49:26.000Z",
  "category": "Stablecoin",
  "website": "https://tether.to",
  "twitter": "https://twitter.com/tether",
  "sourceCode": null
}
```

</details>

<details>
<summary>Sparse: XRP with capped supply, no Reddit link surfaced</summary>

```json
{
  "logoUrl": "https://s2.coinmarketcap.com/static/img/coins/64x64/52.png",
  "name": "XRP",
  "symbol": "XRP",
  "slug": "xrp",
  "rank": 5,
  "url": "https://coinmarketcap.com/currencies/xrp/",
  "quoteCurrency": "USD",
  "price": 1.4061289589739145,
  "marketCap": 86939611270.77,
  "fullyDilutedMarketCap": 140612895897.39,
  "volume24h": 2222291136.68,
  "circulatingSupply": 61829045420,
  "totalSupply": 99985666473,
  "maxSupply": 100000000000,
  "allTimeHigh": 3.841939926147461,
  "allTimeHighDate": "2018-01-04T07:14:01.000Z",
  "category": "Arrington XRP Capital Portfolio",
  "website": "https://xrpl.org/",
  "twitter": "https://twitter.com/Ripple",
  "sourceCode": "https://github.com/ripple/rippled",
  "reddit": null
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 📊 | **Full market snapshot.** Live price, market cap, FDV, 24h volume, full supply numbers, dominance, and market-pair count for 10,000+ coins. |
| ⏱️ | **Nine price-change windows.** 1h, 24h, 7d, 30d, 60d, 90d, 1y, plus YTD. Ready for momentum scans without extra math. |
| 🪪 | **Full coin profiles.** Description, website, Twitter, Reddit, source code, explorer URLs, whitepaper, all-time-high and all-time-low with dates, and tag taxonomy. |
| 💱 | **25 quote currencies.** Rebase the whole feed into USD, EUR, GBP, JPY, BTC, ETH, and 19 more with one toggle. |
| 🧭 | **Sort and filter built in.** Rank by market cap, volume, price, percent change, supply, or date added. Restrict to native coins or tokens only. |
| 🛡️ | **Residential proxy routing.** Requests rotate through an Apify residential session for stable access from anywhere. |
| 🧰 | **Unified schema across modes.** Listings, details, and enriched listings share the same flat row shape. Mix-and-match runs flow into one dataset. |

> 📊 CoinMarketCap aggregates across **12,000+ market pairs** for top-tier coins and is the most-cited price reference in cryptocurrency journalism and academic research.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ CoinMarketCap Scraper** *(this Actor)* | Pay per item | 10,000+ coins, 25 quote currencies, full profiles | Live | Sort, type, rank window, currency | Zero config |
| Direct REST integration | Quota-limited keys | Full public surface | Live | Self-built | Build your own fetch, retry, parser |
| Paid market-data APIs | Subscription, often four-figure | Deep but locked | Live | Vendor-defined | Heavy onboarding |
| Single-exchange tickers | Free | One venue only | Live | None | Per-exchange wiring |
| Manual CSV exports | Free | Static snapshot | Stale | None | Manual refresh |

When you want a clean, multi-currency feed of crypto market data without writing your own fetch-and-flatten layer or paying for a terminal, this Actor is the path of least resistance.

***

### 🚀 How to use

1. 🔐 **Sign up.** Create a free [Apify account](https://console.apify.com/sign-up?fpr=vmoqkp) (no card required for the free tier).
2. 🔍 **Find the Actor.** Search "CoinMarketCap Scraper" in the Apify Store, or open it directly from the ParseForge collection.
3. ⚙️ **Set inputs.** Pick a mode, choose a quote currency, set sort and filter options, and cap `maxItems`.
4. ▶️ **Run.** Click Start. Watch the live log as each page is fetched, retried on transient errors, and pushed.
5. 📥 **Export.** Pull results as JSON, CSV, Excel, RSS, or push directly into Sheets, Slack, BigQuery, or any webhook.

> ⏱️ Total time: under 2 minutes from sign-up to first download.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%">

#### 🧮 Crypto traders and quants

- Reconstruct a market-cap weighted index across the top 100 coins
- Run momentum scans across 1h, 24h, 7d, and 30d percent changes
- Cross-validate CMC against CoinGecko or exchange feeds
- Power a paper-trading loop with live ranked snapshots

</td>
<td width="50%">

#### 💼 Portfolio managers and funds

- Daily portfolio valuation refresh in your preferred fiat
- Track dominance shifts between BTC, ETH, and stables
- Surface all-time-high gaps for narrative pieces
- Maintain a private market-cap and volume archive

</td>
</tr>
<tr>
<td width="50%">

#### 🛠️ DeFi protocols and app builders

- Drive a live token leaderboard inside your dApp
- Embed multi-currency pricing in a wallet or swap UI
- Surface category tags (Layer 1, DeFi, Stablecoin) on token pages
- Auto-populate token-detail pages with description and links

</td>
<td width="50%">

#### 📰 Journalists and content creators

- Daily snapshots of top movers for newsletters and threads
- Discover altcoins by sorting on volume or 7d percent change
- Build comparative tables across multiple quote currencies
- Pull historical context (date added, ATH date) for explainers

</td>
</tr>
</table>

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

</td>
</tr>
</table>

***

### 🔌 Automating CoinMarketCap Scraper

Run on demand from your own code, or set it on a schedule.

- **[Node.js client](https://docs.apify.com/api/client/js)** for JavaScript and TypeScript callers
- **[Python client](https://docs.apify.com/api/client/python)** for data-science workflows and notebooks
- **[REST API docs](https://docs.apify.com/api/v2)** for any language with HTTP

Use [Apify Schedules](https://docs.apify.com/platform/schedules) to pull a market snapshot every 5 minutes, refresh the top 500 every hour, or run a daily full-portfolio valuation at a fixed time. Combine with Webhooks to drop new records into Sheets, a database, or your trading stack.

***

### ❓ Frequently Asked Questions

<details>
<summary>📦 <b>Can I use the data commercially?</b></summary>
Yes. CoinMarketCap's market-data pages are publicly accessible and the data is widely redistributed across the industry. You are responsible for complying with CoinMarketCap's Terms of Service and any applicable redistribution rules. The Actor itself adds no extra restrictions.
</details>

<details>
<summary>💳 <b>Do I need a paid Apify plan?</b></summary>
No. The free Apify tier returns up to 10 records per run, which is enough to validate the schema and verify both listings and details modes. Paid plans unlock up to 1,000,000 items per run.
</details>

<details>
<summary>🚨 <b>What happens if a run fails?</b></summary>
Failed records are pushed to the dataset with an `error` field describing the cause (unknown slug, transient network error, etc.). The Actor keeps going so one bad slug does not break the whole run.
</details>

<details>
<summary>⚖️ <b>Is this legal?</b></summary>
The Actor reads CoinMarketCap's public market-data surface. It does not bypass any authentication, paywall, or technical protection measure. You are bound by CoinMarketCap's Terms of Service and your local laws. Always check the source terms for the use you have in mind.
</details>

<details>
<summary>🪙 <b>How many coins are covered?</b></summary>
CoinMarketCap currently lists over 10,000 active cryptocurrencies. Listings mode walks the full ranked table; pass `maxItems` to cap how deep you want to pull.
</details>

<details>
<summary>💱 <b>Which quote currencies can I use?</b></summary>
USD, EUR, GBP, JPY, CNY, KRW, INR, RUB, BRL, CAD, AUD, CHF, HKD, SGD, MXN, TRY, ZAR, AED, PLN, SEK, NOK, DKK, ARS, NGN, BTC, and ETH. Set `convert` to rebase every price-side number in the run.
</details>

<details>
<summary>🧭 <b>What sort options are available?</b></summary>
Rank by market cap, name, symbol, date added, price, circulating supply, total supply, max supply, 24h volume, 1h percent change, 24h percent change, or 7d percent change. Pair with `sortType: asc` or `desc`.
</details>

<details>
<summary>🆔 <b>How do I find a coin's slug?</b></summary>
The slug is the lowercase URL segment on coinmarketcap.com/currencies/{slug}/. Bitcoin is `bitcoin`, Ethereum is `ethereum`, Solana is `solana`. Symbols (BTC, ETH) are not slugs.
</details>

<details>
<summary>🔁 <b>How fresh is the data?</b></summary>
CoinMarketCap's market endpoints refresh roughly every 60 seconds. `lastUpdated` on each record shows the upstream timestamp; `scrapedAt` shows when this Actor pulled the row.
</details>

<details>
<summary>🪪 <b>What is the difference between listings and details mode?</b></summary>
Listings mode walks the paginated rank table and returns the live market snapshot for each coin (price, market cap, supply, percent changes, tags). Details mode fetches the full coin profile for a specific list of slugs (description, links, ATH stats, category). Toggle `includeFullDetails` on listings mode to get both shapes merged into one row per coin.
</details>

<details>
<summary>🏷️ <b>What are tags and categories?</b></summary>
CoinMarketCap classifies coins by algorithm, ecosystem, narrative, and portfolio. A coin can carry dozens of tags. `category` surfaces the primary CMC-defined category for the coin in details mode. The full tag slug list ships on every record.
</details>

<details>
<summary>📡 <b>Does the Actor use a proxy?</b></summary>
Yes. Requests rotate through Apify's residential proxy pool for stable access. No configuration is needed on your side.
</details>

***

### 🔌 Integrate with any app

- [**Zapier**](https://apify.com/integrations/zapier) - hundreds of no-code triggers and actions
- [**Make**](https://apify.com/integrations/make) - visual automation builder
- [**n8n**](https://apify.com/integrations/n8n) - self-hosted workflow automation
- [**Slack**](https://apify.com/integrations/slack) - drop daily market snapshots into a channel
- [**Google Sheets**](https://apify.com/integrations/google-drive) - auto-append crypto rows to a spreadsheet
- [**Airbyte**](https://apify.com/integrations/airbyte) - pipe results into your data warehouse

***

### 🔗 Recommended Actors

- [**📊 FRED Economic Data Scraper**](https://apify.com/parseforge/fred-scraper) - US macroeconomic indicators for cross-asset and rate-environment context
- [**📜 SEC 13F Holdings Scraper**](https://apify.com/parseforge/sec-13f-holdings-scraper) - institutional fund holdings filed quarterly with the SEC
- [**🛡️ FINRA BrokerCheck Scraper**](https://apify.com/parseforge/finra-brokercheck-scraper) - regulatory backgrounds and licensing for US broker-dealers and advisors
- [**🚀 Crunchbase Scraper**](https://apify.com/parseforge/crunchbase-scraper) - startup, funding, and investor data spanning the web3 ecosystem
- [**🌎 World Bank Scraper**](https://apify.com/parseforge/world-bank-scraper) - macroeconomic indicators for cross-country and FX research

> 💡 Pro Tip: browse the complete [ParseForge collection](https://apify.com/parseforge) for more market, regulatory, and finance scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA)

***

> **Disclaimer.** This Actor reads CoinMarketCap's public market-data surface. It does not bypass authentication, paywalls, or technical protection measures. You are responsible for using the resulting data in compliance with CoinMarketCap's Terms of Service and your local laws. ParseForge does not affiliate with, endorse, or claim any partnership with CoinMarketCap.

# Actor input Schema

## `mode` (type: `string`):

Listings = top-N paginated market table (rank/sort/filter). Details = pull the full coin profile (description, links, all-time-high stats, tag taxonomy) for explicit slugs.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000.

## `convert` (type: `string`):

Currency to quote prices and market caps in. Applies to both listings and details modes.

## `sortBy` (type: `string`):

Field to rank coins by in listings mode. Ignored in details mode.

## `sortType` (type: `string`):

Ascending or descending order for the sort field.

## `cryptoType` (type: `string`):

Restrict listings to native coins (own chain) or tokens (issued on another chain) or include both.

## `startRank` (type: `integer`):

1-based starting rank for listings (skip the first N coins). Use 1 to start from the top of the market.

## `includeFullDetails` (type: `boolean`):

If enabled, every listed coin is followed up with a detail call (description, website, social links, all-time-high stats, tag taxonomy). Slower but much richer output.

## `slugs` (type: `array`):

Slugs to pull full profiles for, e.g. "bitcoin", "ethereum", "solana". The slug is the lowercase URL segment on coinmarketcap.com/currencies/{slug}/.

## Actor input object example

```json
{
  "mode": "listings",
  "maxItems": 10,
  "convert": "USD",
  "sortBy": "market_cap",
  "sortType": "desc",
  "cryptoType": "all",
  "startRank": 1,
  "includeFullDetails": false,
  "slugs": [
    "bitcoin",
    "ethereum",
    "solana"
  ]
}
```

# Actor output Schema

## `overview` (type: `string`):

Compact table view with the most-used fields.

## `fullData` (type: `string`):

Complete dataset with every extracted field.

# 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 = {
    "maxItems": 10,
    "slugs": [
        "bitcoin",
        "ethereum",
        "solana"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/coinmarketcap-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 = {
    "maxItems": 10,
    "slugs": [
        "bitcoin",
        "ethereum",
        "solana",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/coinmarketcap-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 '{
  "maxItems": 10,
  "slugs": [
    "bitcoin",
    "ethereum",
    "solana"
  ]
}' |
apify call parseforge/coinmarketcap-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CoinMarketCap Crypto Prices & Market Data Scraper",
        "description": "Scrape real-time prices, market caps, volumes, supply, and 24h/7d/30d changes for 10,000+ cryptocurrencies from CoinMarketCap. No API key required.",
        "version": "0.1",
        "x-build-id": "WtELXmRbc8pruvKk5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~coinmarketcap-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-coinmarketcap-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/parseforge~coinmarketcap-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-coinmarketcap-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/parseforge~coinmarketcap-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-coinmarketcap-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "listings",
                            "details"
                        ],
                        "type": "string",
                        "description": "Listings = top-N paginated market table (rank/sort/filter). Details = pull the full coin profile (description, links, all-time-high stats, tag taxonomy) for explicit slugs.",
                        "default": "listings"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000."
                    },
                    "convert": {
                        "title": "Quote Currency",
                        "enum": [
                            "USD",
                            "EUR",
                            "GBP",
                            "JPY",
                            "CNY",
                            "KRW",
                            "INR",
                            "RUB",
                            "BRL",
                            "CAD",
                            "AUD",
                            "CHF",
                            "HKD",
                            "SGD",
                            "MXN",
                            "TRY",
                            "ZAR",
                            "AED",
                            "PLN",
                            "SEK",
                            "NOK",
                            "DKK",
                            "ARS",
                            "NGN",
                            "BTC",
                            "ETH"
                        ],
                        "type": "string",
                        "description": "Currency to quote prices and market caps in. Applies to both listings and details modes.",
                        "default": "USD"
                    },
                    "sortBy": {
                        "title": "Sort By (listings)",
                        "enum": [
                            "market_cap",
                            "name",
                            "symbol",
                            "date_added",
                            "price",
                            "circulating_supply",
                            "total_supply",
                            "max_supply",
                            "volume_24h",
                            "percent_change_1h",
                            "percent_change_24h",
                            "percent_change_7d"
                        ],
                        "type": "string",
                        "description": "Field to rank coins by in listings mode. Ignored in details mode.",
                        "default": "market_cap"
                    },
                    "sortType": {
                        "title": "Sort Direction",
                        "enum": [
                            "desc",
                            "asc"
                        ],
                        "type": "string",
                        "description": "Ascending or descending order for the sort field.",
                        "default": "desc"
                    },
                    "cryptoType": {
                        "title": "Asset Type",
                        "enum": [
                            "all",
                            "coins",
                            "tokens"
                        ],
                        "type": "string",
                        "description": "Restrict listings to native coins (own chain) or tokens (issued on another chain) or include both.",
                        "default": "all"
                    },
                    "startRank": {
                        "title": "Start Rank",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "1-based starting rank for listings (skip the first N coins). Use 1 to start from the top of the market.",
                        "default": 1
                    },
                    "includeFullDetails": {
                        "title": "Include Full Coin Details",
                        "type": "boolean",
                        "description": "If enabled, every listed coin is followed up with a detail call (description, website, social links, all-time-high stats, tag taxonomy). Slower but much richer output.",
                        "default": false
                    },
                    "slugs": {
                        "title": "Coin Slugs (details mode)",
                        "type": "array",
                        "description": "Slugs to pull full profiles for, e.g. \"bitcoin\", \"ethereum\", \"solana\". The slug is the lowercase URL segment on coinmarketcap.com/currencies/{slug}/.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
