Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Crypto Fear and Greed Index Scraper icon

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.

37 runs on Apify $0.00046 per index reading ($0.46 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust sources, historyDays, maxItems (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export 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 forWhenPrice
Index reading returnedOne 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

FieldWhat it doesType
sourcesPick 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
historyDaysDays 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
maxItemsHard 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
dateFromStart of the window, as YYYY-MM-DD. Fill this in and "How many days back" is ignored. Example: 2025-01-01string
dateToEnd of the window, as YYYY-MM-DD. Leave empty for today. Example: 2025-06-30string

What you get

A structured dataset — each result includes fields like:

dateindexNamevalueclassificationclassifiedBysourceisLatestbtcPriceUsdaltcoinMarketCapUsdsourceUrl

Export 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 iconDeveloper & Research Tools

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.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

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.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

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.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

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.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

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.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

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.

2 use cases

See all 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.

InputWhich indexes, and how many days back or a date window
OutputOne row per index per day
Ceiling10,000 rows per run; the full history of all three is about 5,200
Account neededNone
Price$0.46 per 1,000 readings, flat on every plan

🔍 What Crypto Fear and Greed Index Scraper does

IndexPublished byStartsWhat it measures
fear-greedalternative.me2018-02-01The original index. Built from Bitcoin's volatility, momentum and volume, social media, Bitcoin dominance and search trends; its survey part is paused.
cmc-fear-greedCoinMarketCap2023-06-29A second reading of the same idea, calculated separately. Rows carry that day's Bitcoin price and 24-hour volume.
altcoin-seasonCoinMarketCap2024-03-22A 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 }
FieldPrefilled withWhat it is
sources["fear-greed"]Any of fear-greed, cmc-fear-greed and altcoin-season. Empty returns one free sample row.
historyDays30Days 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.
maxItems400The 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.
dateFromemptyStart of a window, as YYYY-MM-DD.
dateToemptyEnd of the window, as YYYY-MM-DD. Empty means today.
proxyConfigurationuntouchedNot 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"
}
FieldWhat it is
date, timestampThe 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, classificationThe 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.
classifiedBypublisher when the label came with the data, publisher thresholds when the cut-offs were applied here.
isLatestTrue on the newest row of each index in the run.
source, sourceUrlWho published the number. Keep these if you republish it.
btcPriceUsd, btcVolume24hUsd, altcoinMarketCapUsdFilled 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.

RowHow to spot itCharged
A readingok: true and no _sample fieldyes
The sample row_sample: true, charged: false. Written only when sources is emptyno
A diagnostic rowok: false, _diagnostic: true, charged: false, with an errorCode, an error and a hintno
errorCodeWhat happened
UNKNOWN_SOURCENot one of the three index names. The ones you spelled right still run.
BAD_DATE_FROM, BAD_DATE_TO, BAD_RANGEA date that is not YYYY-MM-DD, or a From date after the To date. Nothing is read.
NO_READINGSThat index has nothing in your window, usually because it had not started yet.
BUDGET_EXHAUSTEDThe maximum charge you set does not cover one reading, so nothing was fetched.
NETWORK, UPSTREAM_BUSYThe publisher did not answer, or said it was busy.
HTTP_ plus a status, NOT_JSON, BAD_JSON, BAD_SHAPE, UPSTREAM_ERRORThe 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: 1 on 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 wantUse
Daily Fear and Greed and Altcoin Season readings, back to 2018This one
Coin prices, market caps and rankingsCoinGecko Scraper
DEX pair prices and pool liquidityDexScreener Pair Price & Liquidity Scraper
Price history as daily candles, BTC-USD includedYahoo 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.