CoinGecko API: Get coin price history
Gets a coin's daily prices and price change over the last 7, 30, 90 or 365 days, with UTC dates. Today's price may change.
Unofficial. Not affiliated with or endorsed by CoinGecko.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Coin, required
coin Cryptocurrency name or symbol, for example Dogecoin or DOGE.
Bitcoin
- Period optional
period How far back to look, for example last_90_days.
last_90_days
One of
last_7_days,last_30_days,last_90_days,last_year. Defaultlast_30_days.- Currency optional
currency Currency for prices, for example USD or EUR.
USD (default)
Input as JSON
{ "coin": "Bitcoin", "period": "last_90_days"}Output
{ "symbol": "BTC", "coin_url": "https://www.coingecko.com/en/coins/bitcoin" , "currency": "USD", "coin_name": "Bitcoin", "daily_prices": [ { "date": "2026-07-25", "price": 63938.29547778731 }, { "date": "2026-07-26", "price": 64318.24520120312 }, { "date": "2026-07-27", "price": 65343.824510845894 } ], "lowest_price": 62772.57726413174, "highest_price": 86596.74004249526, "period_end_date": "2026-10-23", "lowest_price_date": "2026-08-02", "period_start_date": "2026-07-25", "highest_price_date": "2026-09-22", "price_change_percent": 27.799511297910982}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"coingecko.com/get_coin_price_history","input":{"coin":"Bitcoin","period":"last_90_days"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "coingecko.com/get_coin_price_history" , "input": { "coin": "Bitcoin", "period": "last_90_days" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "coingecko.com/get_coin_price_history" , "input": { "coin": "Bitcoin", "period": "last_90_days" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run coingecko.com/get_coin_price_history# with {"coin":"Bitcoin","period":"last_90_days"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "coin" ], "properties": { "coin": { "type": "string", "description": "Cryptocurrency name or symbol, for example Dogecoin or DOGE." }, "period": { "enum": [ "last_7_days", "last_30_days", "last_90_days", "last_year" ], "type": "string", "default": "last_30_days", "description": "How far back to look, for example last_90_days." }, "currency": { "type": "string", "default": "USD", "description": "Currency for prices, for example USD or EUR." } }}Output schema
{ "type": "object", "required": [ "coin_name", "symbol", "currency", "period_start_date", "period_end_date", "price_change_percent", "highest_price", "highest_price_date", "lowest_price", "lowest_price_date", "daily_prices", "coin_url" ], "properties": { "symbol": { "type": "string" }, "coin_url": { "type": "string", "description": "CoinGecko page for this coin." }, "currency": { "type": "string" }, "coin_name": { "type": "string" }, "daily_prices": { "type": "array", "items": { "type": "object", "required": [ "date", "price" ], "properties": { "date": { "type": "string", "format": "date", "description": "UTC date of the price." }, "price": { "type": "number", "description": "Price in the requested currency." } }, "additionalProperties": false } }, "lowest_price": { "type": "number" }, "highest_price": { "type": "number" }, "period_end_date": { "type": "string", "format": "date" }, "lowest_price_date": { "type": "string", "format": "date" }, "period_start_date": { "type": "string", "format": "date" }, "highest_price_date": { "type": "string", "format": "date" }, "price_change_percent": { "type": "number" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
coingecko.com/get_coin_price_history- Returns
- coin name, symbol, price change percent, highest and lowest prices with dates, daily prices
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method coingecko.com/get_coin_price_history with the inputs above.
Ask your agent
- How has Bitcoin's daily price moved over the last 30 days in USD?
- Show me Ethereum's highest and lowest prices from the past 90 days, priced in EUR.
- What was Dogecoin's price change percent over the last year on coingecko.com?
- I need the daily closing prices for Solana for the last 7 days, with UTC dates.
- Give me Cardano's 365-day price history in USD, including the peak and trough dates.
See more
All CoinGecko methodsGets a coin's price, market cap and 24-hour volume at 00:00 UTC on a past date. Non-USD currencies are available only for the last 365 days.
coingecko.com/get_coin_price_on_dateLists up to 15 of the most-searched coins on CoinGecko in trending order, with price and 24-hour change in the chosen currency. Non-USD prices may be unavailable for some coins.
coingecko.com/list_trending_coinsLists CoinGecko crypto sectors by market cap with daily change, volume, leading coins and category pages, optionally filtered by name or link.
coingecko.com/list_crypto_categoriesGets a cryptocurrency's price, changes, supply, market cap, volume and all-time high in a chosen currency. If a name or symbol is shared, returns the coin with the largest market cap.
coinmarketcap.com/get_coin_priceGets a cryptocurrency's price, 24-hour change, market statistics, popularity, tradability, description and website from its public Coinbase price page.
coinbase.com/get_coin_overviewGets a Binance spot pair's latest price and rolling 24-hour trading statistics from a coin name or symbol. Only currently trading pairs are available.
binance.com/get_coin_priceLooks up a cryptocurrency's current Coinbase spot, buy and sell prices in a chosen currency.
coinbase.com/get_coin_priceGets Binance spot price candles for a coin and quote currency, newest by default or within a UTC date range, up to 1,000 candles.
binance.com/get_price_history