How to use it: 3 steps
- Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
bitcoinin Coins. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
Export crypto prices for the coins you choose: current price, market cap, 24h volume and 24h change, or OHLC candle history from Binance, Kraken or CoinGecko. No login and no API key.
snapshot— one row per coin with the current price, market cap, market cap rank, 24h volume, 24h change, 24h high and low, supply and all-time high. Data comes from the CoinGecko public API. You can list coins, take the top N coins by market cap, or both.history— price history for each coin. Withbinanceorkrakenyou get OHLC candles (open, high, low, close, volume) for1h,4h,1dor1w. Withcoingeckoyou get daily or hourly price, market cap and volume.
Good for
- Daily price and market cap table for a list of coins in a spreadsheet.
- OHLC candles for charts, back-tests or reports, back to 2017 on Binance.
- Top 100 coins by market cap, ready to export as CSV or Excel.
Not a good fit
- Not real-time. Prices are as fresh as the public API at run time (CoinGecko updates about every minute). Do not use it for trading signals.
- Not investment advice. The Actor only copies public market data.
- No order books, trades, wallets, DEX pools or derivatives.
- Kraken keeps only about 720 recent candles per pair. Use
binancefor long history.
Who uses it
Spreadsheet users
Keep a daily table of prices for the coins you follow.
Data analysts
Get OHLC candles for charts and back-tests in Python.
Report writers
Export the top 100 coins by market cap as CSV.
Price
Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.
| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.0015 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Coin snapshot | $0.0003 (from $0.000255 on paid Apify plans) | One saved coin row with current price, market cap, 24h volume and 24h change (snapshot mode). |
| History candle | $0.0001 (from $0.000085 on paid Apify plans) | One saved OHLC candle or history point for one coin (history mode). |
| Coin lookup with no match | $0.0002 | One requested coin that matched no coin or trading pair. Covers the lookup requests. |
Examples
- One coin snapshot: about $0.0018.
- 1,000 coin snapshots: about $0.30.
- Every day 100 coin snapshots, for 30 days: about $0.95 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 16,000 coin snapshots.
Prices checked on 24 October 2026. See the current price on Apify.
Questions
Is the data live?
No. You get prices from the public API at run time. Do not use it for trading signals.
Is this investment advice?
No. It only copies public market data.
Does it include order books?
No. Order books, trades, wallets and DEX pools are not included.
How many coins can I get?
Snapshot mode takes up to 250 coins plus the top 250. History mode takes up to 25 coins.
Do I need an account or API key on CoinGecko, Binance or Kraken?
No. The Actor uses public endpoints. No login, no API key.
Is the data real-time?
No. You get the values at run time. CoinGecko updates about every minute. The newest candle has isClosed: false and can still change.
Why does my history have fewer rows than days × interval?
The coin may be newer than your period, the exchange may not have old data, or maxRows stopped the run. Check RUN_SUMMARY for each coin.
Where does the data come from?
Data provided by CoinGecko, and public market data from Binance and Kraken. The Actor does not change the values; it only renames fields to one schema.
Details
Step by step on Apify
- Open the Input tab.
- Keep the prefilled
coins:bitcoinandethereum. Or add your own. - Keep
mode=snapshot. - Click Start.
- Open the Output tab and check the Prices (snapshot) view:
price,marketCap,volume24h,change24hPct.
Use cases
| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Track prices of my coins every day | coins, mode: snapshot | coin snapshot | price, marketCap, volume24h, change24hPct | Google Sheets, CSV, scheduled run |
| Top coins by market cap | topN: 100 | coin snapshot | marketCapRank, price, marketCap | Excel, BI tool |
| Candles for charts or back-tests | mode: history, exchange: binance, interval, days | OHLC candle | timestamp, open, high, low, close, volume | Python, pandas, database |
| Long price and market cap history | mode: history, exchange: coingecko, interval: 1d, days: 365 | history point | timestamp, price, marketCap, volume | Spreadsheet, chart |
Tips for better results
- Use Binance for long history. It goes back to 2017.
- Avoid Kraken for long periods. It keeps about 720 recent candles.
- Schedule a daily snapshot run to build your own price table.
Limits and good to know
- Snapshot: up to 250 coins plus
topNup to 250 per run - History: up to 25 coins and 50,000 rows per run. Binance has data back to 2017, Kraken only about 720 recent candles, CoinGecko up to 365 days
- A run stops source work after about 4 minutes and keeps what it saved
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"recordType": "snapshot",
"status": "ok",
"query": "bitcoin",
"matchedBy": "id",
"coin": "bitcoin",
"symbol": "BTC",
"name": "Bitcoin",
"vsCurrency": "usd",
"price": 82947,
"marketCap": 1667051393162,
"marketCapRank": 1,
"volume24h": 32352326234,
"change24h": 521.38,
"change24hPct": 0.63249,
"high24h": 84074,
"low24h": 81018,
"maxSupply": 21000000,
"timestamp": "2026-10-13T17:53:53.000Z",
"open": null,
"close": null,
"source": "coingecko",
"sourceUrl": "https://www.coingecko.com/en/coins/bitcoin",
"fetchedAt": "2026-10-13T17:55:08.988Z"
}Use it from code
Actor ID: cliqtomedia/crypto-market-data. You need your Apify API token from Apify Console → Settings → API & Integrations.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/crypto-market-data").call(run_input={
"mode": "snapshot",
"coins": [
"bitcoin",
"ethereum"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~crypto-market-data/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "snapshot", "coins": ["bitcoin", "ethereum"]}'# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("cliqtomedia/crypto-market-data")
result = tool.invoke({"run_input": {"mode": "snapshot", "coins": ["bitcoin", "ethereum"]}})
print(result)The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.
Data fields (40)
| Field | Type | Meaning |
|---|---|---|
recordType | string | Row type: snapshot (current market data), candle (one history bar) or status (not_found / error for one input). |
status | string | Row result: ok, partial (some values missing), not_found or error. See message. |
query | string | Your coin entry as typed (lowercased), or null for topN rows. |
matchedBy | string | How the coin was matched: id (CoinGecko ID), symbol (ticker, largest market cap wins), topN, or ticker (used as typed on the exchange). |
coin | string | CoinGecko coin ID, e.g. bitcoin. |
symbol | string | Ticker in upper case, e.g. BTC. |
name | string | Coin name, e.g. Bitcoin. |
vsCurrency | string | Quote currency you asked for, e.g. usd. |
price | number | Snapshot: current price. Candle: close price. |
marketCap | number | Market capitalisation in vsCurrency (snapshot; coingecko history at the close point). |
marketCapRank | number | CoinGecko market cap rank. |
fullyDilutedValuation | number | Fully diluted valuation in vsCurrency. |
volume24h | number | Trading volume over the last 24 hours in vsCurrency. |
change24h | number | Price change over 24 hours in vsCurrency. |
change24hPct | number | Price change over 24 hours, percent. |
marketCapChange24hPct | number | Market cap change over 24 hours, percent. |
high24h | number | 24-hour high price. |
low24h | number | 24-hour low price. |
circulatingSupply | number | Circulating supply. |
totalSupply | number | Total supply. |
maxSupply | number | Maximum supply, null if unlimited or unknown. |
ath | number | All-time high price. |
athChangePct | number | Distance from the all-time high, percent. |
athDate | string | All-time high date, ISO 8601. |
atl | number | All-time low price. |
atlDate | string | All-time low date, ISO 8601. |
image | string | Coin logo URL from CoinGecko. |
exchange | string | History source: binance, kraken or coingecko. |
pair | string | Trading pair, e.g. BTCUSDT (Binance), XXBTZUSD (Kraken), bitcoin/usd (CoinGecko). |
quoteAsset | string | Quote asset of the pair, e.g. USDT. Binance quotes usd in USDT. |
interval | string | Candle interval: 1h, 4h, 1d or 1w. |
timestamp | string | Snapshot: when CoinGecko last updated the price. Candle: candle open time. ISO 8601 UTC. |
timestampMs | number | Same time as Unix milliseconds. |
open | number | Candle open price. Coingecko history: CoinGecko price at the start of the interval. |
high | number | Candle high price (null for coingecko history). |
low | number | Candle low price (null for coingecko history). |
close | number | Candle close price. Coingecko history: CoinGecko price at the next interval boundary, or the live price while isClosed is false; null if CoinGecko has no point there. |
volume | number | Candle volume in the base coin (exchanges). |
quoteVolume | number | Volume in the quote asset. Binance: candle quote volume from the exchange. Kraken: volume × VWAP of the candle. Coingecko history: rolling 24h volume across all markets at the close point (not a per-candle volume). |
trades | number | Number of trades in the candle (exchanges). |
Input settings (8)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Mode | mode | string | "snapshot" |
| Coins | coins | array | ["bitcoin", "ethereum"] |
| Top coins by market cap | topN | integer | 0 |
| Quote currency | vsCurrency | string | "usd" |
| History source | exchange | string | "binance" |
| Candle interval | interval | string | "1d" |
| Days of history | days | integer | 30 |
| Max candle rows | maxRows | integer | 10000 |



