Companion to crypto_history() but for CoinGecko. Returns daily OHLC,
volume, and market-cap timeseries in a tibble whose column names match
the crypto2 CMC output.
Usage
cg_history(
coin_list = NULL,
convert = "USD",
limit = NULL,
start_date = NULL,
end_date = NULL,
interval = NULL,
requestLimit = 400,
sleep = 0,
wait = 60,
finalWait = FALSE,
single_id = TRUE,
date_convention = c("end_of_day", "raw")
)Arguments
- coin_list
string if NULL retrieve all currently existing coins (
cg_list()), or provide list of crypto currencies in thecg_list()/cg_listings()format.- convert
(default:
"USD"). Any CoinGecko quote currency, e.g."BTC","ETH"or"EUR".- limit
integer Return the top n records, default is all tokens.
- start_date, end_date
date Filter the returned timeseries to this date window after fetching.
- interval
string Always coerced to
"daily"– CoinGecko website endpoints return daily granularity for full-history pulls. Hourly is not available without an API key.- requestLimit
Kept for parity with
crypto_history()– ignored (CoinGecko returns full history per coin in one call).- sleep
integer (default
0) Seconds to sleep between API requests. The internal client enforces a polite floor to stay within CoinGecko's per-minute budget.- wait
waiting time before retry in case of fail (default
60).- finalWait
Sleep 60s after the last call (mirrors
crypto_history()).- single_id
Kept for parity with
crypto_history()– ignored; CoinGecko endpoints are always single-coin per call.- date_convention
Either
"end_of_day"(the default) or"raw". CoinGecko's native daily series timestamps each point at 00:00:00 UTC of date X, which is the same physical instant as 23:59:59 UTC of date X-1 – i.e. CG labels it as the start-of-day rather than the close-of-day. CMC (andcrypto_history()) label that instant as date X-1 (the day that just ended), which is also the standard asset-pricing convention used by CRSP/Compustat and major academic datasets. With"end_of_day"(default)cg_history()shifts CG's midnight ticks by -1 day soclose[X] / close[X-1] - 1is the return earned during date X, matching CMC. Pass"raw"to keep CG's native start-of-day labelling.
Value
Crypto currency historic OHLC market data in a tibble:
- id
CoinGecko internal numeric id (NA if unknown).
- slug, name, symbol
Coin identifiers.
- timestamp
POSIXct (UTC), midnight of the trading day.
- ref_cur_id
Quote currency code (e.g.
"usd").- ref_cur_name
Upper-cased quote currency.
- open, high, low
Daily OHLC from 4-hour candles (last 30 days).
- close
Daily close from the price series; back-filled from the OHLC candles where the price series has no value.
- volume
Daily total volume.
- market_cap
Daily market cap.
- time_open, time_high, time_low, time_close
NA– CoinGecko does not expose intra-day OHLC timestamps in these endpoints.
Details
No API key is required. When the requested coin's numeric id is missing
in coin_list, cg_id_mapping() is consulted to fill the id column.
All data come from CoinGecko's website chart endpoints; no API and no key are used. Coverage:
Close, volume and market cap for the full lifetime of each coin, in any quote currency. In USD they come from CoinGecko's daily CSV export (one request per coin), otherwise from the website's chart data (two requests per coin).
OHLC (
open/high/low) is built from 4-hour candles (one extra request per coin) and covers the most recent 30 days; older rows haveNAthere. Longer windows are only offered as 4-day candles, which are not daily bars. For a one-shot complete OHLC backfill seevignette("coingecko-pro-backfill").
Only completed days are returned. If no close/volume/market-cap series can be retrieved for any requested coin, the function stops with an error (the source has most likely changed); if it fails for some coins only, a warning names them.
Fallback (opt-in). With options(crypto2.cg_api_fallback = TRUE),
coins the website cannot serve are fetched from CoinGecko's public API
instead, still without a key. Its daily history covers only the last
365 days, so this is off by default: a call that falls back warns and
lists the affected coins in attr(result, "cg_api_fallback").