CoinGecko Crypto Market Data Scraper avatar

CoinGecko Crypto Market Data Scraper

Pricing

from $0.96 / 1,000 item extracteds

Go to Apify Store
CoinGecko Crypto Market Data Scraper

CoinGecko Crypto Market Data Scraper

Export current and bounded historical CoinGecko prices, ranks, market caps, volume, changes, supply, and timestamps for portfolio monitoring.

Pricing

from $0.96 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Export current and bounded historical cryptocurrency market data from CoinGecko for portfolio monitoring, research, dashboards, and scheduled comparisons.

The Actor uses CoinGecko's anonymous public JSON endpoints. It needs no CoinGecko API key and no browser. Supply exact coin IDs such as bitcoin, ethereum, and solana, or retrieve a ranked market/category snapshot.

What does this CoinGecko scraper do?

The Actor supports two focused workflows:

  • Current market snapshots — one normalized row per coin with identity, price, rank, market cap, volume, change, supply, all-time-high/low, and update timestamps.
  • Bounded historical observations — daily price, market-cap, and volume points for up to 10 supplied coin IDs over 1, 7, 14, 30, or 90 days.

Current mode can target exact CoinGecko IDs or browse ranked market rows. It also supports quote currency, category ID, ordering, and an output limit.

Historical mode intentionally stays bounded. It is designed for recurring portfolio comparisons, not tick-level trading or unlimited archive downloads.

Who is this Actor for?

  • Portfolio analysts scheduling daily cryptocurrency snapshots.
  • Data teams feeding market dashboards or spreadsheets.
  • Researchers comparing price, capitalization, and volume over time.
  • Developers who want CoinGecko API data without maintaining retry, normalization, schema, and export code.
  • Finance and fintech teams monitoring a fixed watchlist.
  • Automation builders connecting CoinGecko data to Make, Zapier, n8n, webhooks, or Apify integrations.

Why use this Actor?

  • No CoinGecko API key is required for the implemented public scope.
  • Stable, typed fields replace raw endpoint-specific snake_case payloads.
  • Exact coin-ID and ranked-market workflows use one consistent dataset schema.
  • Bounded retries handle temporary timeouts, throttling, and upstream server errors.
  • Historical requests are serialized to respect anonymous API limits.
  • maxItems gives every run a clear output boundary.
  • Dataset results export directly as JSON, CSV, Excel, XML, RSS, or through the Apify API.

What CoinGecko data can I extract?

FieldMeaning
recordTypecurrent or historical
coinId, symbol, nameCoinGecko identity fields
imageCoin image URL when available
currencyQuote currency used for monetary values
priceCurrent or observed price
marketCap, marketCapRankCapitalization and current rank
totalVolumeCurrent or observed trading volume
high24h, low24hCurrent 24-hour range
priceChange24hAbsolute 24-hour price movement
priceChangePercentage1hOne-hour percentage movement
priceChangePercentage24h24-hour percentage movement
priceChangePercentage7dSeven-day percentage movement
priceChangePercentage30d30-day percentage movement
circulatingSupplyCurrent circulating supply
totalSupply, maxSupplySupply totals when CoinGecko reports them
ath, athDateAll-time high and timestamp
atl, atlDateAll-time low and timestamp
observedAtTimestamp represented by the row
lastUpdatedCoinGecko's update timestamp for current rows
sourceUrlPublic CoinGecko page for the coin/data
scrapedAtTimestamp when the Actor fetched the row

Historical rows do not invent fields unavailable from the public chart endpoint. Identity beyond coinId, rank, supply, change, and ATH/ATL fields are null in those rows.

How to get started

  1. Open the Actor in Apify Console.
  2. Keep Current market snapshot for current data, or choose Historical daily observations.
  3. Enter CoinGecko coin IDs such as bitcoin and ethereum. Clear the list to browse the ranked market in current mode.
  4. Select the quote currency and output limit.
  5. For current market discovery, optionally add a CoinGecko category ID and ordering.
  6. For historical mode, choose a supported lookback and supply no more than 10 coin IDs.
  7. Click Start.
  8. Open the Dataset tab or export the rows through an integration.

Input parameters

InputTypeDefaultNotes
modestringcurrentcurrent or historical
coinIdsstring[]Bitcoin, Ethereum, SolanaUp to 250 current IDs; 1–10 required for history
vsCurrencystringusdCoinGecko quote currency code
categorystringemptyCoinGecko category ID; current mode only
orderstringmarket_cap_descMarket cap, volume, or ID ordering
maxItemsinteger100Maximum dataset rows, from 1 to 2,500
historyDaysinteger7One of 1, 7, 14, 30, or 90

Use CoinGecko IDs, not ticker symbols. For example, use bitcoin, not BTC.

Current portfolio snapshot input

{
"mode": "current",
"coinIds": ["bitcoin", "ethereum", "solana"],
"vsCurrency": "usd",
"maxItems": 3
}

Ranked category input

{
"mode": "current",
"coinIds": [],
"vsCurrency": "usd",
"category": "decentralized-finance-defi",
"order": "market_cap_desc",
"maxItems": 25
}

Historical input

{
"mode": "historical",
"coinIds": ["bitcoin", "ethereum"],
"vsCurrency": "usd",
"historyDays": 7,
"maxItems": 20
}

Output example

A current run returns rows like this:

{
"recordType": "current",
"coinId": "bitcoin",
"symbol": "btc",
"name": "Bitcoin",
"currency": "USD",
"price": 80525,
"marketCap": 1615857166835,
"marketCapRank": 1,
"totalVolume": 56887421442,
"priceChangePercentage24h": 3.96721,
"observedAt": "2026-08-25T06:46:20.000Z",
"lastUpdated": "2026-08-25T06:46:20.000Z",
"sourceUrl": "https://www.coingecko.com/en/coins/bitcoin",
"scrapedAt": "2026-08-25T06:47:00.000Z"
}

Values change with the market. Nullable schema fields remain explicit so downstream pipelines can distinguish missing source data from zero.

How much does it cost to extract CoinGecko market data?

This Actor uses pay-per-event pricing: one small Run started event per run plus one Item extracted event for each saved dataset row. Failed, rejected, or duplicate rows are not item events.

The exact plan-specific event prices are displayed in Apify Console before a run. At the initial FREE-tier configuration, a run costs $0.00005 plus $0.00184 per saved row. That is approximately:

  • 3 portfolio rows: $0.00557
  • 25 market rows: $0.04605
  • 100 market or historical rows: $0.18405

Paid Apify plans receive lower per-item tier prices. Compute usage is included in platform run billing separately where applicable. Check the live pricing panel for the authoritative total before running large schedules.

Schedule portfolio monitoring

Apify schedules can run the same input hourly, daily, or weekly. A practical workflow is:

  1. Save a Task with fixed coinIds.
  2. Schedule it once per day.
  3. Send the completed dataset to a webhook, cloud storage, Google Sheets, or your database.
  4. Compare price, marketCap, totalVolume, and observedAt against the previous run.
  5. Trigger your own alert only when a business threshold is crossed.

The Actor exports observations; it does not claim to provide investment advice or execute trades.

Integrations and exports

Use the dataset with:

  • Apify webhooks for run-completed automation.
  • Google Sheets for lightweight portfolio reports.
  • Make, Zapier, and n8n for no-code workflows.
  • Python, JavaScript, R, or BI tools through the dataset API.
  • CSV or Excel exports for one-time analysis.
  • Cloud storage or data warehouses for longitudinal monitoring.

Use coinId plus observedAt as a practical observation key. Use scrapedAt to audit when your collection job ran.

Use the Actor through the API

Replace YOUR_TOKEN with your Apify API token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~coingecko-crypto-market-data/runs?token=YOUR_TOKEN&waitForFinish=120" \
-H "Content-Type: application/json" \
-d '{"mode":"current","coinIds":["bitcoin","ethereum"],"vsCurrency":"usd","maxItems":2}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/coingecko-crypto-market-data').call({
mode: 'current',
coinIds: ['bitcoin', 'ethereum'],
vsCurrency: 'usd',
maxItems: 2,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("automation-lab/coingecko-crypto-market-data").call(run_input={
"mode": "historical",
"coinIds": ["bitcoin", "ethereum"],
"vsCurrency": "usd",
"historyDays": 7,
"maxItems": 20,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with MCP and AI assistants

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/coingecko-crypto-market-data"

Claude Desktop

Add this JSON under mcpServers in Claude Desktop's MCP configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/coingecko-crypto-market-data"
}
}
}

Cursor

Add the same mcpServers.apify.url entry to your Cursor MCP settings.

VS Code

Add the HTTP server URL to your VS Code MCP configuration, using the apify server name shown above.

Example prompts:

  • "Fetch current USD market rows for bitcoin, ethereum, and solana."
  • "Export seven days of daily Bitcoin and Ethereum market history."
  • "Get the top 25 cryptocurrencies by market cap for a spreadsheet."

Limits and responsible operation

  • CoinGecko controls anonymous API availability and rate limits.
  • Temporary HTTP 429, timeout, and server failures are retried with bounded backoff.
  • Deterministic input or upstream client errors fail clearly instead of silently returning fabricated data.
  • Current mode accepts up to 250 supplied IDs; historical mode accepts up to 10.
  • Historical lookback is limited to 90 days and daily observations.
  • maxItems limits saved rows, not the number of upstream points CoinGecko may calculate.
  • This Actor does not provide tick data, order books, exchange execution, wallet data, alerts, or investment recommendations.
  • No residential proxy or browser fallback is used.

For stable recurring jobs, avoid running many identical Tasks at the same second. Stagger schedules to reduce anonymous API throttling.

Legality and responsible use

CoinGecko data is provided by CoinGecko under its own terms and policies. You are responsible for reviewing those terms, choosing an appropriate request frequency, honoring attribution or licensing requirements, and ensuring that your downstream use is lawful.

Do not present delayed or aggregated observations as guaranteed real-time trading data. Validate important financial decisions against authoritative sources. This Actor is an independent automation tool and is not affiliated with or endorsed by CoinGecko.

Troubleshooting

Why did my run return no rows?

Check that every coinIds value is a CoinGecko ID rather than a ticker. bitcoin is valid; BTC is not an ID. For category discovery, verify the exact CoinGecko category ID.

Why did the run fail with HTTP 429?

CoinGecko throttled the anonymous API. The Actor retries with backoff, but sustained limits can still fail a run. Wait before retrying, reduce historical coin count, and stagger scheduled Tasks.

Why are fields null in historical rows?

The bounded chart endpoint returns timestamped price, market cap, and volume. It does not return rank, supply, changes, or ATH/ATL per historical point, so the Actor leaves those fields null rather than mixing current values into historical observations.

Why are there eight points for a seven-day request?

CoinGecko may include both boundary observations in a requested window. maxItems remains the final saved-row cap.

FAQ

Does this Actor need a CoinGecko API key?

No. The implemented current and bounded historical workflows use anonymously available public endpoints.

Can I search by ticker symbol?

No. CoinGecko IDs are unambiguous and stable for the API workflow. Use IDs such as bitcoin, ethereum, or solana.

Can I change the quote currency?

Yes. Set vsCurrency to a currency supported by CoinGecko, such as usd, eur, gbp, or btc.

Can I retrieve a category?

Yes in current mode. Supply an exact CoinGecko category ID such as decentralized-finance-defi and optionally choose an order.

Can I use the output in a commercial product?

Your downstream rights depend on CoinGecko's terms and your use case. Review the source terms and seek professional advice where appropriate.

Does the Actor detect changes between runs?

It produces timestamped snapshots suitable for comparison. Your Task, database, spreadsheet, or automation should compare runs and apply your own thresholds.

  • CoinMarketCap Scraper — use a different cryptocurrency market source when your workflow specifically requires CoinMarketCap data.

Choose one source consistently for longitudinal comparisons because provider rankings, methodologies, and timestamps can differ.