Crypto Fear & Greed + BTC Price, Funding & Risk Signals
Pricing
from $0.50 / 1,000 daily index readings
Crypto Fear & Greed + BTC Price, Funding & Risk Signals
Daily crypto sentiment and risk panel: Fear & Greed history joined to BTC closes, 1/7/30-day returns, perpetual funding, current open interest, sentiment percentiles and divergence flags. Keyless sources, graceful partial coverage, optional Telegram alerts.
Pricing
from $0.50 / 1,000 daily index readings
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Collect the daily Crypto Fear & Greed index (0–100) published by alternative.me, with the provider's classification and a derived regime label for each day. Each run returns up to a year of daily readings plus a summary with the latest value, the change since yesterday and the 7-day average. Use it for sentiment dashboards, market-timing research and extreme-sentiment alerts on Telegram.
Market enrichment is ON by default (enrichMarket: false restores index-only collection). Coinbase Exchange public BTC-USD daily candles add completed UTC daily closes and exact calendar 1/7/30-day percentage returns. Hyperliquid public info adds the mean hourly perpetual funding rate (decimal, not annualized), sample count and completeness, plus current open interest in BTC. No keys or paid sources are needed. Source failures preserve every sentiment row with null market values and enrichmentStatus notes.
Each row adds btc (closeUsd, returnsPct, fundingRateDailyMean, fundingSamples, fundingDayComplete, openInterestBtc, openInterestAsOf, divergence), sentimentPercentile, regimeChanged, and enrichmentStatus. Percentile is the percentage of returned sentiment readings less than or equal to this reading (ties included); it uses only returned readings up to and including that day. sentimentPercentileBasis gives the number of readings used; the basis depends on the requested window. Regime change compares adjacent calendar days; the first day or gaps yield null. Divergence flags fear (<=46) with a positive 7-day return or greed (>=55) with a negative return; otherwise aligned, or null without prices.
Limits: reading D uses the candle stamped D-1, which closes at D 00:00 UTC, and 1/7/30-day returns ending at that close. Funding covers the 24 hours before D 00:00 UTC. Today’s row therefore has price and returns when the sources supply those completed candles. Funding means use available hourly samples, with 24 required for a complete day. Venue retention or missing candles leaves gaps; no forward filling. Open interest is only a current snapshot on today's row, with collection timestamp, never historical backfill. Market data sources may be slow or unavailable. If index collection cannot finish, the run fails clearly; unavailable market enrichment retains index rows with warnings. Signals are descriptive research data, not investment advice.
Billing remains one daily row = one default dataset-item charge, including partial rows; there are no extra market rows or custom charge events.
Quick Start
{"limit": 30, "enrichMarket": true}
Input
| Name | Type | Default | Meaning |
|---|---|---|---|
enrichMarket | boolean | true | Add BTC price, funding and risk signals; unavailable sources yield nulls. |
limit | integer | 10 | Days of history to return, 1–365. |
alertExtreme | boolean | false | When true and a Telegram chat is set, sends one alert if the latest day is extreme fear or extreme greed. |
telegramBotToken | string | empty | Secret Telegram bot token for alerts; the TELEGRAM_BOT_TOKEN secret environment variable also works. |
telegramChatId | string | empty | Chat that receives the alerts. |
What it returns
One dataset row per day, oldest to newest:
| Field | Meaning |
|---|---|
recordKey | Stable key, fng:{date}. |
source, kind | Record source and type. |
date, timestamp | UTC day of the reading and its Unix timestamp. |
value | Index value, 0–100. |
classification | The provider's own label, unchanged. |
regime | Derived label from extreme-fear to extreme-greed. |
sourceUrl | Where the reading was published. |
collectedAt | UTC time the reading was collected. |
The run summary (OUTPUT) reports the latest reading, the change since yesterday, the 7-day average with its regime, the alert result and any warnings.
Output example
Illustrative record:
{"recordKey":"fng:2026-09-08","source":"alternative.me","kind":"fear_greed","date":"2026-09-08","timestamp":1788825600,"value":22,"classification":"Extreme Fear","regime":"extreme-fear","sourceUrl":"https://api.alternative.me/fng/","collectedAt":"2026-09-08T12:00:03Z"}
FAQ
How fresh is the data? One reading per UTC day, published around 00:00 UTC. Each run returns the newest days available.
How much history is available? The series starts on 2018-02-01; each run returns up to 365 days.
How are the labels chosen? classification is the provider's label, unchanged; regime uses boundaries calibrated on the full published history. A mismatch between the two is reported as a warning, never a failure.
What happens on bad rows? Malformed days are skipped and named in the run warnings; the rest of the run completes.
Price
See the Actor's Pricing tab on Apify for current rates.
For support, contact Apify support and include the Actor run ID.