CoinGecko API Alternative — Crypto Scraper
Pricing
from $2.00 / 1,000 result emitteds
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
from $2.00 / 1,000 result emitteds
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
a month 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.20 | 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.