API Reference

Market Mood API

SentiSense's proprietary fear and greed composite index. Combines social sentiment, market direction, fear gauge, social momentum, and S&P 500 trend into a single 0-100 score with phase classification, weekly change, and per-sector breakdowns.

Base: /api/v2/market-moodFree (API key required)1 endpoints

Overview

Market Mood is SentiSense's proprietary 0-100 composite that blends five sub-signals (social sentiment, market direction, fear gauge, social momentum, S&P 500 trend) into a single fear-or-greed score plus a phase label. The endpoint returns the latest score, the daily history, the per-signal breakdown, and per-sector aggregations so you can compare a sector's mood against the broader market.

Use cases:

  • Build a top-of-page fear/greed gauge for your own dashboard
  • Track regime changes (Greed -> Neutral -> Fear) on a 6-month rolling window
  • Compare sector-level moods to spot rotation (e.g. Technology in Greed while Energy in Fear)
  • Plot any of the five sub-signals on its own time series

Versioning: Market Mood lives at /api/v2/market-mood (note: v2, not the /api/v1/... prefix used by most other endpoints).

Access: API key required. Free for all tiers (no PRO gating, no quota cost beyond your key's existing rate-limit-per-minute). Anonymous calls return 401 api_key_required.


GET /api/v2/market-mood

Returns the current Market Mood composite, the daily history over the requested window, the per-signal breakdown, and per-sector summaries.

Parameters:

Parameter Type Required Default Description
days int No 180 Days of history to return

Example Request:

curl "https://app.sentisense.ai/api/v2/market-mood?days=90"
from sentisense import SentiSenseClient

client = SentiSenseClient(api_key="ss_live_YOUR_KEY")  # API key optional
result = client.get_market_mood(days=90)
print(f"Score: {result['market']['currentScore']} ({result['market']['phase']})")
print(f"Weekly change: {result['market']['weeklyChange']}")
for signal in result["market"]["signals"]:
    print(f"  {signal['label']}: {signal['value']} (week change: {signal['change']})")

Response Schema:

Field Type Description
market.currentScore double Latest composite score, 0-100 (null if no data)
market.phase string Plain-text label (e.g. "Extreme Fear", "Fear", "Neutral", "Optimism", "Greed", "Extreme Greed", "---" when null). Optimism is the 60-74 band between Neutral and Greed
market.weeklyChange double Composite score change vs ~7 days ago (null when insufficient history)
market.signals array Per-signal breakdown (5 entries)
market.history array Daily history points
sectors object Map of sector name to sector summary (currentScore, phase, weeklyChange)

Signal entry:

Field Type Description
key string One of social_sentiment, market_direction, fear_gauge, social_momentum, spy_trend
label string Human-readable label (e.g. "Social Sentiment", "S&P 500 Trend")
value double Latest value of this sub-signal, 0-100
change double Change vs ~7 days ago (null when insufficient history)

History point:

Field Type Description
date string New York date in YYYY-MM-DD format
timestamp long Epoch milliseconds for the data point
score double Composite score for that day
socialSentiment double Social sentiment sub-signal value
marketDirection double Market direction sub-signal value
fearGauge double Fear gauge sub-signal value
socialMomentum double Social momentum sub-signal value
spyTrend double S&P 500 trend sub-signal value

Sector summary:

Field Type Description
currentScore double Latest composite score for the sector
phase string Plain-text phase label
weeklyChange double Score change vs ~7 days ago (null when insufficient history)

Example Response:

{
  "market": {
    "currentScore": 62.4,
    "phase": "Greed",
    "weeklyChange": 4.2,
    "signals": [
      { "key": "social_sentiment", "label": "Social Sentiment", "value": 58.3, "change": 1.5 },
      { "key": "market_direction", "label": "Market Direction", "value": 70.0, "change": 5.0 },
      { "key": "fear_gauge", "label": "Fear Gauge", "value": 55.0, "change": -2.1 },
      { "key": "social_momentum", "label": "Social Momentum", "value": 60.5, "change": 3.0 },
      { "key": "spy_trend", "label": "S&P 500 Trend", "value": 68.2, "change": 6.0 }
    ],
    "history": [
      { "date": "2026-04-01", "timestamp": 1743552000000, "score": 55.0, "socialSentiment": 50.0, "marketDirection": 60.0, "fearGauge": 55.0, "socialMomentum": 50.0, "spyTrend": 60.0 }
    ]
  },
  "sectors": {
    "Technology": { "currentScore": 70.5, "phase": "Greed", "weeklyChange": 3.2 },
    "Finance":    { "currentScore": 48.0, "phase": "Neutral", "weeklyChange": -1.5 }
  }
}

Notes

  • Market Mood is recomputed daily after the U.S. market close. Real-time intraday changes are not reflected; check the history timestamps to see the freshness of the latest point.
  • The five sub-signals are documented in the SentiSense methodology pages on the main site.
  • Sector keys (e.g. Technology, Finance) follow the GICS L1 sector taxonomy; the exact set is whatever has been computed for the requested window.

Try It

Test endpoints directly from your browser. Paste your API key once: it's saved locally and shared across all widgets. Get a free key

GET/api/v2/market-mood

Composite market fear/greed score, history, and sector summaries

Try It
curl -H "X-SentiSense-API-Key: ssk_YOUR_KEY" \ "https://app.sentisense.ai/api/v2/market-mood"
Enter your API key to send requests