Crypto Fear and Greed Index Scraper
Pull the Crypto Fear and Greed Index as dated rows: value, classification, source. Daily history since 2018, plus two more free crypto sentiment indexes.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
sources,historyDays,maxItems(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.00046 per index reading = $0.46 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Index reading returned | One daily index reading returned in the dataset. Diagnostic rows and the labelled sample row are not charged. | $0.00046 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-20, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
sources | Pick one or more daily sentiment indexes. "Crypto Fear & Greed Index" is the original one published by alternative.me and goes back to February 2018. The CoinMarketCap score is a second, separately calculated reading of the same idea and starts in June 2023. Altcoin Season is a different question again: how much of the top 100 is beating Bitcoin over 90 days. Leave this empty and the run returns one free sample row instead of charging you. | array |
historyDays | Days of history to return per index, counting back from the most recent reading. 1 gives you just today's number. Ignored when you fill in "From date" below. Days that a given index does not cover are not returned and not charged. | integer |
maxItems | Hard cap on the rows this run returns, across every index you picked. You are charged per row returned, so this is the ceiling on what the run can cost. When two indexes are selected the cap is split between them so you get the same span of both. The full history of all three indexes is about 5,200 rows. | integer |
dateFrom | Start of the window, as YYYY-MM-DD. Fill this in and "How many days back" is ignored. Example: 2025-01-01 | string |
dateTo | End of the window, as YYYY-MM-DD. Leave empty for today. Example: 2025-06-30 | string |
What you get
A structured dataset — each result includes fields like:
dateindexNamevalueclassificationclassifiedBysourceisLatestbtcPriceUsdaltcoinMarketCapUsdsourceUrlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Crypto Fear and Greed Index Scraper: daily readings back to 2018, as dated rows
The Crypto Fear and Greed Index is one number a day from 0 to 100 with a word attached, Extreme Fear to Extreme Greed, and this returns it as dated rows: today's reading, every reading since 1 February 2018, or any window in between. 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.
| Input | Which indexes, and how many days back or a date window |
| Output | One row per index per day |
| 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 |
🔍 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 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 | Prefilled with | What it is |
|---|---|---|
sources | ["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. Left out of an API call, it is 30. |
maxItems | 400 | The most rows across every index you picked, 1 to 10,000. Left out of an API call, it is 400. This is the ceiling on what a run can cost. |
dateFrom | empty | Start of a window, as YYYY-MM-DD. |
dateTo | empty | End of the window, as YYYY-MM-DD. Empty means today. |
proxyConfiguration | untouched | 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 | What it is |
|---|---|
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 | Charged |
|---|---|---|
| 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 |
errorCode | What happened |
|---|---|
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.
▶️ How to run it
1. Open Crypto Fear and Greed Index Scraper and click Try for free. 2. Pick one or more in Which indexes. 3. Set How many days back, or a From date (optional) and To date (optional). 4. Set Maximum rows. The whole history of all three is about 5,200. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.
💰 How much does it cost?
$0.46 per 1,000 readings, flat on every Apify plan. 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 people use it for
- Testing whether a trading idea behaves differently in fear than in greed, with the CoinMarketCap
rows carrying the Bitcoin price for the same day.
- 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.
- Checking whether a rally is Bitcoin-led or broad before rebalancing, 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_READINGS row 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.
🧭 Which crypto scraper do you need?
| If you want | Use |
|---|---|
| Daily Fear and Greed and Altcoin Season readings, back to 2018 | This one |
| Coin prices, market caps and rankings | CoinGecko Scraper |
| DEX pair prices and pool liquidity | DexScreener Pair Price & Liquidity Scraper |
| Price history as daily candles, BTC-USD included | Yahoo Finance Scraper |
❓ Questions people ask
How far back does the 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 prefilled 400 stops an "everything" run from being bigger than you meant.
Can I use the numbers commercially? alternative.me allows commercial use as long as the attribution sits right next to the data, and asks that nobody present its data as their own service. Every row carries source and sourceUrl for the credit. Check CoinMarketCap's terms for its two indexes.
🆘 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.