# CoinMarketCap Scraper (`automation-lab/coinmarketcap-scraper`) Actor

Extract cryptocurrency data from CoinMarketCap — prices, market caps, volumes, % changes (1h/24h/7d), supply, ATH/ATL. Scrape top coins, filter by sector, or look up specific coins. No API key needed.

- **URL**: https://apify.com/automation-lab/coinmarketcap-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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

## CoinMarketCap Scraper

Extract live cryptocurrency market data from [CoinMarketCap](https://coinmarketcap.com) — prices, market caps, trading volumes, percentage changes (1h/24h/7d/30d), circulating supply, all-time highs, and more. Scrape the top coins by rank, filter by category or sector, or look up specific coins by slug or URL. No API key or account needed.

### What does CoinMarketCap Scraper do?

CoinMarketCap Scraper connects directly to CoinMarketCap's internal data API and extracts real-time cryptocurrency market data for any coin listed on the platform. You can scrape **top coins by market cap**, filter by **category or sector** (DeFi, Layer 1, memes, AI tokens, etc.), or look up **specific coins by slug or URL**. The actor optionally fetches full coin detail including description, website, social links, and tags.

Unlike the official CoinMarketCap API, which requires registration and has strict rate limits, this actor uses the same internal API that powers the CoinMarketCap website — no key needed, no rate limits per request, just clean JSON data.

### Who is CoinMarketCap Scraper for?

**🏦 Crypto investors and portfolio trackers**
- Pull real-time prices for your portfolio holdings
- Monitor % changes and alert when a coin moves significantly
- Compare market caps and dominance percentages across your watchlist

**📈 Quantitative analysts and data scientists**
- Collect historical snapshots for model training or backtesting
- Filter DeFi, Layer 1, or meme coins for sector analysis
- Export to CSV or JSON for downstream processing in Python or R

**🤖 Automation developers and bot builders**
- Trigger workflows when prices cross thresholds (via Zapier or Make)
- Power Discord or Telegram price bots with scheduled runs
- Feed data pipelines for market dashboards and monitoring systems

**📊 Market researchers and content teams**
- Pull coin descriptions, social links, and tag classifications
- Research new coins entering the top 100 or top 500
- Export sector data for reports and market commentary

### Why use CoinMarketCap Scraper?

- ✅ **No API key or registration required** — works out of the box
- ✅ **Three scrape modes** — top coins, category/sector filter, or specific coin lookup by slug
- ✅ **Rich data fields** — price, market cap, volume, % changes (1h/24h/7d/30d/90d/1y), supply, ATH/ATL
- ✅ **Optional full detail** — coin description, website, social links (Twitter, Reddit), tags, logo
- ✅ **Pure HTTP actor** — fast, cheap, no browser overhead (256 MB memory)
- ✅ **Paginated top-coins fetch** — handles up to 500 coins per run
- ✅ **Flexible input** — pass full CMC URLs or just the slug (e.g. `bitcoin`, `ethereum`)

### What data can you extract?

| Field | Description |
|-------|-------------|
| 🆔 `id`, `slug`, `name`, `symbol` | Coin identity |
| 📊 `cmcRank` | Current market cap rank |
| 💰 `price` | Current price in USD |
| 📈 `marketCap` | Market capitalization |
| 💧 `fullyDilutedMarketCap` | Fully diluted market cap |
| 📦 `volume24h` | 24-hour trading volume |
| 📉 `percentChange1h/24h/7d/30d/90d/1y` | Price % changes across timeframes |
| 🔄 `circulatingSupply` | Circulating supply |
| 🏭 `totalSupply`, `maxSupply` | Total and maximum supply |
| ⬆️ `high24h`, `low24h` | 24-hour price range |
| 🏆 `ath`, `athDate` | All-time high price and date |
| 📉 `atl`, `atlDate` | All-time low price and date |
| 🏷️ `tags` | Category tags (e.g. "defi", "layer-1", "pow") |
| 📅 `dateAdded`, `lastUpdated` | Listing and update timestamps |
| 🔗 `coinmarketcapUrl` | Direct link to CoinMarketCap listing |

**With `includeDetail: true` (optional):**

| Field | Description |
|-------|-------------|
| 📝 `description` | Full coin description (markdown) |
| 🌐 `website` | Official website URL |
| 🐦 `twitter` | Twitter/X profile URL |
| 💬 `reddit` | Reddit community URL |
| 💻 `sourceCode` | GitHub/source code URL |
| 📄 `whitepaper` | Whitepaper URL |
| 🖼️ `logo` | Coin logo image URL (64x64 PNG) |
| 🌍 `marketCapDominance` | % of total crypto market cap |
| 🔀 `marketPairCount` | Number of trading pairs |

### How much does it cost to scrape CoinMarketCap?

This Actor uses **pay-per-event** pricing — you only pay for the coins you extract. No monthly subscription, and all platform compute costs are included.

| | Free | Starter ($29/mo) | Scale ($199/mo) | Business ($999/mo) |
|---|---|---|---|---|
| **Per coin** | $0.00115 | $0.001 | $0.00078 | $0.0006 |
| **100 coins** | $0.115 | $0.10 | $0.078 | $0.06 |
| **500 coins** | $0.575 | $0.50 | $0.39 | $0.30 |

Plus a small run-start fee of $0.005 per run (covers initialization overhead). Higher-tier plans get additional volume discounts (up to 76% off).

**Real-world cost examples:**

| Use case | Mode | Coins | Approx. cost (Free tier) |
|---|---|---|---|
| Bitcoin + Ethereum prices | slugs | 2 | ~$0.007 |
| Top 100 by market cap | top | 100 | ~$0.12 |
| All DeFi coins | category | 50 | ~$0.063 |
| Full top 500 | top | 500 | ~$0.58 |

On the **free Apify plan ($5 credits)**, you can scrape approximately **4,000+ coins** before needing to upgrade.

### How to scrape CoinMarketCap

1. Go to the [CoinMarketCap Scraper page](https://apify.com/automation-lab/coinmarketcap-scraper) on Apify Store
2. Click **Try for free**
3. Choose your scrape mode:
   - **Top coins** — scrape the top N coins by market cap rank
   - **Category/sector** — enter a tag slug like `defi`, `layer-1`, `memes`, or `ai-big-data`
   - **Specific coins** — paste coin slugs or full CoinMarketCap URLs
4. Set `maxResults` (default: 100; max: 500)
5. Optionally enable `includeDetail` for descriptions, social links, and tags
6. Click **Start** and wait ~5-30 seconds
7. Download results as **JSON, CSV, or Excel**

#### Example inputs

**Top 50 coins by market cap:**
```json
{
    "mode": "top",
    "maxResults": 50,
    "sortBy": "market_cap"
}
````

**DeFi sector:**

```json
{
    "mode": "category",
    "category": "defi",
    "maxResults": 100
}
```

**Specific coins with full detail:**

```json
{
    "mode": "slugs",
    "coinSlugs": ["bitcoin", "ethereum", "solana"],
    "includeDetail": true
}
```

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `"top"` | Scrape mode: `top`, `category`, or `slugs` |
| `maxResults` | integer | 100 | Max coins to extract (max 500) — applies to `top` and `category` modes |
| `category` | string | — | Tag slug to filter by (e.g. `defi`, `layer-1`, `memes`). Only used in `category` mode |
| `coinSlugs` | array | — | Coin slugs (e.g. `bitcoin`) or full CMC URLs. Only used in `slugs` mode |
| `sortBy` | string | `"market_cap"` | Sort order for `top` and `category`: `market_cap`, `volume_24h`, `percent_change_24h`, `cmc_rank` |
| `includeDetail` | boolean | `false` | Fetch full detail per coin (description, website, social links, logo). One extra API call per coin |

**Common category slugs:** `defi`, `layer-1`, `layer-2`, `memes`, `stablecoins`, `gaming`, `ai-big-data`, `nft`, `exchange-based-tokens`, `infrastructure`, `yield-farming`, `lending-borrowing`

### Output examples

**Standard output (top/category mode):**

```json
{
    "id": 1,
    "slug": "bitcoin",
    "name": "Bitcoin",
    "symbol": "BTC",
    "cmcRank": 1,
    "price": 66161.97,
    "marketCap": 1323931351117,
    "fullyDilutedMarketCap": 1389401539548,
    "volume24h": 37177305148,
    "percentChange1h": -0.26,
    "percentChange24h": -3.38,
    "percentChange7d": -4.64,
    "percentChange30d": -1.64,
    "percentChange90d": -25.99,
    "percentChange1y": -22.05,
    "circulatingSupply": 20010456,
    "totalSupply": 20010456,
    "maxSupply": 21000000,
    "high24h": 69131.81,
    "low24h": 65949.31,
    "ath": 126198.07,
    "athDate": "2025-10-06T18:59:00.000Z",
    "category": "coin",
    "tags": ["mineable", "pow", "store-of-value", "layer-1"],
    "coinmarketcapUrl": "https://coinmarketcap.com/currencies/bitcoin/",
    "scrapedAt": "2026-04-02T12:53:32.988Z"
}
```

**With `includeDetail: true`:**

```json
{
    "...all standard fields...": "...",
    "description": "### What Is Bitcoin (BTC)?\n\nBitcoin is...",
    "website": "https://bitcoin.org/",
    "twitter": "",
    "reddit": "https://www.reddit.com/r/bitcoin/",
    "sourceCode": "https://github.com/bitcoin/bitcoin",
    "whitepaper": "https://bitcoin.org/bitcoin.pdf",
    "logo": "https://s2.coinmarketcap.com/static/img/coins/64x64/1.png",
    "marketCapDominance": 57.99,
    "marketPairCount": 4049
}
```

### Tips for best results

- 🚀 **Start small** — use `maxResults: 10` for a first run to verify data shape before scaling up
- 🏷️ **Category slugs** — use lowercase hyphenated slugs from CoinMarketCap's URL (e.g. `ai-big-data` from `coinmarketcap.com/cryptocurrency-category/ai-big-data/`)
- 🔗 **Slug mode** — you can paste full CoinMarketCap URLs or just the slug after `/currencies/`
- ⚙️ **Include detail sparingly** — `includeDetail: true` makes one extra API call per coin. For 100 coins, this adds ~100 API calls and more run time. Use it only when you need descriptions/social links
- ⏰ **Schedule for portfolio tracking** — run every hour or daily via Apify Scheduler to get fresh price snapshots
- 💾 **Export options** — download results as JSON, CSV, Excel, or JSONL from the dataset view

### Integrations

**📊 CoinMarketCap → Google Sheets price monitor:**
Use Apify + Google Sheets integration to maintain a live portfolio spreadsheet. Schedule hourly runs for your top coins and stream data directly into Google Sheets.

**🔔 CoinMarketCap → Slack/Discord price alerts:**
Connect via Make (formerly Integromat) to send Slack/Discord notifications when `percentChange24h` crosses a threshold (e.g. ±5%).

**📈 CoinMarketCap → Airtable market dashboard:**
Scheduled daily runs to Airtable for a visual market cap and volume dashboard across your tracked sectors.

**🤖 CoinMarketCap → Custom Python analysis:**
Use the Apify API to pull results into pandas DataFrames for technical analysis, correlation studies, or ML feature engineering.

**⏰ Scheduled portfolio snapshots:**
Create a task with your watchlist in `slugs` mode, schedule every 15 minutes, and store results for portfolio P\&L tracking.

### Using the Apify API

Trigger runs programmatically and retrieve results via the Apify API.

**Node.js:**

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('automation-lab/coinmarketcap-scraper').call({
    mode: 'top',
    maxResults: 100,
    sortBy: 'market_cap'
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]); // { name: 'Bitcoin', price: 66161, ... }
```

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("automation-lab/coinmarketcap-scraper").call(run_input={
    "mode": "category",
    "category": "defi",
    "maxResults": 50
})

items = client.dataset(run["defaultDatasetId"]).list_items().items
for coin in items:
    print(f"{coin['name']} ({coin['symbol']}): ${coin['price']:,.2f}")
```

**cURL:**

```bash
## Start a run
curl -X POST "https://api.apify.com/v2/acts/automation-lab~coinmarketcap-scraper/runs" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "slugs", "coinSlugs": ["bitcoin", "ethereum"], "includeDetail": true}'

## Get results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN"
```

### Use with AI agents via MCP

CoinMarketCap Scraper is available as a tool for AI assistants that support the [Model Context Protocol (MCP)](https://docs.apify.com/platform/integrations/mcp).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

#### Setup for Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com"
```

#### Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

```json
{
    "mcpServers": {
        "apify": {
            "url": "https://mcp.apify.com"
        }
    }
}
```

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

#### Example prompts

Once connected, try asking your AI assistant:

- "Use automation-lab/coinmarketcap-scraper to fetch the top 20 cryptocurrencies by market cap and show me which ones have gained more than 5% in the last 24 hours"
- "Scrape the DeFi sector on CoinMarketCap and find the coins with the highest volume-to-market-cap ratio"
- "Get full details for bitcoin, ethereum, and solana from CoinMarketCap including their websites and social links"

Learn more in the [Apify MCP documentation](https://docs.apify.com/platform/integrations/mcp).

### Is it legal to scrape CoinMarketCap?

Web scraping public data is generally legal when done ethically and responsibly. CoinMarketCap displays cryptocurrency market data publicly, and this actor only accesses the same public data any browser visitor would see — no login, no authenticated endpoints, no bypassing of paywalls.

This actor:

- **Does not scrape personal data** — only public market data
- **Respects robots.txt** — only accesses public API endpoints
- **Does not bypass authentication** — no login credentials used
- **Is GDPR-compliant** — no personal data collected or stored

For commercial use cases or high-volume data needs, consider CoinMarketCap's [official API](https://coinmarketcap.com/api/) which offers professional data plans with SLA guarantees.

Always review [CoinMarketCap's Terms of Service](https://coinmarketcap.com/terms/) before use. The Apify platform and this actor are provided as-is; users are responsible for compliance with applicable terms and laws.

### FAQ

**How often is the data updated?**
CoinMarketCap updates price data approximately every 60 seconds. Each run fetches the most current available data at the time of the run. For real-time monitoring, schedule runs at your desired interval.

**How much does it cost to scrape CoinMarketCap?**
This actor uses pay-per-event pricing. Free-tier users pay $0.00115 per coin plus $0.005 per run start. Scraping 100 coins costs approximately $0.12 on the free tier. See the Pricing section above for full tier pricing.

**How does this compare to the official CoinMarketCap API?**
The official API requires registration, has strict rate limits on the free tier (333 daily credits), and charges for higher-volume plans. This actor has no per-day credit limits and no registration required — ideal for one-off data pulls and scheduled monitoring.

**Why are some fields null?**
Some fields (like `ath`, `atl`, `high24h`, `low24h`) may be `null` for newly listed coins that don't have enough price history yet. The `percentChange1y` may be null for coins listed less than a year ago.

**Why is volume24h showing 0 for coins scraped in slug mode without detail?**
Volume data in slug mode is fetched via the detail API endpoint which may not include volume in all cases. Enable `includeDetail: true` for more complete data on individual coin lookups.

**The category mode returned wrong coins. How do I fix it?**
Category mode uses CoinMarketCap's tag slug system, not their "category" groupings. Valid tag slugs include `defi`, `layer-1`, `layer-2`, `memes`, `stablecoins`, `gaming`, `ai-big-data`, `nft`. Find slugs from the URLs at `coinmarketcap.com/cryptocurrency-category/` pages.

### Other Finance & Crypto scrapers

Looking for more financial data tools? Check out these related actors from automation-lab:

- [CoinGecko Scraper](https://apify.com/automation-lab/coingecko-scraper) — Alternative crypto market data source with category support
- [DexScreener Scraper](https://apify.com/automation-lab/dexscreener-scraper) — DEX trading pairs, liquidity, and token data across 60+ blockchains
- [Yahoo Finance Scraper](https://apify.com/automation-lab/yahoo-finance-scraper) — Stock prices, financials, and news from Yahoo Finance

# Actor input Schema

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

Choose what to scrape: top coins by market cap ranking, a specific category, or individual coins by slug/URL.

## `maxResults` (type: `integer`):

Maximum number of coins to extract (max 500 per run). Applies to 'top' and 'category' modes.

## `category` (type: `string`):

CoinMarketCap category to scrape (e.g. 'defi', 'layer-1', 'memes', 'ai-big-data'). Only used in 'category' mode. Find slugs at coinmarketcap.com/cryptocurrency-category/

## `coinSlugs` (type: `array`):

List of CoinMarketCap coin slugs (e.g. 'bitcoin', 'ethereum') or full URLs (e.g. https://coinmarketcap.com/currencies/bitcoin/). Only used in 'slugs' mode.

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

Sort order for 'top' and 'category' modes.

## `includeDetail` (type: `boolean`):

Fetch full detail for each coin (description, website, social links, tags). Makes one extra API call per coin — slower but much richer data.

## Actor input object example

```json
{
  "mode": "top",
  "maxResults": 20,
  "category": "defi",
  "coinSlugs": [
    "bitcoin",
    "ethereum",
    "solana"
  ],
  "sortBy": "market_cap",
  "includeDetail": false
}
```

# Actor output Schema

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

No description

# 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 = {
    "mode": "top",
    "maxResults": 20,
    "category": "defi",
    "coinSlugs": [
        "bitcoin",
        "ethereum",
        "solana"
    ],
    "sortBy": "market_cap",
    "includeDetail": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/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 = {
    "mode": "top",
    "maxResults": 20,
    "category": "defi",
    "coinSlugs": [
        "bitcoin",
        "ethereum",
        "solana",
    ],
    "sortBy": "market_cap",
    "includeDetail": False,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/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 '{
  "mode": "top",
  "maxResults": 20,
  "category": "defi",
  "coinSlugs": [
    "bitcoin",
    "ethereum",
    "solana"
  ],
  "sortBy": "market_cap",
  "includeDetail": false
}' |
apify call automation-lab/coinmarketcap-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CoinMarketCap Scraper",
        "description": "Extract cryptocurrency data from CoinMarketCap — prices, market caps, volumes, % changes (1h/24h/7d), supply, ATH/ATL. Scrape top coins, filter by sector, or look up specific coins. No API key needed.",
        "version": "0.1",
        "x-build-id": "YTUBd3IFmTTxhkByY"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~coinmarketcap-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-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/automation-lab~coinmarketcap-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-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/automation-lab~coinmarketcap-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-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": "Scrape mode",
                        "enum": [
                            "top",
                            "category",
                            "slugs"
                        ],
                        "type": "string",
                        "description": "Choose what to scrape: top coins by market cap ranking, a specific category, or individual coins by slug/URL.",
                        "default": "top"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of coins to extract (max 500 per run). Applies to 'top' and 'category' modes.",
                        "default": 100
                    },
                    "category": {
                        "title": "Category slug",
                        "type": "string",
                        "description": "CoinMarketCap category to scrape (e.g. 'defi', 'layer-1', 'memes', 'ai-big-data'). Only used in 'category' mode. Find slugs at coinmarketcap.com/cryptocurrency-category/",
                        "default": ""
                    },
                    "coinSlugs": {
                        "title": "Coin slugs / URLs",
                        "type": "array",
                        "description": "List of CoinMarketCap coin slugs (e.g. 'bitcoin', 'ethereum') or full URLs (e.g. https://coinmarketcap.com/currencies/bitcoin/). Only used in 'slugs' mode.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "market_cap",
                            "volume_24h",
                            "percent_change_24h",
                            "cmc_rank"
                        ],
                        "type": "string",
                        "description": "Sort order for 'top' and 'category' modes.",
                        "default": "market_cap"
                    },
                    "includeDetail": {
                        "title": "Include full coin detail",
                        "type": "boolean",
                        "description": "Fetch full detail for each coin (description, website, social links, tags). Makes one extra API call per coin — slower but much richer data.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
