Skip to main content
Get a live 0-100 sentiment score for a ticker, composed of seven components grouped into trend, flow, and positioning sub-scores. Each component is scored as a percentile vs the ticker’s own trailing year and oriented so 100 is the greed side. The result carries the composite score with a band label (extreme fear to extreme greed; cutoffs versioned in the methodology block), the three sub-scores, every component with its raw value, percentile, and window, deltas over 1, 5, and 20 trading days, a weekly history series, transition flags, and quotable derived[] sentences. A thin option chain degrades to a disclosed coverage with omission reasons, so the score never silently changes meaning. Serves live data only. Endpoint: POST /api/v1/ticker-sentiment Tier: point · Delivery: sync

Request

FieldType
tickerstring
as_of_datestring

Response

The response is the two-key envelope { finterm, data }, where data is the finterm.result:TickerSentiment/v1 contract:
FieldDescription
tickerThe stock ticker symbol, uppercased (e.g. “AAPL”).
as_of_dateThe calendar date the score reflects, in YYYY-MM-DD format.
priceThe underlying price at the snapshot, or null when unavailable.
scoreThe composite sentiment score, 0-100 (100 = greed-side), as the equal-weight mean of the scored components. Null when no component cleared its data gates.
bandThe band label for the score: “extreme fear”, “fear”, “neutral”, “greed”, or “extreme greed” (cutoffs versioned in methodology). Null when the score is null.
coverageHow many components were scored, as “N/7” over the v1 component set.
sub_scoresThe mean score within each group — trend, flow, and positioning — each null when no component in that group was scored.
componentsThe scored components, each with: id, group, raw (today’s value), unit, percentile (0-100 vs the ticker’s own window), score (oriented so 100 = greed-side), the reference window, and an optional note when an interim source was substituted.
omittedComponents dropped from the composite, each with the component id and the reason (history_accumulating, thin_chain, insufficient_history, or no_data) — so a degraded score is always explained.
deltaChange in the composite over 1, 5, and 20 trading days (d1/d5/d20), each computed on today’s component set so the comparison is like-for-like. Null when the prior anchor was not computable.
historyWeekly composite closes (oldest first), each with its date, score, and coverage at that point.
flagsNotable transitions on this snapshot (e.g. entered_extreme_fear, crossed_below_125d_ma, flow_positioning_divergence).
contextEvent context: next_earnings carries the upcoming earnings date, days until it, and whether it is confirmed (null when no upcoming date is known).
derivedQuotable plain-English sentences summarizing the score, its drivers, and any caveats. The first sentence doubles as a headline.
scopeWhat the options-derived components saw: selection (full_chain or partial_chain when the fetch cap stopped at a prefix), contracts_analyzed, expirations_covered, and pages_fetched.
data_qualityReading reliability: status (“ok”, “degraded” when components were omitted, or “no_data”), history (status and days_collected for the trailing daily series), and an optional note.
methodologyA versioned description of the scoring: component_scoring, composite, band_cutoffs (the four ascending thresholds between the five band labels), orientation, and flow_sharing.

Example

finterm tool ticker_sentiment AAPL