Crypto Prices & OHLC History Export - No Login avatar

Crypto Prices & OHLC History Export - No Login

Pricing

from $0.26 / 1,000 coin snapshots

Go to Apify Store
Crypto Prices & OHLC History Export - No Login

Crypto Prices & OHLC History Export - No Login

Export crypto prices, market cap, 24h volume and change for coins by name or ticker, or OHLC candle history from Binance, Kraken or CoinGecko. Public data, no login or API key. Clear not-found rows and run summary.

Pricing

from $0.26 / 1,000 coin snapshots

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

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.

Add coins by name or ticker (bitcoin, eth), click Start, and get one row per coin in about 5 seconds. A run with 2 coins costs about $0.0021.

Crypto Prices & OHLC History: coins by name or ticker turn into price snapshots or OHLC candles from CoinGecko, Binance and Kraken

Table of contents

What it does

The Actor has two modes:

  • 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. With binance or kraken you get OHLC candles (open, high, low, close, volume) for 1h, 4h, 1d or 1w. With coingecko you get daily or hourly price, market cap and volume.

You can write a coin as a CoinGecko ID (bitcoin, ethereum) or as a ticker (btc, ETH, $sol). The Actor finds the coin and shows how it matched it in matchedBy.

Good fit

  • 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 fit / limits

  • 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 binance for long history.

Quick start

  1. Open the Input tab.
  2. Keep the prefilled coins: bitcoin and ethereum. Or add your own.
  3. Keep mode = snapshot.
  4. Click Start.
  5. Open the Output tab and check the Prices (snapshot) view: price, marketCap, volume24h, change24hPct.

Expected result: 2 rows, one for Bitcoin and one for Ethereum, in about 5 seconds.

For candles, set mode = history, choose exchange and interval, and set days.

Use cases

Buyer jobInput pathOutput entityKey fieldsNext integration
Track prices of my coins every daycoins, mode: snapshotcoin snapshotprice, marketCap, volume24h, change24hPctGoogle Sheets, CSV, scheduled run
Top coins by market captopN: 100coin snapshotmarketCapRank, price, marketCapExcel, BI tool
Candles for charts or back-testsmode: history, exchange: binance, interval, daysOHLC candletimestamp, open, high, low, close, volumePython, pandas, database
Long price and market cap historymode: history, exchange: coingecko, interval: 1d, days: 365history pointtimestamp, price, marketCap, volumeSpreadsheet, chart

Input

Input fields

FieldPlain nameTypeRequiredDefault / prefillAllowed valuesEffectExampleRecommendation
modeModestringnodefault and prefill snapshotsnapshot, historyCurrent values or historyhistoryStart with snapshot
coinsCoinsarray of stringsyes, unless topN > 0prefill ["bitcoin", "ethereum"]; no runtime defaultCoinGecko ID or ticker; up to 250 in snapshot, 25 in historyWhich coins to export["btc", "solana"]Use IDs when a ticker is shared by many coins
topNTop coins by market capintegerno0 (off)0–250Snapshot only: adds the top N coins100Combine with coins for extra coins
vsCurrencyCurrencystringnousd63 CoinGecko codes; Binance and Kraken: usd, eur, gbp, jpy, try, brl, aud, cad, chf, btc, eth, bnb, sol, xrpPrice currencyeurBinance quotes usd in USDT
exchangeHistory sourcestringnobinancebinance, kraken, coingeckoHistory only: where candles come fromkrakenbinance for long history
intervalCandle sizestringno1d1h, 4h, 1d, 1wHistory only: one row per interval1hCoinGecko: 1d, or 1h up to 90 days
daysDays backintegerno301–1825 (CoinGecko 1–365)History only: how far back from now365Fewer days = fewer rows = lower cost
maxRowsMax rowsintegerno100001–50000History only: stop after this many candles2000Keep it low to cap cost

Empty input: the run fails with a clear message (INVALID_INPUT) and writes no rows. Add at least one coin or set topN.

Duplicates: if two entries mean the same coin (btc and bitcoin), the coin is exported once. The second entry is marked skipped in RUN_SUMMARY.

Unknown coins: the Actor writes a not_found row with the reason and goes on with the other coins.

Interacting settings

WhenInput AInput BEffective behaviorExampleCost/result effect
Snapshot with bothcoinstopNListed coins first, then top coins; no duplicatescoins: ["dogecoin"], topN: 10Up to 11 rows
HistorydaysintervalRows ≈ days × candles per day, per coindays: 30, interval: 1h720 rows per coin
HistorymaxRowscoinsStops at maxRows in total, coin by coin25 coins, maxRows: 1000Last coins may be partial or skipped
History on KrakendaysintervalOnly about 720 recent candles1h, days: 90About 30 days, status SOURCE_LIMIT
Ticker shared by several coinscoins—Coin with the largest market cap winsuniCheck coin and matchedBy

Input examples

Prices of a few coins

{
"mode": "snapshot",
"coins": ["bitcoin", "ethereum"]
}

Expected behavior: the Actor looks up both coins on CoinGecko and saves 2 rows. Expected output: coin snapshots with price, marketCap, volume24h, change24hPct. Limit or cost note: about $0.0021 per run.

Daily candles for 30 days

{
"mode": "history",
"coins": ["btc", "eth"],
"exchange": "binance",
"interval": "1d",
"days": 30
}

Expected behavior: BTCUSDT and ETHUSDT daily candles from Binance. Expected output: about 60 candle rows with open, high, low, close, volume. The newest candle has isClosed: false. Limit or cost note: about $0.008 per run.

Output

The default Dataset has 3 views: Prices (snapshot), History (OHLC candles) and Not found & errors. Every row has recordType: snapshot, candle or status. Views choose columns; they do not filter rows, so not_found rows also appear in Prices (snapshot) with empty price cells. To keep only one kind, filter by recordType or status in your spreadsheet or code.

Output fields

FieldMeaningTypeCan be empty?Example / enumSource / notes
recordTypeRow kindstringnosnapshot, candle, status—
statusRow resultstringnook, not_found, error—
queryYour entrystringyesbtcAs you typed it, trimmed, lower case, without $; empty for topN rows
matchedByHow the coin was foundstringyesid, symbol, topN, ticker—
coinCoinGecko IDstringyesbitcoinEmpty for Binance/Kraken tickers not checked on CoinGecko
symbol, nameTicker and namestringyesBTC, Bitcoin—
vsCurrencyPrice currencystringnousd—
pricePrice (last close for candles)numberyes82947—
marketCap, marketCapRankMarket cap and ranknumberyes1667051393162, 1Snapshot and CoinGecko history
volume24h24h trading volumenumberyes32352326234Snapshot
change24h, change24hPct24h price change and percentnumberyes521.38, 0.63249Snapshot
high24h, low24h24h high and lownumberyes84074, 81018Snapshot
circulatingSupply, totalSupply, maxSupplySupplynumberyes20097687maxSupply is empty when there is no cap
ath, athDate, atl, atlDateAll-time high and lownumber / stringyes126080Snapshot
exchange, pair, quoteAsset, intervalCandle sourcestringyesbinance, BTCUSDT, USDT, 1dHistory
timestamp, timestampMsData time (candle open time in history)string / numberno for data rows2026-09-14T00:00:00.000ZUTC
open, high, low, closeOHLC pricesnumberyes76842.01Empty for CoinGecko history except open/close
volume, quoteVolume, tradesCandle volume, quote volume, trade countnumberyes15413.49trades only on Binance and Kraken
isClosedCandle is finalbooleanyestrueThe newest candle is still open and can change
messageWhy a row is not_found or errorstringyesNo CoinGecko coin has this ID or ticker.Status rows
source, sourceUrl, fetchedAtWhere and whenstringnocoingecko—

Output entities and surfaces

SituationDataset/API/KVS/live viewResult shapeUser action
Normal itemDataset rows with recordType snapshot or candle (views Prices (snapshot), History (OHLC candles) show their columns)One row per coin or per candleExport or read the fields
Coin not foundDataset rows with recordType: status (view Not found & errors shows their columns)status: not_found row with message; after 20 such rows, one more row lists the restFix the entry or use the CoinGecko ID
Partial resultDataset + RUN_SUMMARY in the key-value storeRows saved so far; RUN_SUMMARY.status is PARTIAL with reason (MAX_ROWS, SOURCE_LIMIT, SOME_NOT_FOUND, CHARGE_LIMIT)Read reason and message
Source down or blockedRUN_SUMMARY, run status FAILEDstatus: ERROR, reason: SOURCE_ERROR, no fake rowsRun again later

Output example

{
"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"
}

This example is trimmed and shows one snapshot row from the first input example. null means the field does not apply to this row kind or the source has no value.

A candle row from the second example:

{
"recordType": "candle",
"status": "ok",
"query": "btc",
"matchedBy": "symbol",
"coin": "bitcoin",
"symbol": "BTC",
"exchange": "binance",
"pair": "BTCUSDT",
"interval": "1d",
"timestamp": "2026-09-14T00:00:00.000Z",
"open": 76842.01,
"high": 79600,
"low": 76388.72,
"close": 78189.21,
"volume": 15413.48971,
"trades": 3225517,
"isClosed": true,
"source": "binance"
}

Pricing and limits

Pricing unit

You pay per event (pay-per-event). The platform usage is included in these prices.

EventWhen it is chargedPrice (Free plan)Gold plan
Actor startOnce per run$0.0015$0.0015
Coin snapshotOne saved snapshot row$0.0003$0.000255
History candleOne saved candle or history point$0.0001$0.000085
Coin lookup with no matchOne requested coin that matched no coin or pair$0.0002$0.0002

Bronze and Silver plans pay prices between Free and Gold.

A run where no coin is found costs the start fee plus $0.0002 per coin. A run that fails on invalid input costs only the start fee. If a source is down, you pay the start fee and only the rows that were saved. Rows not_found and error are free, apart from the small lookup fee. Set Max cost per run to stop early: the Actor saves only the rows that fit in it and reports CHARGE_LIMIT.

Cost examples

ScenarioInput scopeExpected item/event countBase chargeOptional chargeStop/cap behavior
Prefill2 coins, snapshot2 snapshots$0.0021none—
Top 100topN: 100100 snapshots$0.0315none—
One coin, daily candles for a yeardays: 365, 1d366 candles$0.0381nonemaxRows
25 coins, hourly for 30 days1h, days: 3018,000 candles$1.80nonemaxRows
Largest runmaxRows: 5000050,000 candles$5.00noneStops at maxRows
Nothing found1 unknown coin1 lookup with no match$0.0017none—

Free-plan prices. The real number of rows depends on how much history the exchange has.

Limits

  • Snapshot: up to 250 coins plus topN up 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.

API, export and integrations

  • API: start a run with POST https://api.apify.com/v2/acts/cliqtomedia~crypto-market-data/runs and the input JSON. Read rows from the run's default Dataset.
  • Export: download the Dataset as JSON, CSV, Excel, XML or RSS from the Output tab or the API.
  • Scheduling: create a schedule in Apify Console (for example every day at 00:05 UTC) to build a daily price table.
  • Webhooks / no-code: use Apify integrations for Google Sheets, Zapier, Make or a webhook after each run.

Use with AI agents (MCP)

  • MCP server URL with only this Actor: https://mcp.apify.com?tools=cliqtomedia/crypto-market-data.
  • Smallest useful input: {"mode": "snapshot", "coins": ["bitcoin", "ethereum"]}.
  • Key output fields: coin (CoinGecko ID), price (in vsCurrency), marketCap, change24hPct (24h change in percent), timestamp (UTC time of the value).
  • A snapshot run takes about 5 seconds and costs about $0.0021 for 2 coins. History is up to 25 coins and 50,000 rows per run. Data is not real-time and is not investment advice.

Troubleshooting

A coin is not_found

Symptom: a row with status: not_found and a message. Likely reason: a typo, or the ticker is not listed on CoinGecko (snapshot) or the pair is not on the exchange (history). Check: open the coin on coingecko.com; the ID is the last part of the URL (/coins/the-graph). Action: use the CoinGecko ID, another currency, or another exchange.

A ticker returns a different coin

Symptom: coin is not the coin you meant. Likely reason: many coins share the same ticker. The Actor picks the one with the largest market cap. Check: matchedBy is symbol. Action: use the CoinGecko ID instead of the ticker.

Kraken history is shorter than days

Symptom: RUN_SUMMARY.reason is SOURCE_LIMIT. Likely reason: Kraken returns only about 720 recent candles. Action: use exchange: binance or a larger interval.

The run failed with SOURCE_ERROR

Symptom: run status FAILED, RUN_SUMMARY.status is ERROR. Likely reason: the public API was down or limited requests for a while. Action: run again in a few minutes. You pay only the start fee and saved rows.

FAQ

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.

Is this investment advice?

No. This is a data export tool. It does not give buy or sell signals.

Support

For bugs, questions or feature requests, use the Issues tab of this Actor. Include the run ID, the input mode and the error text. Never send API tokens, passwords or account data.