Market headlines grouped into themes, ranked by recency and marked when covered by multiple providers.
/api/market-newsA structured news-intelligence feed for nine markets. Headlines from TradingKey, MarketBeat, MarketScreener and Yahoo adapters are deduplicated without losing their provider provenance and classified toward the requested market. The backward-compatible top-level sentiment summarizes every returned headline (up to 30 days) and now discloses that basis in `sentimentWindow`. Current `intelligence` uses a separate explicit seven-day window: it ranks up to five themes, marks coverage corroborated only across multiple feed providers, underlying publishers and distinct article URLs, calculates a 24-hour half-life sentiment reading, measures acceleration against the previous 24 hours and reports dominant-theme concentration. Older raw headlines remain visible but cannot define the current intelligence reading. Repeated `fresh=1` requests within five minutes of a successful build reuse the snapshot and disclose the remaining interval.
Use it toSee the news flow driving a whole market (Fed, gold, crypto…), not just one stock.
`sentimentWindow` documents the top-level sentiment's 30-day maximum, exact included range/count and equal-weight method. `analysisWindow` separately discloses how many input headlines fall inside the 168-hour intelligence window and the oldest included timestamp. `intelligence.themes[].corroborated` means that at least two feed providers, two underlying publishers and two distinct article URLs covered a related theme; it does not prove the claim or guarantee independent reporting. Two adapters syndicating the same publisher or the same article URL do not count. Provider-controlled `sourceUrl` fields are emitted only for absolute HTTP(S) links without embedded credentials. `coverage.corroboratedThemes` counts every corroborated cluster and can exceed the five themes presented. Activity is accelerating at ≥1.5x and decelerating at ≤0.667x the prior 24-hour count. `driver` is an interpretation, not proven causation, and uses only headlines from the 48 hours before a quote less than 72 hours old. Successful forced refreshes have a five-minute minimum; `refreshDeferredReason`, `retryAfterSeconds` and `Retry-After` make deferrals explicit. `providerStatus` and `providerHealth.checked` list only providers able to cover the symbol: the stock-only TradingKey and MarketBeat feeds are not queried for index, futures, crypto or FX markets (bonds, tracked through the listed TLT ETF, still uses all four). MarketScreener coverage for every tracked market is found with market-worded searches (e.g. "gold price", "Treasury yields", "bitcoin") instead of Yahoo symbols, which rarely appear in headlines or match unrelated stories; such stories must name the market in their title, company filler pages, mining releases and silver-named companies are excluded, and the publisher suffix Google News appends is removed from titles.
Send your ra_live_… key in the x-api-key header. Pick your language:
curl "https://raspberrytrades.com/api/market-news?market=us" \
-H "x-api-key: ra_live_your_key_here"marketfreshx-api-key| Parameter | Type | Description |
|---|---|---|
market | string | us | gold | silver | btc | eth | oil | dollar | copper | bonds — omit to list them (optional) |
fresh | 0 | 1 | 1 = request a live refresh; the five-minute source-failure cooldown still applies (optional) |
x-api-key | header | Your API key — market-news scope (required) |
Example, not a live result. Field shapes are exact; the values, prices and timestamps are illustrative. Call the endpoint for current data.
{
"ticker": "us",
"name": "US Market",
"source": "multi-source",
"sources": ["marketscreener", "yahoo-finance", "google-news"],
"providerStatus": [
{ "provider": "marketscreener", "status": "ok", "count": 20 },
{ "provider": "yahoo-finance", "status": "ok", "count": 7 },
{ "provider": "google-news", "status": "ok", "count": 20 }
],
"providerHealth": {
"status": "healthy",
"checked": 3,
"operational": 3,
"withContent": 3,
"empty": 0,
"errors": 0
},
"refreshDeferred": false,
"refreshDeferredReason": null,
"retryAfterSeconds": null,
"count": 20,
"sentiment": { "label": "bullish", "score": 0.18, "bullish": 11, "bearish": 4, "neutral": 5 },
"sentimentWindow": { "maxAgeDays": 30, "headlineCount": 20, "newestIncludedAt": "2026-09-18T20:05:00Z", "oldestIncludedAt": "2026-06-08T09:00:00Z", "method": "equal-weight-headline-score-mean" },
"intelligence": {
"recencyWeightedSentiment": { "score": 0.31, "label": "bullish", "halfLifeHours": 24, "method": "recency-weighted-label-balance" },
"analysisWindow": { "hours": 168, "inputHeadlines": 20, "analyzedHeadlines": 18, "excludedOlderHeadlines": 2, "oldestAnalyzedAt": "2026-09-12T09:15:00Z" },
"activity": { "last6Hours": 7, "last24Hours": 13, "previous24Hours": 4, "changeVsPrevious24Hours": 9, "ratioVsPrevious24Hours": 3.25, "trend": "accelerating" },
"concentration": { "dominantTheme": "Fed signals a slower path for rates", "dominantThemeHeadlines": 3, "dominantThemeShare": 0.15, "method": "lexical-cluster-share" },
"coverage": { "headlines": 18, "uniqueSources": 9, "uniqueProviders": 4, "corroboratedThemes": 2 },
"themes": [{ "title": "Fed signals a slower path for rates", "headlineCount": 3, "sentiment": "bullish", "sentimentScore": 0.67, "latestPublishedAt": "2026-09-18T20:05:00Z", "sources": ["reuters.com", "wsj.com"], "providers": ["tradingkey", "yahoo-finance"], "corroborated": true, "headlineUrls": ["https://www.reuters.com/...", "https://www.wsj.com/..."] }]
},
"bullSummary": "Headlines point to cooling inflation and resilient earnings.",
"bearSummary": "Some pieces warn on stretched valuations and rate risk.",
"headlines": [
{
"title": "S&P 500 closes at record as inflation eases",
"url": "https://www.reuters.com/...",
"source": "reuters.com",
"publishedAt": "2026-09-18T20:05:00Z",
"sentiment": "bullish"
}
]
}Create a free account, copy your ra_live_… key and make your first call to https://raspberrytrades.com/api/market-news.
Keep your key on your server — never ship it in front-end code.