CNN APIcnn.com ↗
Access CNN's Fear & Greed Index via API. Get the current gauge score, rating, and full historical time series for all 7 underlying indicators.
What is the CNN API?
The CNN Fear & Greed API exposes one endpoint — get_fear_and_greed — that returns the current composite Fear & Greed gauge score (0–100), its rating, and the complete time series for all 10 indicator objects tracked on the CNN Markets page. Data includes the headline gauge reading alongside per-indicator scores, raw values, ratings, and timestamps, giving developers a structured feed of the same sentiment data CNN publishes for market observers.
curl -X GET 'https://api.parse.bot/scraper/fa99b56d-4b6c-4cc4-a707-e58e613cc089/get_fear_and_greed?start_date=2026-08-24' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace cnn-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: CNN Fear & Greed Index — fetch the gauge and explore indicators."""
from parse_apis.cnn_com_api import CnnFearAndGreed, InputFormatInvalid
client = CnnFearAndGreed()
# Fetch the current Fear & Greed snapshot (trailing ~30 days of series data).
try:
index = client.fear_and_greed.get(start_date="2026-09-01")
except InputFormatInvalid:
print("Bad date format — use YYYY-MM-DD")
raise
# Headline gauge
gauge = index.gauge
print(f"Fear & Greed score: {gauge.score} rating: {gauge.rating}")
print(f" previous close: {gauge.previous_close} 1-week: {gauge.previous_1_week}")
# Walk each indicator and show its latest reading plus first data point
for ind in index.indicators:
first_point = ind.series[0] if ind.series else None
print(f"{ind.indicator}: score={ind.score} rating={ind.rating} points={ind.point_count}")
if first_point is not None:
print(f" earliest point: {first_point.timestamp} value={first_point.value}")
print("exercised: fear_and_greed.get / Gauge fields / Indicator series / DataPoint fields")
Returns the current Fear & Greed gauge (score 0-100, rating, previous close / 1 week / 1 month / 1 year values) together with the charted time series for the composite index and each underlying indicator: S&P 500 momentum (with its 125-day moving average), stock price strength, stock price breadth, put/call options, market volatility (VIX and its 50-day average), junk bond demand and safe haven demand. Each indicator carries its current contribution score (0-100), rating, last-update timestamp, latest raw value and a daily series of {timestamp, value, rating} points ending at the most recent reading. Without start_date the series cover roughly the trailing year (about 250 trading days); with start_date the series start at that date, so an early date can return several thousand points per indicator in one call. Result is a single object, one round trip, no pagination. A start_date not in YYYY-MM-DD form is rejected before any request.
| Param | Type | Description |
|---|---|---|
| start_date | string | ISO date YYYY-MM-DD from which the historical series begin. Omitted = roughly the trailing year of data. |
{
"type": "object",
"fields": {
"gauge": "object: the headline gauge — score (0-100), rating text, timestamp of the reading, previous_close, previous_1_week, previous_1_month, previous_1_year scores",
"indicators": "array of 10 indicator objects: indicator (stable key), score (0-100 contribution), rating, timestamp (UTC ISO), latest_value (raw measure in the indicator's own unit), point_count, series (array of {timestamp, value, rating} daily points)",
"start_date": "echo of the requested start date, null when omitted"
},
"sample": {
"data": {
"gauge": {
"score": 35.2571428571429,
"rating": "fear",
"timestamp": "2026-09-22T23:59:55+00:00",
"previous_close": 33.7142857142857,
"previous_1_week": 27.9714285714286,
"previous_1_year": 66.51428571428572,
"previous_1_month": 54.65714285714286
},
"indicators": [
{
"score": 35.2571428571429,
"rating": "fear",
"series": [
{
"value": 27.9714285714286,
"rating": "fear",
"timestamp": "2026-09-15T00:00:00Z"
},
{
"value": 35.2571428571429,
"rating": "fear",
"timestamp": "2026-09-22T23:59:55Z"
}
],
"indicator": "fear_and_greed_historical",
"timestamp": "2026-09-22T23:59:55Z",
"point_count": 7,
"latest_value": 35.2571428571429
},
{
"score": 40,
"rating": "fear",
"series": [
{
"value": 7585.73,
"rating": "extreme greed",
"timestamp": "2026-09-15T00:00:00Z"
},
{
"value": 7764.64,
"rating": "extreme greed",
"timestamp": "2026-09-22T20:36:35Z"
}
],
"indicator": "market_momentum_sp500",
"timestamp": "2026-09-22T20:36:35Z",
"point_count": 7,
"latest_value": 7764.64
}
],
"start_date": "2026-09-15"
},
"status": "success"
}
}About the CNN API
What the API Returns
The single get_fear_and_greed endpoint delivers two top-level structures. The gauge object holds the headline composite reading: a score between 0 and 100, a human-readable rating (e.g. "Fear" or "Extreme Greed"), a UTC timestamp, and four comparison snapshots — previous_close, previous_1_week, previous_1_month, and previous_1_year. These let you compute directional change without any additional arithmetic.
Indicator Time Series
The indicators array contains 10 objects, one per component tracked by CNN's methodology. Each object carries a stable indicator key (e.g. S&P 500 momentum, stock price strength), the indicator's score contribution on the 0–100 scale, its own rating, a timestamp, and a latest_value representing the raw underlying number. The time-series data for each indicator is also returned, covering the window defined by the optional start_date parameter.
Filtering Historical Data
By default the endpoint returns roughly the trailing year of time-series data. Pass an ISO-formatted start_date (YYYY-MM-DD) to pull series beginning from an earlier date. The response echoes back the start_date you supplied, or null when the parameter is omitted. This makes it straightforward to align CNN sentiment data with other time-indexed datasets.
Composite and Components Together
Because the response bundles both the composite gauge and all component indicators in a single call, you can reconstruct the weighting relationships between individual signals and the headline index for any date in the returned window without additional requests.
The CNN API is a managed, monitored endpoint for cnn.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cnn.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official cnn.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Chart historical Fear & Greed composite scores alongside S&P 500 price data to study correlation patterns.
- Alert on extreme sentiment shifts by comparing
scoreagainstprevious_1_weekin thegaugeobject. - Build a sentiment dashboard that displays all 10 indicator ratings and scores from the
indicatorsarray. - Feed current Fear & Greed
ratingandscoreinto a trading signal pipeline as a market sentiment feature. - Track intraday or daily changes in the S&P 500 momentum indicator's
latest_valueover a custom date window. - Archive rolling Fear & Greed readings for backtesting sentiment-based portfolio strategies.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does CNN offer an official developer API for the Fear & Greed Index?+
What does the `gauge` object actually include beyond the current score?+
gauge object includes the composite score (0–100), a rating text label, a UTC timestamp for the reading, and four historical comparison values: previous_close, previous_1_week, previous_1_month, and previous_1_year. These let you compute directional momentum without storing prior readings yourself.How far back does the historical time series go?+
start_date, the endpoint returns approximately the trailing year of data. You can extend the window by passing an earlier ISO date via the start_date parameter. The response echoes back the value you supplied, or null if omitted. Very old historical data predating CNN's available series may not be included.