CoinGecko Scraper — Crypto Prices, Market Cap, Volume, Trending avatar

CoinGecko Scraper — Crypto Prices, Market Cap, Volume, Trending

Pricing

from $0.70 / 1,000 result items

Go to Apify Store
CoinGecko Scraper — Crypto Prices, Market Cap, Volume, Trending

CoinGecko Scraper — Crypto Prices, Market Cap, Volume, Trending

Crypto market data from CoinGecko for AI agents: top-coin screener with filters and sort, simple prices in 63 currencies, coin profiles, token lookup by contract address, trending, global stats, categories, exchanges, daily history and OHLC candles. No API key.

Pricing

from $0.70 / 1,000 result items

Rating

0.0

(0)

Developer

Samat Makatov

Samat Makatov

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Live crypto market data from CoinGecko's public API in eleven modes: top-coin screens with filters, simple prices, full coin profiles, token lookup by contract address, trending coins, global market stats, sector (category) rankings, exchanges, daily history, OHLC candles and id search. Built for trading bots, research agents, portfolio dashboards and alerting. No API key, proxy or browser needed (an optional free Demo key makes multi-coin runs about 10× faster).

Use cases

  • Momentum / pump screener — markets with minChange24h: 15, minVolume24h: 1000000, maxRank: 500 → coins breaking out today.
  • Portfolio valuation — price for your holdings in eur/gbp/btc every hour.
  • Token due diligence — contract on base with a token address → name, market cap, FDV, categories, links, exchange listings.
  • Sector rotation — categories ordered by market_cap_change_24h_desc → which sectors are hot today.
  • Backtests & charts — history (daily price, market cap, volume) or ohlc candles per coin.
  • Exchange risk — exchanges with trust score and volumeAnomalyRatio (reported vs normalized volume).

Input

FieldTypeDefaultNotes
modestringmarketsmarkets, price, coins, contract, trending, global, categories, exchanges, history, ohlc, search
idsarray[]CoinGecko ids (slug in coingecko.com/en/coins/<id>), e.g. bitcoin, aerodrome-finance; any case. Required for price, coins, history, ohlc. Unknown ids are listed in the status and SUMMARY.missing.
symbolsarray[]markets: tickers (btc, eth, any case) instead of ids. Each ticker returns its top-ranked coin (CoinGecko's include_tokens=top); several coins can share a ticker, so use ids for an exact coin.
vsCurrencystringusdOne of 63 CoinGecko quote currencies (see Reference). Apify refuses a value off this list (e.g. kzt) before the run starts.
limitinteger 1–100050Max rows (markets, trending, categories, exchanges, search). coins/contract: max ids or addresses looked up; the rest is named in the status as not looked up.
fieldsarray[]Keep only these output fields, in this order. id is always kept (first, unless you place it). Names are read in any case or snake_case (market_cap); names the mode does not have are left out and named in the status; a list with none of the mode's fields is refused before the run does any work.
categorystring—markets: category id (layer-2, meme-token, artificial-intelligence, base-ecosystem…). Unknown ids fail with suggestions.
orderstringmarket_cap_descmarkets server order: market_cap_desc/asc, volume_desc/asc, id_asc/desc.
priceChangeWindowsarray["1h","24h","7d"]Any of 1h, 24h, 7d, 14d, 30d, 200d, 1y (1d, 1w read as 24h, 7d); others stay null. A window that minChange7d/maxChange7d or sortBy needs is added automatically (named in the status).
includeSparklinebooleanfalseAdd sparkline7d (hourly prices).
minMarketCap / maxMarketCapinteger—In vsCurrency. minMarketCap also filters categories.
minVolume24hinteger—
maxRankinteger—Keep ranks 1..N.
minChange24h / maxChange24h / minChange7d / maxChange7dnumber—% bounds, decimals allowed (2.5).
minVolumeToMcapstring (decimal)—Turnover, e.g. 0.2.
searchstring—Substring on name/symbol/id (markets, categories) or name/id/country (exchanges — the whole exchange list is searched, not only the first limit).
sortBy / sortDirstring— / descClient-side sort: rank, price, marketCap, fdv, volume24h, change1h…change1y, volumeToMcap, athChangePct.
includeDescription / includeTickers / includeCommunity / includeDeveloperbooleantrue / false / false / falsecoins & contract detail options.
platform / contractAddressesstring / array—contract: asset platform id + token addresses.
includeNfts / includeCategoriesbooleanfalsetrending extras.
categoryOrderstringmarket_cap_desccategories: market_cap_desc/asc, name_desc/asc, market_cap_change_24h_desc/asc.
querystring—search: name or symbol.
daysinteger30 (history) / 7 (ohlc)history: 1–365; ohlc: 1, 7, 14, 30, 90, 180, 365 (others round up, named in the status).
from / todate—history window (YYYY-MM-DD, to inclusive, default today; to is used only with from), last 365 days on the public API.
dailyOnlybooleantruehistory: one point per UTC day.
coingeckoApiKey / apiPlanstring / string— / demoOptional key; pro switches to the Pro host.

Inputs a mode does not use (e.g. ids in trending) are named in the status instead of being ignored silently.

Legacy inputs (mode with markets/coins/trending/price, ids, vsCurrency, limit, category) keep their names and meaning.

Reference

Sort keys (sortBy): rank, price, marketCap, fdv, volume24h, change1h, change24h, change7d, change14d, change30d, change200d, change1y, volumeToMcap, athChangePct. Off-list values are refused by Apify before the run.

Quote currencies (vsCurrency, 63): usd, eur, gbp, jpy, cny, krw, inr, rub, try, brl, cad, aud, chf, aed, ars, bdt, bhd, bmd, clp, czk, dkk, gel, hkd, huf, idr, ils, kwd, lkr, mmk, mxn, myr, ngn, nok, nzd, php, pkr, pln, sar, sek, sgd, thb, twd, uah, vef, vnd, zar, xdr, xag (silver), xau (gold), btc, eth, ltc, bch, bnb, eos, xrp, xlm, link, dot, yfi, sol, bits, sats.

Popular category ids: layer-1, layer-2, decentralized-finance-defi, meme-token, artificial-intelligence, ai-agents, real-world-assets-rwa, stablecoins, decentralized-exchange, lending-borrowing, liquid-staking-tokens, gaming, base-ecosystem, solana-ecosystem, ethereum-ecosystem. CoinGecko has 600+ categories: list them with {"mode":"categories"} or see coingecko.com/en/categories.

Popular asset platforms (contract mode): ethereum, base, solana, binance-smart-chain, arbitrum-one, polygon-pos, optimistic-ethereum, avalanche, tron, sui, hyperevm. Full list (460+): api.coingecko.com/api/v3/asset_platforms.

OHLC candle size (set by CoinGecko): 1–2 days → 30 min, 3–30 days → 4 h, 31+ days → 4 days.

Examples

Today's breakouts among the top 500

{ "mode": "markets", "maxRank": 500, "minChange24h": 15, "minVolume24h": 1000000, "sortBy": "change24h", "limit": 25 }

Layer-2 tokens by 30-day performance

{ "mode": "markets", "category": "layer-2", "priceChangeWindows": ["24h", "7d", "30d"], "sortBy": "change30d", "limit": 20 }

Portfolio valuation in EUR

{ "mode": "price", "ids": ["bitcoin", "ethereum", "solana", "aerodrome-finance"], "vsCurrency": "eur" }

Token due diligence by contract (AERO on Base)

{ "mode": "contract", "platform": "base", "contractAddresses": ["0x940181a94A35A4569E4529A3CDfB74e38FD98631"], "includeTickers": true, "includeDeveloper": true }

Hot sectors today + 30-day BTC history

{ "mode": "categories", "categoryOrder": "market_cap_change_24h_desc", "minMarketCap": 100000000, "limit": 15 }
{ "mode": "history", "ids": ["bitcoin"], "days": 30 }

Output

Example markets row (trimmed):

{
"id": "bitcoin",
"symbol": "BTC",
"name": "Bitcoin",
"rank": 1,
"price": 77046,
"change1h": 0,
"change24h": -0.35,
"change7d": -3.4,
"marketCap": 1547359786335,
"fdv": 1547362405889,
"volume24h": 14567569382,
"volumeToMcap": 0.0094,
"circulatingSupply": 20083000,
"athChangePct": -38.9,
"currency": "usd",
"sourceUrl": "https://www.coingecko.com/en/coins/bitcoin",
"fetchedAt": "2026-09-13T08:16:50.000Z"
}
ModeFields
marketsid, symbol, name, rank, price, change1h, change24h, change7d, change14d, change30d, change200d, change1y, marketCap, marketCapChange24h, fdv, volume24h, volumeToMcap, high24h, low24h, circulatingSupply, totalSupply, maxSupply, ath, athChangePct, athDate, atl, atlDate, image, lastUpdated, (sparkline7d)
priceid, price, marketCap, volume24h, change24h, lastUpdated
coins / contractmarket fields + change60d, categories, platforms {chain: address}, genesisDate, hashingAlgorithm, countryOrigin, homepage, whitepaper, twitter, telegram, subreddit, github, explorers, sentimentUpPct, sentimentDownPct, watchlistUsers, description, (community, developer, tickers[], exchangeCount), (contractAddress)
trendingtype (coin/nft/category), trendingRank, id, symbol, name, rank, price, change24h, marketCap, volume24h; NFTs: floorPriceNative, floorPriceChange24h; categories: coinsCount, marketCapChange24h, marketCapChange1h
globaltotalMarketCap, totalVolume24h, marketCapChange24h, volumeChange24h, btcDominance, ethDominance, stablecoinDominance, dominance {}, activeCryptocurrencies, markets, defiMarketCap, defiVolume24h, defiDominance, topDefiCoin, updatedAt
categoriesid, name, marketCap, marketCapChange24h, volume24h, top3Coins, description, updatedAt
exchangesid, name, trustScore, trustScoreRank, volume24hBtc, volume24hBtcNormalized, volume24hUsd, volumeAnomalyRatio, yearEstablished, country, url, hasTradingIncentive, description
historyid, coinId, date, timestamp, price, marketCap, volume24h, changePct
ohlcid, coinId, timestamp, date, open, high, low, close, changePct
searchid, type (coin/exchange/category/nft), name, symbol, rank, query

Every row also has currency (where relevant), sourceUrl and fetchedAt. The dataset schema describes every field (type, meaning, example); views: overview, details, timeseries, sectors, global.

Every run ends with a status message that says how many rows were saved and what was not: ids not found, inputs that failed, inputs not looked up (and why), notes on your input. The SUMMARY record in the key-value store has the same in fields: delivered, missing, failures, notProcessed, notes, warnings, requests, stoppedBy and mode counts (fetched, matched, fallback).

Use it from code / agents

curl -X POST "https://api.apify.com/v2/acts/yadroo~coingecko-markets/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"mode":"price","ids":["bitcoin","ethereum"],"vsCurrency":"eur"}'
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/coingecko-markets').call({ mode: 'markets', maxRank: 500, minChange24h: 15, sortBy: 'change24h' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/coingecko-markets").call(run_input={"mode": "categories", "categoryOrder": "market_cap_change_24h_desc"})
items = client.dataset(run["defaultDatasetId"]).list_items().items

MCP: add https://mcp.apify.com to Claude, Cursor or your own agent and call yadroo/coingecko-markets with the same JSON input.

Pricing

Pay per event: $0.001 per run start + $0.001 per row. Store discounts: Bronze −10 %, Silver −20 %, Gold and above −30 % on the row price; the start event is the same on every plan; platform usage is included. The default run (top 50 coins) costs $0.051; a 4-coin price check $0.005; one global snapshot $0.002; 30 days of history for one coin $0.031. OHLC returns many candles (14 days ≈ 84 rows ≈ $0.085) — use shorter windows if you only need the latest bars.

Rows are charged as they are saved. With a maximum cost per run set, the actor stops at it and ends with "Stopped at your spending limit: N rows delivered" — you pay only for rows you got.

Limits & FAQ

  • Rate limit — without a key CoinGecko allows roughly 5–15 requests/min per IP (shared on Apify's cloud); the actor paces itself at ~9/min. A free Demo key has its own quota of 100 calls/min (the actor paces at ~90/min). HTTP 429 is waited out (Retry-After, else 60 s), within ~2.5 min of waiting per run. Most modes need 1–2 requests; coins/contract/history/ohlc need one request per id.

  • Run time — one id takes ~6.5 s without a key, so about 120 ids fit in the default 15-minute timeout (several hundred with a Demo key). Rows are saved as each id is read; near the timeout the actor stops starting requests and ends SUCCEEDED with "Stopped before the run timeout: N rows saved", the ids not reached named in the status and SUMMARY.notProcessed. Raise the timeout, split the list or set coingeckoApiKey for more.

  • Errors per id — an unknown id is "not found" and the run goes on; another error fails that id only. A block or rate limit that outlasts the retries, or a refused API key, stops the run early and keeps every row already saved. A run fails only when no row could be read because of errors.

  • "Request blocked" (HTTP 403) — CoinGecko's CDN answers an HTML "Request blocked" page instead of a JSON rate-limit error when the calling IP is over the anonymous quota of an endpoint. Since 29.09.2026 this hits the two batch endpoints /coins/markets (mode: markets) and /simple/price (mode: price), and on a shared cloud IP they can stay blocked for minutes. What the actor does:

    • waits the block out (30 s, 45 s, 60 s — ~2.5 min per run) and retries;
    • if ids are set, it then reads those coins one by one from /coins/<id> instead (same row fields except sparkline7d, ~6.5 s per coin, first 10 ids) and says so in the log and in SUMMARY.fallback; exchanges gets its BTC reference price the same way;
    • a top-N screen without ids (a plain markets run, a category or filter run) has no such fallback and fails with that explanation (or, when some pages were read, keeps them and names the rest in the status).

    Modes that read other endpoints (coins, contract, trending, global, categories, exchanges, history, ohlc, search) are not affected. Set coingeckoApiKey (a free CoinGecko Demo key) to leave the anonymous per-IP quota behind, or run again later.

  • Freshness — prices update every 1–2 minutes on CoinGecko's side; every run reads live data.

  • History depth — the public API serves the last 365 days; older from dates need a paid key.

  • Missing data — unknown ids, delisted coins and unsupported currencies are reported as warnings or clear errors, never silently dropped. Some fields (e.g. maxSupply, normalized exchange volume) are null when CoinGecko has no value.

  • Terms — data comes from CoinGecko's public API; attribute CoinGecko when you publish it. Not financial advice.

  • Roadmap — NFT collection data, derivatives tickers, treasury holdings of public companies.


Made by Yadroo — more crypto data actors: defillama-protocols · crypto-sentiment · crypto-news · dexscreener-tokens · wallet-intel · x402-endpoints