CoinGecko API Alternative — Crypto Scraper
Pricing
Pay per event
CoinGecko API Alternative — Crypto Scraper
Pull crypto market data from CoinGecko — price, 24h change, market cap, volume, supply, ATH/ATL, exchanges — one clean typed row per coin, exported to JSON or CSV on a schedule. We handle the rate limits, retries, and proxy routing so the data lands. Built on the CoinGecko v3 API.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
🎯 What this scrapes
CoinGecko covers 14 000+ crypto assets with deep market data. This Actor takes a list of coin IDs (e.g. bitcoin, ethereum, solana), absorbs upstream rate limits and transient errors with backoff, and writes one row per coin — current price in USD plus your chosen secondary currency, 24h/7d/30d price change percentages, market cap, 24h trading volume, circulating supply, ATH/ATL with ISO-8601 timestamps, community sentiment, and exchange listing count. Run it once for a snapshot or on a schedule for a time-series — we keep the connection honest so your dataset stays clean.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
💡 Use cases
- Crypto portfolio tracker API — schedule a daily run with your watchlist, pipe to a spreadsheet or your own dashboard.
- Price-change alerting — diff successive runs, fire a Discord / Slack webhook when 24h change crosses a threshold.
- Algorithmic trading research — pull 50 coins by market cap rank, feed into a backtest pipeline without hitting the free-tier ceiling.
- Tax reporting snapshots — daily price records stored for capital-gains math at year-end.
- No-code automation (n8n / Make / Zapier) — connect via the Apify integration node; build a daily watchlist alert to Discord without writing a line of code.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the Apify API.
For no-code workflows: install the Apify node for n8n or the Apify module for Make, connect your Apify token, and point it at DevilScrapes/coingecko-crypto-scraper.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
coinIds | array | yes | ["bitcoin", "ethereum", "solana"] | List of CoinGecko coin IDs (lowercase slugs). Find them at coingecko.com — the slug in the URL. |
vsCurrency | string | no | "eur" | ISO currency code (lowercase) alongside USD — e.g. eur, gbp, jpy. USD is always included. |
includeDeveloperData | boolean | no | false | Add GitHub forks/stars/commits where the coin has a linked repo. |
apiKey | string | no | — | Optional — lifts the demo-tier limit from 10 req/min to your plan's quota. |
concurrency | integer | no | 2 | Parallel coin lookups. Keep low on the demo tier (10 req/min ceiling). |
proxyConfiguration | object | no | {"useApifyProxy": false} | CoinGecko rate-limits aggressive scrapers — Apify Proxy with rotating sessions helps when the ceiling is tight. |
Example input
{"coinIds": ["bitcoin","ethereum","solana"],"vsCurrency": "eur","concurrency": 2,"proxyConfiguration": {"useApifyProxy": false}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
coin_id | string | CoinGecko coin slug. |
symbol | string | Ticker symbol. |
name | string | Coin display name. |
image_url | string | null | Coin logo (large) URL. |
current_price_usd | number | null | Current price in USD. |
current_price_vs | number | null | Current price in the secondary vsCurrency. |
vs_currency | string | Secondary currency code used. |
price_change_24h_pct | number | null | 24h price change percent. |
price_change_7d_pct | number | null | 7d price change percent. |
price_change_30d_pct | number | null | 30d price change percent. |
market_cap_usd | number | null | Market cap in USD. |
market_cap_rank | integer | null | Market cap rank across all coins. |
total_volume_usd | number | null | 24h trading volume in USD. |
circulating_supply | number | null | Circulating supply. |
total_supply | number | null | Total supply. |
max_supply | number | null | Maximum supply (null for unlimited). |
ath_usd | number | null | All-time high in USD. |
ath_date | string | null | ATH timestamp (ISO-8601). |
atl_usd | number | null | All-time low in USD. |
atl_date | string | null | ATL timestamp (ISO-8601). |
sentiment_up_pct | number | null | Community sentiment % bullish. |
exchanges_count | integer | null | Number of exchanges listing this coin. |
github_stars | integer | null | GitHub stars (when includeDeveloperData=true). |
github_forks | integer | null | GitHub forks. |
coingecko_url | string | Canonical CoinGecko URL. |
scraped_at | string | ISO-8601 timestamp when this row was recorded. |
Example output
{"coin_id": "bitcoin","symbol": "btc","name": "Bitcoin","image_url": "https://assets.coingecko.com/coins/images/1/large/bitcoin.png","current_price_usd": 71250.32,"current_price_vs": 65120.10,"vs_currency": "eur","price_change_24h_pct": 2.41,"price_change_7d_pct": -1.05,"price_change_30d_pct": 14.22,"market_cap_usd": 1408000000000,"market_cap_rank": 1,"total_volume_usd": 28400000000,"circulating_supply": 19700000,"ath_usd": 73750.07,"ath_date": "2024-03-14T07:10:36.635Z","sentiment_up_pct": 84.0,"exchanges_count": 1042,"coingecko_url": "https://www.coingecko.com/en/coins/bitcoin","scraped_at": "2026-06-01T10:15:00Z"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.005 | One-off warm-up charge per run |
result | $0.002 | Per dataset item written |
Example: 1 000 results at the rates above ≈ $2.00. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit, good for 2 500 coin lookups before you owe anything.
🚧 Limitations
- Demo-tier rate limit: CoinGecko's free tier caps you at roughly 10 req/min from a single IP. Attach a CoinGecko Pro API key to lift it; otherwise keep
concurrencyat 2 or lower. - No historical OHLC: this Actor returns current and recent-change data only. Historical candlestick data is a separate use case.
- Some fields null for low-coverage coins: lesser-known assets may have incomplete market data on CoinGecko's side.
- Scheduling is your job: the Actor runs once per trigger. For continuous time-series, wire it to an Apify Schedule.
❓ FAQ
Is this a CoinGecko API alternative?
Yes — that's exactly the use case. The CoinGecko free tier is rate-limited to ~10 req/min, and a Pro subscription runs $129/mo. This Actor wraps the same public v3 endpoint, handles rate-limit back-off for you, and charges $2.00 per 1 000 results. For a hobby project scraping 100 coins a day, that's $0.07/day, with no monthly Pro subscription.
Is this real-time?
CoinGecko's free API updates every ~60 seconds. For sub-second feeds, use an exchange WebSocket directly.
What about historical OHLC data?
Out of scope for this Actor — it returns current snapshots and recent price-change percentages only. Historical candlestick data requires the CoinGecko Pro /coins/{id}/ohlc endpoint.
I'm hitting 429 errors — what should I do?
The CoinGecko rate limit is the binding constraint on the free tier. Lower concurrency to 1, or attach a Pro API key in the apiKey field. We already handle transient 429s with exponential backoff and session rotation — persistent 429s mean the upstream quota is genuinely exhausted.
Can I use this with n8n, Make, or Zapier?
Yes. Connect via the Apify integration node in your automation platform, paste your Apify API token, select DevilScrapes/coingecko-crypto-scraper, and pass the coin IDs as input. The run output lands in an Apify dataset you can map to any downstream action.
Can I filter coins by category?
Pass the full ID list directly. Category enumeration (e.g. "pull all DeFi coins") is on the roadmap.
Do I need a CoinGecko account?
No account needed for the demo tier. The apiKey field is optional and only required if you want to lift the rate limit with a Pro plan.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab in Apify Console — we ship fixes weekly and we read every report.