CoinMarketCap API: Get Fear and Greed Index
Returns the current crypto Fear and Greed Index with yesterday, last week and last month comparisons, plus total crypto market size, BTC and ETH dominance from CoinMarketCap.
Unofficial. Not affiliated with or endorsed by CoinMarketCap.
Inputs
This method takes no input.
Input as JSON
{}Output
{ "currency": "USD", "page_url": "https://coinmarketcap.com/charts/fear-and-greed-index/" , "index_label": "Neutral", "index_value": 48, "last_week_value": 50, "yesterday_value": 48, "index_updated_at": "2026-10-23T07:53:10Z", "last_month_value": 74, "total_market_cap_usd": 2732028899220.677, "total_volume_24h_usd": 70877827969.96, "bitcoin_dominance_percent": 59.984745021747, "ethereum_dominance_percent": 10.72936412948, "total_market_cap_change_24h_percent": -0.5958}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"coinmarketcap.com/get_fear_and_greed_index","input":{}}' # 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": "coinmarketcap.com/get_fear_and_greed_index" , "input": {}})# 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": "coinmarketcap.com/get_fear_and_greed_index" , "input": {} }), 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 coinmarketcap.com/get_fear_and_greed_index# with {}"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": [], "properties": {}}Output schema
{ "type": "object", "required": [ "index_value", "index_label", "yesterday_value", "last_week_value", "last_month_value", "total_market_cap_usd", "total_market_cap_change_24h_percent", "total_volume_24h_usd", "bitcoin_dominance_percent", "ethereum_dominance_percent", "currency", "index_updated_at", "page_url" ], "properties": { "currency": { "type": "string", "description": "Currency of market capitalization and trading volume: USD." }, "page_url": { "type": "string", "description": "CoinMarketCap Fear and Greed Index chart page." }, "index_label": { "type": "string", "description": "Current score label: Extreme fear, Fear, Neutral, Greed, or Extreme greed." }, "index_value": { "type": "integer", "description": "Current Fear and Greed score on a 0–100 scale." }, "last_week_value": { "type": "integer", "description": "Fear and Greed score one week ago." }, "yesterday_value": { "type": "integer", "description": "Fear and Greed score yesterday." }, "index_updated_at": { "type": "string", "format": "date-time", "description": "Time CoinMarketCap updated the index, in ISO 8601 UTC." }, "last_month_value": { "type": "integer", "description": "Fear and Greed score one month ago." }, "total_market_cap_usd": { "type": "number", "description": "Total cryptocurrency market capitalization in USD." }, "total_volume_24h_usd": { "type": "number", "description": "Total cryptocurrency trading volume over 24 hours in USD." }, "bitcoin_dominance_percent": { "type": "number", "description": "Bitcoin share of the total cryptocurrency market capitalization, in percent." }, "ethereum_dominance_percent": { "type": "number", "description": "Ethereum share of the total cryptocurrency market capitalization, in percent." }, "total_market_cap_change_24h_percent": { "type": "number", "description": "Percentage change in total cryptocurrency market capitalization over 24 hours." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
coinmarketcap.com/get_fear_and_greed_index- Returns
- index value and label, past comparisons, market cap, 24h volume, dominance, update time
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 coinmarketcap.com/get_fear_and_greed_index; it needs no input.
Ask your agent
- What is the crypto Fear and Greed Index reading right now, and how does it compare to yesterday, last week, and last month?
- Show me today's crypto market sentiment score along with its label, like Fear, Neutral, or Greed.
- Can you check the total cryptocurrency market cap, 24-hour trading volume, and current Bitcoin and Ethereum dominance percentages on CoinMarketCap?
- I want to know whether investors are feeling greedy or fearful in crypto today, and when that index was last updated.
- Give me a snapshot of the overall crypto market: sentiment index value, total market capitalization, BTC dominance, and ETH dominance.
See more
All CoinMarketCap methodsGets 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_priceLists the largest cryptocurrencies on CoinMarketCap ranked by market cap. Each coin comes with its price, changes, volume and supply in the chosen currency.
coinmarketcap.com/list_top_coinsLists the largest price rises and falls among CoinMarketCap's top 100 coins with over $50,000 in 24-hour volume, for a chosen period.
coinmarketcap.com/list_gainers_and_losersGets 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 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_dateGets 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.
coingecko.com/get_coin_price_historyLists 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_coinsGets a coin's current Kraken price, bid and ask, and 24-hour trading statistics in a chosen currency, with change since today's midnight UTC open.
kraken.com/get_coin_price