Crypto Fear and Greed Index Scraper | Daily + Full History
Pricing
from $0.44 / 1,000 index readings
Crypto Fear and Greed Index Scraper | Daily + Full History
Daily Crypto Fear and Greed Index readings as dated rows: the 0 to 100 value, its label and the publisher, back to February 2018. Add CoinMarketCap's Fear and Greed score with that day's Bitcoin price, or its Altcoin Season Index. $0.46 per 1,000 readings.
Pricing
from $0.44 / 1,000 index readings
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Get the Crypto Fear and Greed Index as dated rows: today's reading, every reading since 1 February 2018, or any window in between, each with its 0 to 100 value and the word attached, Extreme Fear to Extreme Greed. Two more daily indexes come in the same row shape if you want them, CoinMarketCap's own Fear and Greed score with that day's Bitcoin price, and its Altcoin Season Index.
Those two only start in June 2023 and March 2024, so a backtest reaching further back has one index to work with, not three. And a sentiment index describes a mood. It is not a signal, and nothing here is advice.
| Input | Which indexes, and how many days back or a date window |
| Output | One row per index per day: date, value, label, publisher, and on CoinMarketCap rows the Bitcoin price and volume |
| Ceiling | 10,000 rows per run; the full history of all three is about 5,200 |
| Account needed | None |
| Price | $0.46 per 1,000 readings, flat on every plan. The free plan's $5 a month covers about 10,000 |
🔍 What Crypto Fear and Greed Index Scraper does
| Index | Published by | Starts | What it measures |
|---|---|---|---|
fear-greed | alternative.me | 2018-02-01 | The original index. Built from Bitcoin's volatility, momentum and volume, social media, Bitcoin dominance and search trends; its survey part is paused. |
cmc-fear-greed | CoinMarketCap | 2023-06-29 | A second reading of the same idea, calculated separately. Rows carry that day's Bitcoin price and 24-hour volume. |
altcoin-season | CoinMarketCap | 2024-03-22 | A different question: what share of the top 100 coins beat Bitcoin over the last 90 days. |
Every value is the publisher's own; nothing is estimated or filled in. The two Fear and Greed indexes weigh different things and do not always agree. On 20 September they read 71 and 72.
When you pick more than one index, the row cap is shared newest first, so two indexes and 20 rows give you ten days of each rather than twenty of whichever came first. The log says how many readings your window held, so you can see what the cap left behind.
The Altcoin Season history carries no label, so the publisher's own cut-offs are applied: 75 and
above is Altcoin Season, 25 and below Bitcoin Season, anything between reads "Neither season". Those
rows say classifiedBy: "publisher thresholds", so you know the number is theirs and the word is
applied.
📋 What data you get from each daily reading
| What you get | Field |
|---|---|
| The day, and the time stamp of the reading | date, timestamp |
| Which index it is | index, indexName |
| The value, its label, and who set the label | value, classification, classifiedBy |
| The scale the value sits on | scaleMin, scaleMax |
| Whether it is the newest reading of that index in the run | isLatest |
| Who published it, with a link for the credit | source, sourceUrl |
| CoinMarketCap rows: Bitcoin's price and 24-hour volume that day | btcPriceUsd, btcVolume24hUsd |
| Altcoin Season rows: the altcoin market cap | altcoinMarketCapUsd |
▶️ How to scrape the Crypto Fear and Greed Index
- Open Crypto Fear and Greed Index Scraper and click Try for free.
- Pick one or more in Which indexes.
- Set How many days back, or a From date (optional) and To date (optional).
- Set Maximum rows. The whole history of all three is about 5,200.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.
💰 How much does it cost to scrape the Fear and Greed Index?
$0.46 per 1,000 readings. Flat on every Apify plan, no volume tiers. On the free plan, the $5 Apify gives you each month covers about 10,000 readings. Today's single number is one reading; the whole history of all three indexes, about 5,200 rows, comes to roughly $2.40.
Not charged: the sample row and every diagnostic row. You are never charged for more than maxItems
rows, and if you set a maximum charge for the run, the cap drops to what that covers before anything
is read.
📥 What you give it
Thirty days of both Fear and Greed readings, lined up:
{ "sources": ["fear-greed", "cmc-fear-greed"], "historyDays": 30, "maxItems": 60 }
A fixed stretch of history for a backtest:
{ "sources": ["fear-greed"], "dateFrom": "2024-01-01", "dateTo": "2024-12-31", "maxItems": 400 }
| Field | Default | What it is |
|---|---|---|
sources | none, the form starts with fear-greed | Any of fear-greed, cmc-fear-greed and altcoin-season. Empty returns one free sample row. |
historyDays | 30 | Days back from the newest reading, 1 to 4,000. 1 is today only. Ignored once dateFrom is set. |
maxItems | 400 | The most rows across every index you picked, 1 to 10,000. This is the ceiling on what a run can cost. |
dateFrom | none | Start of a window, as YYYY-MM-DD. |
dateTo | none | End of the window, as YYYY-MM-DD. Empty means today. |
proxyConfiguration | none | Not used. The indexes are read the same way whatever is set here, so leave it alone. |
📤 What you get back
A real row from a run on 29 September 2026:
{"ok": true,"date": "2026-09-29","timestamp": "2026-09-29T00:00:00.000Z","index": "fear-greed","indexName": "Crypto Fear & Greed Index","value": 73,"classification": "Greed","classifiedBy": "publisher","scaleMin": 0,"scaleMax": 100,"isLatest": true,"source": "alternative.me","sourceUrl": "https://alternative.me/crypto/fear-and-greed-index/","btcPriceUsd": null,"btcVolume24hUsd": null,"altcoinMarketCapUsd": null,"scrapedAt": "2026-09-29T13:26:50.558Z"}
And the CoinMarketCap rows from a run on 20 September, which fill in the price fields:
{"ok": true,"date": "2026-09-20","timestamp": "2026-09-20T00:38:10.000Z","index": "cmc-fear-greed","indexName": "CoinMarketCap Fear & Greed Index","value": 72,"classification": "Greed","classifiedBy": "publisher","scaleMin": 0,"scaleMax": 100,"isLatest": true,"source": "coinmarketcap.com","sourceUrl": "https://coinmarketcap.com/charts/fear-and-greed-index/","btcPriceUsd": 81244.01,"btcVolume24hUsd": 20490901492.26,"altcoinMarketCapUsd": null,"scrapedAt": "2026-09-20T00:43:08.757Z"}
{"ok": true,"date": "2026-09-20","timestamp": "2026-09-20T00:43:09.000Z","index": "altcoin-season","indexName": "Altcoin Season Index","value": 49,"classification": "Neither season","classifiedBy": "publisher thresholds","scaleMin": 1,"scaleMax": 100,"isLatest": true,"source": "coinmarketcap.com","sourceUrl": "https://coinmarketcap.com/charts/altcoin-season-index/","btcPriceUsd": null,"btcVolume24hUsd": null,"altcoinMarketCapUsd": 1146418161201.89,"scrapedAt": "2026-09-20T00:43:08.757Z"}
| Field | How to read it |
|---|---|
date, timestamp | The day of the reading, and its time stamp. Past days sit at midnight UTC; a CoinMarketCap row for today carries the time of its live value instead. |
value, classification | The number and its label, exactly as the publisher writes it. alternative.me writes Extreme Fear, CoinMarketCap Extreme fear, so lowercase before you group across both. |
classifiedBy | publisher when the label came with the data, publisher thresholds when the cut-offs were applied here. |
isLatest | True on the newest row of each index in the run. |
source, sourceUrl | Who published the number. Keep these if you republish it. |
btcPriceUsd, btcVolume24hUsd, altcoinMarketCapUsd | Filled only on the index that publishes them, null everywhere else. Never borrowed from another source. |
🧾 Reading the output
ok and index will not separate data from the free sample row, which says ok: true and
index: "fear-greed" too.
| Row | How to spot it | Billed |
|---|---|---|
| A reading | ok: true and no _sample field | yes |
| The sample row | _sample: true, charged: false. Written only when sources is empty | no |
| A diagnostic row | ok: false, _diagnostic: true, charged: false, with an errorCode, an error and a hint | no |
| Code | What it means |
|---|---|
UNKNOWN_SOURCE | Not one of the three index names. The ones you spelled right still run. |
BAD_DATE_FROM, BAD_DATE_TO, BAD_RANGE | A date that is not YYYY-MM-DD, or a From date after the To date. Nothing is read. |
NO_READINGS | That index has nothing in your window, usually because it had not started yet. |
BUDGET_EXHAUSTED | The maximum charge you set does not cover one reading, so nothing was fetched. |
NETWORK, UPSTREAM_BUSY | The publisher did not answer, or said it was busy. |
HTTP_ plus a status, NOT_JSON, BAD_JSON, BAD_SHAPE, UPSTREAM_ERROR | The publisher answered with something other than the readings. |
When one index fails, the others you picked still arrive. To keep only readings, drop every row
carrying _sample or _diagnostic.
💡 What people use it for
- Lining the daily mood up against Bitcoin's price on the same day, which the CoinMarketCap rows carry.
- Adding one sentiment row a day to a dashboard:
historyDays: 1on a daily schedule. - Charting the two Fear and Greed indexes against each other to see where they part ways.
- Seeing whether a rally is Bitcoin-led or broad, with the Altcoin Season Index.
🚧 What it does not do
- No advice or signal. A sentiment index describes a mood. Its publishers make no prediction and neither does this.
- No per-coin scores. The per-coin sentiment scores that exist need an account and a key, and this uses neither.
- No intraday series. These indexes are daily, so the output is daily.
- No readings before an index began. A window in 2019 returns alternative.me rows and a free
NO_READINGSrow for each of the other two. - No filling of gaps. Four days are missing from alternative.me's own history: 14, 15 and 16 April 2018, and 26 October 2024. They stay missing.
- No settled value for today on CoinMarketCap. Today's rows are live and can still move.
- It is not an official Alternative.me tool. Dami's Studio is independent and is not affiliated with or endorsed by Alternative.me or CoinMarketCap, or by any other company named on this page.
🧭 Which market data scraper do you need?
| If you want | Use |
|---|---|
| Stock, ETF, index, FX and crypto quotes with daily price history | Yahoo Finance Scraper |
| Coin prices, market caps and rankings | CoinGecko Scraper |
| Price, liquidity and volume of a DEX trading pair | DexScreener Pair Price & Liquidity Scraper |
| The daily Crypto Fear and Greed reading, back to 2018 | This one |
| Large Polymarket trades and the wallets behind them | Polymarket Whale Tracker |
| Company filings by keyword, ticker or CIK | SEC EDGAR Scraper |
| Indian mutual fund NAVs, today's or back to 2010 | Indian Mutual Fund NAV Scraper |
❓ Questions people ask
How far back does the Fear and Greed history go?
To 1 February 2018 for alternative.me's index. CoinMarketCap's score starts 29 June 2023 and its Altcoin Season Index 22 March 2024.
Can I get just today's number?
Yes: {"sources": ["fear-greed"], "historyDays": 1} returns one row.
Do I need an API key or an account?
No.
How do I get the whole history without a surprise bill?
maxItems caps it, newest readings first. The whole history of all three is about 5,200 rows, so
the 400 the form starts with stops an "everything" run from being bigger than you meant.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has
ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP
client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/crypto-fear-greed-scraper.
Either way the run happens on your Apify account at the same price.
Can I use the numbers commercially?
Check each publisher's terms before you use the numbers commercially.
Every row carries source and sourceUrl
for the credit. Apify's write-up on
the legality of web scraping covers the wider
question, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the input and the run ID; the errorCode rows
usually say which index failed and why.