Get Stock News
get_stock_newsAI-analysed news for a stock, newest first. Only returns articles processed by our AI pipeline (sentiment, signal_score, summary).
days: look-back window in days. Requesting more than your tier's cap is silently clamped down to it: 30 free/guest, 90 pro.
limit: max articles returned. The
limit=10default is a Pro-tier-shaped value — on free/guest it's silently clamped down to that tier's cap (5), so a free caller passing nolimiteffectively gets 5, not 10. Requesting more than your tier's cap (5 free/guest, 50 pro) is likewise clamped down.status: "ok" = articles returned | "empty" = no news in window
Per article: title, published_at, ai_sentiment, ai_summary (full text) — Pro only, see below
signal_score (Pro only, 0-100 or null) / signal_score_band (Pro only, string or null — "Weak"/"Moderate"/"Strong"/"Very Strong"): if this symbol has a live news-sourced signal (raised in the last 90 days), every article shows that SAME number — the same one get_signals()/get_stock_research() report for this symbol (all three read the same underlying signal, via the same shared resolver), staying live/synced: if the signal is later re-scored, this reflects the update on your next call, not a frozen snapshot from classification time. Always a single number (never a two-sided split) — for a genuinely contested (two opposing theses) signal, this is the STRONGER of the two sides. NOT gated on whether Stocklake's own internal trading engine still considers the signal live — a dropped/expired signal is still a real, useful fact about what the pipeline found. When there's no live signal for this symbol at all, each article instead gets its OWN per-article score (computed from that article's sentiment/confidence/flag_score) — the same fallback get_stock_research()'s news[] block uses, so a symbol with no active thesis doesn't just go null across the board; different articles for the same symbol can then legitimately show different numbers. Null only when neither path can produce a value (article has no AI sentiment/confidence/ flag_score at all). There is deliberately no separate "news_score" field — one name, kept in sync with the signal when one exists, computed per-article when it doesn't. Free tier: up to 5 articles, title + published_at only (no AI fields), 30-day window. Pro tier: up to 50 articles with full AI fields, 90-day window. For informational purposes only. Not financial advice.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-back window in days. Requesting more than your tier's cap is silently clamped down to it: 30 free/guest, 90 pro. | |
| limit | No | Max articles returned. Default 10 is a Pro-tier-shaped value — on free/guest it's silently clamped down to that tier's cap (5), so a free caller passing no limit effectively gets 5, not 10. Requesting more than your tier's cap (5 free/guest, 50 pro) is likewise clamped down. | |
| symbol | Yes | Stock ticker symbol. Also accepts a company name as a fallback when it uniquely resolves to one symbol. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||