# CoinGecko Crypto Markets Scraper (`bercikgroup/coingecko-crypto-markets-scraper`) Actor

Live cryptocurrency market data from CoinGecko - price, market cap, volume, supply, ATH and multi-window price changes. No API key.

- **URL**: https://apify.com/bercikgroup/coingecko-crypto-markets-scraper.md
- **Developed by:** [BERCIK Group](https://apify.com/bercikgroup) (community)
- **Categories:** Business, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

Live **cryptocurrency market data from CoinGecko** — price, market cap, 24-hour volume, circulating and max supply, all-time highs and lows, and percentage changes across up to seven time windows. **No API key, no signup.**

### What does CoinGecko Crypto Markets Scraper do?

This Actor reads CoinGecko's public market data and returns clean, structured records — one row per coin, priced in whatever currency you choose.

Pull the **entire market ranked by capitalisation**, a **specific list of coins**, or a **single category** like layer-1 or DeFi. Add as many percentage-change windows as you need (1h, 24h, 7d, 14d, 30d, 200d, 1y), and optionally the 7-day price series for charting.

Runs are fast — a full top-250 pull completes in seconds — and cost almost nothing, because it's plain HTTP with no browser and no proxies.

### Why use CoinGecko Crypto Markets Scraper?

- **Portfolio and treasury tracking** — snapshot prices on a schedule and build your own history.
- **Screeners and dashboards** — filter by market cap or volume and feed the results into Sheets, Airtable or a BI tool.
- **Trading research and backtesting** — capture point-in-time market state that CoinGecko's free UI doesn't let you export.
- **Market and sector analysis** — pull an entire category and compare performance across time windows.
- **Content and reporting** — power a newsletter, price widget or automated market summary.
- **Alerting** — schedule frequent runs and trigger a webhook when a threshold is crossed.

### How to use CoinGecko Crypto Markets Scraper

1. Click **Try for free**.
2. Set your **quote currency** — `usd`, `eur`, `gbp`, `btc` and many more.
3. Either leave **Specific coins** empty to pull the market by rank, or list coin IDs like `bitcoin`, `ethereum`, `solana`.
4. Choose which **price change windows** you want.
5. Set **Maximum results** to cap your spend, then click **Start**.
6. Download as **JSON, CSV, Excel, HTML or XML**.

### Input

```json
{
  "vsCurrency": "usd",
  "order": "market_cap_desc",
  "changeWindows": ["1h", "24h", "7d"],
  "minMarketCap": 1000000000,
  "includeSparkline": false,
  "maxResults": 250
}
```

| Field | Type | Description |
| --- | --- | --- |
| `vsCurrency` | string | Quote currency, e.g. `usd`, `eur`, `btc` |
| `coinIds` | array | Specific CoinGecko coin IDs; empty means the whole market |
| `category` | string | Restrict to a category, e.g. `layer-1`, `meme-token` |
| `order` | string | Market cap or volume, ascending or descending |
| `changeWindows` | array | `1h`, `24h`, `7d`, `14d`, `30d`, `200d`, `1y` |
| `includeSparkline` | boolean | Include the 7-day price series |
| `minMarketCap`, `minVolume` | integer | Skip coins below these thresholds |
| `maxResults` | integer | Hard cap on records returned |

### Output

```json
{
  "id": "bitcoin",
  "symbol": "BTC",
  "name": "Bitcoin",
  "currency": "USD",
  "currentPrice": 64979.12,
  "marketCap": 1303285282484,
  "marketCapRank": 1,
  "totalVolume": 25000000000,
  "high24h": 65500,
  "low24h": 64000,
  "priceChangePercentage24h": 0.9012,
  "priceChangePercentage": { "1h": -0.1043, "24h": 0.9012, "7d": 2.8471 },
  "circulatingSupply": 19700000,
  "maxSupply": 21000000,
  "ath": 108000,
  "athChangePercentage": -39.8123,
  "athDate": "2025-01-20T00:00:00.000Z",
  "imageUrl": "https://cdn/btc.png",
  "coingeckoUrl": "https://www.coingecko.com/en/coins/bitcoin",
  "lastUpdated": "2026-08-07T15:00:00.000Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data fields

| Field | Description |
| --- | --- |
| `id`, `symbol`, `name` | Coin identity — `id` is the CoinGecko slug |
| `currency` | Quote currency all values are expressed in |
| `currentPrice`, `high24h`, `low24h` | Current and daily range |
| `marketCap`, `marketCapRank`, `fullyDilutedValuation` | Capitalisation and rank |
| `totalVolume` | 24-hour trading volume |
| `priceChange24h`, `priceChangePercentage24h` | Absolute and percentage daily move |
| `priceChangePercentage` | Object keyed by each window you requested |
| `circulatingSupply`, `totalSupply`, `maxSupply` | Supply figures; `null` where uncapped |
| `ath`, `athChangePercentage`, `athDate` | All-time high and distance from it |
| `atl`, `atlChangePercentage`, `atlDate` | All-time low equivalent |
| `sparkline7d` | 7-day price series, when enabled |
| `imageUrl`, `coingeckoUrl`, `lastUpdated` | Logo, source page and data timestamp |

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

Priced **per coin record returned**, capped by **Maximum results**. It's a plain JSON API with no browser and no proxies, so platform cost is minimal — a top-250 pull finishes in about a second.

### Tips

- **Threshold filters stop early.** With a descending sort, the Actor stops as soon as coins fall below your `minMarketCap` or `minVolume` instead of paging on pointlessly. Worth knowing: only about **65 coins** have a market cap above $1B, so a high threshold returns a short list very quickly.
- **`coinIds` is the cheapest way to track a watchlist** — it fetches exactly those coins in one request, ignoring rank entirely.
- **Only request the change windows you need.** Each one adds fields to every record.
- **Leave the sparkline off unless you're charting.** It adds a 168-point array per coin and dominates dataset size.
- **`maxSupply` is `null` for uncapped coins** like Ethereum — that's the real answer, not a missing value.
- **Schedule for history.** CoinGecko's free tier gives current state, not history. Running this hourly builds a time series that's genuinely yours.

### FAQ

**Do I need a CoinGecko API key?**
No. This uses the public API, which needs no key or signup.

**How fresh is the data?**
Live at run time. Each record carries `lastUpdated` from CoinGecko so you can see exactly how current it is.

**Can I get historical prices?**
Not from this Actor — it returns current market state, plus a 7-day sparkline if enabled. For real history, schedule regular runs and accumulate the dataset.

**What coin IDs should I use?**
The CoinGecko slug, which is the last part of the coin's URL — `coingecko.com/en/coins/bitcoin` means the ID is `bitcoin`. Note that's not always the symbol.

**Why did I get fewer results than my maximum?**
Either your filters matched fewer coins, or a category/ID list is genuinely that small. The run log shows what was scanned versus kept.

**Is this financial advice?**
No. This Actor returns raw market data and nothing more. Nothing here is investment advice — do your own research.

### Support

Found a bug or need another CoinGecko endpoint covered? Open an issue on the **Issues** tab. Custom data pipelines and bespoke scraping work are available on request.

# Actor input Schema

## `vsCurrency` (type: `string`):

Currency to price everything in, e.g. usd, eur, gbp, jpy, btc.

## `coinIds` (type: `array`):

CoinGecko coin IDs to fetch, e.g. bitcoin, ethereum, solana. Leave empty to fetch the whole market by rank.

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

Restrict to a CoinGecko category, e.g. layer-1, decentralized-finance-defi, meme-token.

## `order` (type: `string`):

How to rank results before applying your limit.

## `changeWindows` (type: `array`):

Which percentage-change windows to include for each coin.

## `includeSparkline` (type: `boolean`):

Include the 7-day price series for each coin. Useful for charting, but makes records much larger.

## `minMarketCap` (type: `integer`):

Skip coins below this market cap, in the quote currency. Note only ~65 coins exceed $1B.

## `minVolume` (type: `integer`):

Skip coins trading below this 24-hour volume, in the quote currency.

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

Hard cap on coin records returned. You are charged per record.

## Actor input object example

```json
{
  "vsCurrency": "usd",
  "order": "market_cap_desc",
  "changeWindows": [
    "24h",
    "7d"
  ],
  "includeSparkline": false,
  "maxResults": 250
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `runSummary` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("bercikgroup/coingecko-crypto-markets-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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call bercikgroup/coingecko-crypto-markets-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,bercikgroup/coingecko-crypto-markets-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NvashVuALxph2zMYs/builds/gl5X9yRFMrG36htmg/openapi.json
