CoinGecko Crypto Market Data Scraper
Pricing
from $0.96 / 1,000 item extracteds
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
Maintained by CommunityActor 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.
maxItemsgives 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?
| Field | Meaning |
|---|---|
recordType | current or historical |
coinId, symbol, name | CoinGecko identity fields |
image | Coin image URL when available |
currency | Quote currency used for monetary values |
price | Current or observed price |
marketCap, marketCapRank | Capitalization and current rank |
totalVolume | Current or observed trading volume |
high24h, low24h | Current 24-hour range |
priceChange24h | Absolute 24-hour price movement |
priceChangePercentage1h | One-hour percentage movement |
priceChangePercentage24h | 24-hour percentage movement |
priceChangePercentage7d | Seven-day percentage movement |
priceChangePercentage30d | 30-day percentage movement |
circulatingSupply | Current circulating supply |
totalSupply, maxSupply | Supply totals when CoinGecko reports them |
ath, athDate | All-time high and timestamp |
atl, atlDate | All-time low and timestamp |
observedAt | Timestamp represented by the row |
lastUpdated | CoinGecko's update timestamp for current rows |
sourceUrl | Public CoinGecko page for the coin/data |
scrapedAt | Timestamp 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
- Open the Actor in Apify Console.
- Keep Current market snapshot for current data, or choose Historical daily observations.
- Enter CoinGecko coin IDs such as
bitcoinandethereum. Clear the list to browse the ranked market in current mode. - Select the quote currency and output limit.
- For current market discovery, optionally add a CoinGecko category ID and ordering.
- For historical mode, choose a supported lookback and supply no more than 10 coin IDs.
- Click Start.
- Open the Dataset tab or export the rows through an integration.
Input parameters
| Input | Type | Default | Notes |
|---|---|---|---|
mode | string | current | current or historical |
coinIds | string[] | Bitcoin, Ethereum, Solana | Up to 250 current IDs; 1–10 required for history |
vsCurrency | string | usd | CoinGecko quote currency code |
category | string | empty | CoinGecko category ID; current mode only |
order | string | market_cap_desc | Market cap, volume, or ID ordering |
maxItems | integer | 100 | Maximum dataset rows, from 1 to 2,500 |
historyDays | integer | 7 | One 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:
- Save a Task with fixed
coinIds. - Schedule it once per day.
- Send the completed dataset to a webhook, cloud storage, Google Sheets, or your database.
- Compare
price,marketCap,totalVolume, andobservedAtagainst the previous run. - 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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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.
maxItemslimits 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.
Related automation-lab Actors
- 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.