Tool Reference
All 20 Stocklake tools — parameters, response fields, and examples. ← Getting Started
Not financial advice. All data, ratings, signals, and AI assessments are for informational and research purposes only. Nothing here constitutes investment advice or a recommendation to buy or sell any security.
get_stock free
Returns price, fundamentals, technical indicators, and company profile for a ticker — everything you need about a stock in one call.
Parameters
| Name | Type | Description |
| symbol | string | Ticker symbol, e.g. AAPL. Case-insensitive. |
Response fields
| Field | Type | Description |
| symbol | string | Ticker |
| name | string | Company full name |
| sector / industry | string | Sector and industry classification |
| country / currency / exchange | string | Country, reporting currency, exchange code |
| price | number | Current market price (multi-source, authoritative) |
| change_pct | number | Day change % |
| volume / avg_volume | number | Day volume and average volume |
| prev_close | number | Previous close |
| week52_high / week52_low | number | 52-week range |
| ma_50 / ma_200 | number | 50-day and 200-day moving averages |
| market_cap / enterprise_value | number | Market cap and enterprise value |
| beta | number | Beta vs market |
| pe_trailing / pe_forward | number | Trailing and forward P/E ratios |
| price_to_book | number | Price-to-book ratio |
| dividend_yield / dividend_rate / ex_dividend_date | number / string | Dividend info |
| debt_to_equity | number | D/E ratio |
| profit_margins / operating_margins | number | Net and operating profit margins |
| revenue_growth / earnings_growth | number | YoY growth rates |
| revenue_ttm / gross_profit_ttm | number | Trailing twelve-month revenue and gross profit |
| free_cashflow | number | Free cash flow (TTM) |
| return_on_equity | number | ROE |
| analyst_rating | string | Analyst consensus label: strong_buy · buy · hold · sell · strong_sell |
| analyst_rating_score | number | Mean analyst recommendation score: 1.0 = strong buy, 5.0 = strong sell (lower is better) |
| analyst_target / analyst_count | number | Mean price target and number of analyst opinions |
| indicators | object | RSI, MACD {macd_line, signal_line, histogram}, Bollinger Bands {upper_band, middle_band, lower_band}, SMA20/SMA200, EMA20/EMA200, ATR |
| description | string | Long-form company business description |
| website | string | Company website URL |
| employees | integer | Full-time employee count |
| officers | array | Top 5 executives: name, title, total_pay |
| updated_at | string | Data freshness timestamp (ISO 8601 UTC) |
Example
{
"symbol": "NVDA",
"name": "NVIDIA Corporation",
"price": 116.78,
"change_pct": 2.31,
"market_cap": 2847000000000,
"pe_trailing": 38.2,
"analyst_rating": "buy",
"analyst_target": 165.00,
"indicators": {
"rsi": 58.4,
"macd": { "macd_line": 1.23, "signal_line": 0.94, "histogram": 0.29 },
"bollinger_bands": { "upper_band": 124.1, "middle_band": 114.3, "lower_band": 104.5 }
}
}
Example — META (Communication Services, strong buy consensus)
{
"symbol": "META",
"name": "Meta Platforms Inc.",
"short_name": "Meta",
"price": 635.29,
"change_pct": 1.54,
"volume": 18720000,
"market_cap": 1612600000000,
"pe_trailing": 27.8,
"analyst_rating": "strong_buy",
"analyst_target": 725.00,
"indicators": {
"rsi": 65.3,
"macd": { "macd_line": 8.45, "signal_line": 6.12, "histogram": 2.33 },
"bollinger_bands": { "upper_band": 652.80, "middle_band": 598.40, "lower_band": 544.00 }
}
}
get_stocks free+
Batch stock data for up to 50 symbols in a single call. Returns prices, fundamentals, and indicators keyed by symbol. Use this instead of calling get_stock multiple times. Each symbol in the batch counts as one call toward your daily limit.
| Parameter | Type | Default | Description |
| symbols | array of strings | required | Stock tickers (max 50). Symbols with hyphens (e.g. BRK-B) are supported. Invalid symbols are silently skipped. |
curl -s https://api.stocklake.dev/mcp \
-H "Authorization: Bearer sl_your_key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_stocks","arguments":{"symbols":["JPM","GS"]}}}'
Example response
{
"count": 2,
"symbols": {
"JPM": {
"symbol": "JPM",
"name": "JPMorgan Chase & Co.",
"sector": "Financial Services",
"price": 296.73,
"change_pct": -0.42,
"volume": 8930000,
"analyst_rating": "strong_buy",
"indicators": {
"rsi": 42.6,
"macd": { "macd_line": -1.20, "signal_line": -0.80, "histogram": -0.40 },
"bollinger_bands": { "upper_band": 312.50, "middle_band": 298.10, "lower_band": 283.70 }
},
"updated_at": "2026-06-01T14:00:00+00:00"
},
"GS": {
"symbol": "GS",
"name": "The Goldman Sachs Group Inc.",
"sector": "Financial Services",
"price": 1008.37,
"change_pct": 0.87,
"volume": 2100000,
"analyst_rating": "buy",
"indicators": {
"rsi": 68.2,
"macd": { "macd_line": 5.60, "signal_line": 4.10, "histogram": 1.50 },
"bollinger_bands": { "upper_band": 1050.00, "middle_band": 985.00, "lower_band": 920.00 }
},
"updated_at": "2026-06-01T14:00:00+00:00"
}
},
"requested": 2
}
Response includes the count of matched symbols plus a map with per-symbol data in the same format as get_stock. Requested symbols not found in the database are omitted from the result.
get_stock_history free+
Daily OHLCV price history for a ticker. Returns bars sorted oldest-first.
Parameters
| Name | Type | Default | Description |
| symbol | string | — | Ticker symbol |
| days | integer | 90 | Number of trading days to return. Max 365 (1 year). |
Response fields
| Field | Type | Description |
| symbol | string | Ticker |
| days | integer | Days requested |
| count | integer | Bars actually returned (may be less if data is newer) |
| history | array | OHLCV bars: date, open, high, low, close, volume |
Example
{
"symbol": "AAPL",
"days": 5,
"count": 5,
"history": [
{ "date": "2026-04-29", "open": 208.40, "high": 212.10, "low": 207.80, "close": 211.50, "volume": 52183000 },
{ "date": "2026-04-30", "open": 211.20, "high": 214.60, "low": 210.90, "close": 213.45, "volume": 48921000 }
]
}
Example — AMZN 30-day history
{
"symbol": "AMZN",
"days": 30,
"count": 22,
"history": [
{ "date": "2026-04-29", "open": 247.40, "high": 250.60, "low": 246.80, "close": 249.75, "volume": 31045000 },
{ "date": "2026-04-30", "open": 250.00, "high": 256.10, "low": 249.20, "close": 255.30, "volume": 28760000 },
{ "date": "2026-05-01", "open": 257.10, "high": 264.80, "low": 256.40, "close": 263.90, "volume": 35412000 }
]
}
search_stocks free+
Filter and rank stocks from the Stocklake universe. All parameters are optional — omit any to skip that filter.
Parameters
| Name | Type | Default | Description |
| sector | string | — | Case-insensitive substring match. e.g. Technology, Healthcare, Financial Services |
| country | string | — | Case-insensitive substring match. e.g. United States, Germany |
| rsi_signal | string | — | oversold (RSI < 30) · overbought (RSI > 70) · neutral (30–70) |
| analyst_rating | string | — | Analyst consensus: strong_buy · buy · hold · sell · strong_sell |
| min_volume | integer | — | Minimum daily volume filter. e.g. 1000000 |
| min_market_cap_b | number | — | Minimum market cap in billions. e.g. 10 = $10B+ (large cap) |
| max_market_cap_b | number | — | Maximum market cap in billions. e.g. 2 = small cap only |
| max_pe_forward | number | — | Maximum forward P/E ratio. e.g. 20 for value screens. Excludes negative P/E. |
| sort_by | string | change_pct | change_pct · volume · market_cap · rating (composite score) · rsi_asc (oversold first) · rsi_desc (overbought first) |
| limit | integer | 20 | Results to return. Max 50. |
Response
| Field | Type | Description |
| count | integer | Number of results |
| filters | object | Echo of applied filters |
| results | array | Stock objects (see below) |
Per-result fields:
| Field | Type | Description |
| symbol | string | Ticker |
| name | string | Company name |
| sector / industry | string | Sector and industry classification |
| country | string | Country of listing |
| price | number | Current price |
| change_pct | number | Day change % |
| volume | number | Day volume |
| market_cap | number | Market capitalisation |
| rsi | number | Current RSI value |
| analyst_rating | string | Analyst consensus |
| rating | number | Composite technical rating (0–10) |
| direction | string | BULLISH / NEUTRAL / BEARISH |
Example — oversold tech stocks sorted by rating
{
"count": 3,
"filters": { "sector": "Technology", "rsi_signal": "oversold", "sort_by": "rating" },
"results": [
{
"symbol": "SMCI", "name": "Super Micro Computer",
"sector": "Technology", "industry": "Computer Hardware", "country": "United States",
"price": 38.20, "change_pct": -1.4,
"volume": 45200000, "market_cap": 22500000000,
"rsi": 27.3, "analyst_rating": "buy",
"rating": 6.5, "direction": "BULLISH"
}
]
}
Example — Healthcare, min volume 500K, sorted by volume
{
"count": 2,
"filters": { "sector": "Healthcare", "min_volume": 500000, "sort_by": "volume" },
"results": [
{
"symbol": "UNH", "name": "UnitedHealth Group Inc.",
"sector": "Healthcare", "industry": "Healthcare Plans", "country": "United States",
"price": 382.53, "change_pct": 0.65,
"volume": 5120000, "market_cap": 541500000000,
"rsi": 59.6, "analyst_rating": "strong_buy",
"rating": 7.1, "direction": "BULLISH"
},
{
"symbol": "PFE", "name": "Pfizer Inc.",
"sector": "Healthcare", "industry": "Drug Manufacturing", "country": "United States",
"price": 26.14, "change_pct": -0.34,
"volume": 18200000, "market_cap": 148700000000,
"rsi": 49.0, "analyst_rating": "hold",
"rating": 5.2, "direction": "NEUTRAL"
}
]
}
get_market_pulse free
Live market health snapshot in a single call. Aggregates VIX, Fear & Greed index, market breadth, and key index prices — no AI cost, always live data.
Use this as a lightweight context check before making any investment decisions. Replaces the need to call multiple separate endpoints for basic macro state.
No parameters — returns the current market snapshot.
Response fields
| Field | Type | Description |
| vix | number | VIX level at last pipeline run |
| fear_greed.value | number | CNN Fear & Greed index 0–100 |
| fear_greed.description | string | Label: "extreme fear" · "fear" · "neutral" · "greed" · "extreme greed" |
| breadth.oversold_pct | number | % of tracked stocks with RSI < 30 |
| breadth.overbought_pct | number | % of tracked stocks with RSI > 70 |
| breadth.neutral_pct | number | % of tracked stocks with RSI 30–70 |
| breadth.universe_size | integer | Total stocks in the tracked universe |
| indices.spy / qqq / iwm | object | Live price, change_pct, RSI for SPY / QQQ / IWM |
| bonds_commodities.tlt / gld | object | TLT (long bonds) and GLD (gold) — price, change_pct, RSI |
| updated_at | string | ISO 8601 UTC timestamp of breadth + fear/greed snapshot (pipeline runs every ~4h) |
Example response
{
"vix": 15.71,
"fear_greed": { "value": 55.0, "description": "neutral" },
"breadth": {
"universe_size": 2763,
"oversold_pct": 3.2,
"overbought_pct": 6.0,
"neutral_pct": 90.9
},
"indices": {
"spy": { "price": 757.09, "change_pct": 0.38, "rsi": 67.97 },
"qqq": { "price": 733.81, "change_pct": 0.62, "rsi": 73.66 },
"iwm": { "price": 292.01, "change_pct": -0.31, "rsi": 57.73 }
},
"bonds_commodities": {
"tlt": { "price": 85.64, "change_pct": -0.42, "rsi": 52.41 },
"gld": { "price": 411.27, "change_pct": -0.18, "rsi": 38.43 }
},
"data_age_hours": 0.7
}
get_earnings_calendar free+
Upcoming earnings dates for all stocks in the Stocklake universe, within a configurable look-ahead window. Dates sourced from market data — treat is_estimate: true dates as approximate.
Parameters
| Parameter | Type | Default | Description |
| days | integer | 7 | Look-ahead window in days (max 30) |
Response
| Field | Type | Description |
| window_days | number | Effective look-ahead window applied |
| from_date | string | Window start (UTC ISO) |
| to_date | string | Window end (UTC ISO) |
| count | number | Total results returned |
| results[].symbol | string | Ticker symbol |
| results[].name | string | Company short name |
| results[].sector | string | Sector |
| results[].market_cap | number | Market capitalisation in reporting currency |
| results[].price | number | Current stock price |
| results[].rsi | number | null | Current RSI — useful for pre-earnings momentum screening |
| results[].earnings_date | string | Expected earnings timestamp (UTC ISO) |
| results[].is_estimate | boolean | True if the date is an estimate — treat as approximate |
| results[].eps_trailing | number | null | Trailing 12-month EPS |
| results[].eps_forward | number | null | Forward EPS estimate |
Example response
{
"window_days": 7,
"from_date": "2026-05-06T10:00:00+00:00",
"to_date": "2026-05-13T10:00:00+00:00",
"count": 3,
"results": [
{
"symbol": "AAPL",
"name": "Apple Inc.",
"sector": "Technology",
"market_cap": 3200000000000,
"earnings_date": "2026-05-08T20:30:00+00:00",
"is_estimate": false,
"eps_trailing": 6.97,
"eps_forward": 7.54
}
]
}
Example — 30-day window
{
"window_days": 30,
"from_date": "2026-05-06T10:00:00+00:00",
"to_date": "2026-06-05T10:00:00+00:00",
"count": 4,
"results": [
{
"symbol": "AMD",
"name": "Advanced Micro Devices Inc.",
"sector": "Technology",
"market_cap": 845000000000,
"earnings_date": "2026-05-20T20:30:00+00:00",
"is_estimate": false,
"eps_trailing": 3.95,
"eps_forward": 4.82
},
{
"symbol": "INTC",
"name": "Intel Corporation",
"sector": "Technology",
"market_cap": 608000000000,
"earnings_date": "2026-05-22T21:00:00+00:00",
"is_estimate": false,
"eps_trailing": 2.41,
"eps_forward": 3.10
},
{
"symbol": "IBM",
"name": "International Business Machines Corp.",
"sector": "Technology",
"market_cap": 248000000000,
"earnings_date": "2026-05-28T20:30:00+00:00",
"is_estimate": true,
"eps_trailing": 6.58,
"eps_forward": 7.22
}
]
}
get_stock_rating free
Composite technical rating on a 0–10 scale. Synthesises RSI, MACD, Bollinger Bands, and moving average trend signals into a single score with per-indicator breakdown. No AI cost — computed from stored indicators.
⚠️ Technical vs analyst ratings
rating and
direction are
purely technical (RSI / MACD / Bollinger Bands / moving averages).
This is different from
analyst_rating from
get_stock, which reflects
analyst consensus based on fundamentals and price targets — not technical momentum.
Disagreement between these signals is normal: a stock can be technically overbought (low rating) while analysts rate it a strong buy, or vice versa.
Parameters
| Name | Type | Description |
| symbol | string | Ticker symbol |
Response fields
| Field | Type | Description |
| symbol | string | Ticker |
| rating | number | 0–10 composite technical rating |
| direction | string | BULLISH (≥6) / NEUTRAL (4–6) / BEARISH (≤4) |
| signals | object | Per-indicator breakdown: rsi, macd, bb, trend. Each includes text (human readable), strength (strong/moderate/weak), verdict (bullish/mild_bullish/neutral/mild_bearish/bearish). RSI includes value (raw number). Indicator-specific fields: macd_line, signal_line, histogram, upper, middle, lower, width, position, price, sma50, sma200 |
Example
{
"symbol": "AAPL",
"rating": 7.2,
"direction": "BULLISH",
"signals": {
"rsi": {
"text": "neutral (54.2)",
"value": 54.2,
"strength": "weak",
"verdict": "neutral"
},
"macd": {
"text": "above signal (0.87 > 0.54) — bullish crossover",
"macd_line": 0.87,
"signal_line": 0.54,
"histogram": 0.33,
"strength": "moderate",
"verdict": "bullish"
},
"bb": {
"text": "lower half — mild bullish",
"position": "lower_half",
"upper": 288.48,
"middle": 271.57,
"lower": 254.67,
"width": 33.81,
"strength": "moderate",
"verdict": "mild_bullish"
},
"trend": {
"text": "price > SMA50 > SMA200 — strong uptrend",
"price": 213.45,
"sma50": 262.4,
"sma200": 256.62,
"strength": "strong",
"verdict": "bullish"
}
}
}
Example — QCOM (BEARISH)
{
"symbol": "QCOM",
"rating": 3.8,
"direction": "BEARISH",
"signals": {
"rsi": {
"text": "approaching overbought (68.1)",
"value": 68.1,
"strength": "moderate",
"verdict": "mild_bearish"
},
"macd": {
"text": "below signal (3.42 < 3.98) — bearish crossover",
"macd_line": 3.42,
"signal_line": 3.98,
"histogram": -0.56,
"strength": "moderate",
"verdict": "bearish"
},
"bb": {
"text": "above upper band — overbought",
"position": "above_upper",
"price": 243.29,
"upper": 256.40,
"middle": 228.15,
"lower": 199.90,
"width": 56.50,
"strength": "moderate",
"verdict": "mild_bearish"
},
"trend": {
"text": "price > SMA50 > SMA200 — strong uptrend",
"price": 243.29,
"sma50": 226.80,
"sma200": 194.35,
"strength": "strong",
"verdict": "bullish"
}
}
}
get_technical_signals free
Structured technical signal summary optimised for programmatic consumption. Returns flat labelled signals agents can act on directly — no parsing of raw indicator values needed. Unlike get_stock_rating (composite score), this surfaces per-indicator verdict labels.
Parameters
| Name | Type | Description |
| symbol | string | Ticker symbol |
Response fields
| Field | Type | Description |
| overall | string | BULLISH / NEUTRAL / BEARISH — composite label |
| rsi.value | number | Raw RSI value |
| rsi.signal | string | oversold / recovering / neutral / approaching_overbought / overbought |
| macd.signal | string | bullish (MACD line above signal) / bearish |
| macd.histogram | number | MACD line − signal line |
| macd.strength | string | strong / moderate / weak |
| bollinger.position | string | below_lower / lower_half / upper_half / above_upper |
| bollinger.bandwidth_pct | number | Band width as % of midpoint — low = squeeze, high = expanded |
| sma200.trend | string | above / below (price vs 200-day MA) |
| sma200.gap_pct | number | % distance from 200-day MA (positive = above) |
| sma50.trend | string | above / below (price vs 50-day MA) |
| sma50.gap_pct | number | % distance from 50-day MA |
Example
{
"symbol": "AAPL",
"price": 312.93,
"overall": "NEUTRAL",
"rsi": { "value": 66.7, "signal": "approaching_overbought" },
"macd": { "signal": "bearish", "histogram": -0.479, "strength": "weak" },
"bollinger": { "position": "upper_half", "bandwidth_pct": 8.4 },
"sma200": { "trend": "above", "gap_pct": 18.4 },
"sma50": { "trend": "above", "gap_pct": 11.2 }
}
get_screener free
Power screener — filter stocks by exact RSI bounds, MACD state, SMA200 trend, performance, fundamentals, and (Pro) AI flag scores. More capable than search_stocks, which is text-first. Presets provide one-call screens for common setups.
Parameters
| Name | Type | Default | Description |
| preset | string | — | oversold (RSI≤35, above SMA200) · overbought (RSI≥65) · momentum (RSI 50-70, above SMA200, up 0.5%+) · high_conviction (flag_score≥7, Pro only) |
| sector | string | — | e.g. "Technology", "Healthcare" |
| min_rsi / max_rsi | number | — | Exact RSI bounds (e.g. min_rsi=30, max_rsi=50 = post-oversold recovery zone) |
| sma_trend | string | — | above_200 / below_200 — price vs 200-day MA |
| macd_signal | string | — | bullish / bearish — MACD line vs signal line |
| min_perf_1d / max_perf_1d | number | — | 1-day performance % bounds (e.g. min_perf_1d=2.0 = up 2%+ today) |
| min_market_cap_b / max_market_cap_b | number | — | Market cap in billions |
| max_pe_forward | number | — | Maximum forward P/E |
| min_flag_score | integer | — | Minimum AI flag score 0-10 — Pro tier only |
| sort_by | string | market_cap | market_cap / rsi / perf_1d / analyst_rating / flag_score (Pro) |
| sort_dir | string | desc | asc / desc |
| limit | integer | 20 | 1–50 |
Response fields (per result)
| Field | Type | Description |
| symbol, name, sector | string | Stock identity |
| price, change_pct | number | Current price and 1-day change % |
| market_cap, pe_forward | number | Fundamentals |
| rsi | number | RSI value |
| macd_signal | string | bullish / bearish / neutral |
| sma200_trend | string | above / below |
| analyst_rating | string | buy / hold / sell etc. |
| rating | number | 0-10 technical composite score |
| flag_score | number | Pro only — AI flag score 0-10 |
| ai_verdict | string | Pro only — bullish / neutral / bearish |
Example — preset: oversold
{
"count": 8,
"preset": "oversold",
"filters": { "max_rsi": 35, "sma_trend": "above_200", "sort_by": "market_cap", "sort_dir": "desc" },
"results": [
{ "symbol": "VZ", "name": "Verizon Communications", "sector": "Communication Services",
"price": 38.42, "change_pct": -0.8, "rsi": 28.9, "macd_signal": "bearish",
"sma200_trend": "above", "analyst_rating": "hold", "rating": 3.4 }
]
}
get_market_movers free
Top market movers from the Stocklake universe — gainers, losers, and most active by volume. A fast way to see what's moving in the market right now.
Parameters
| Name | Type | Default | Description |
| category | string | all | gainers / losers / most_active / all (all returns all 3 categories) |
| limit | integer | 10 | Results per category (max 20) |
| min_market_cap_b | number | — | Filter to stocks above this market cap in billions (e.g. 1.0 = $1B+ only) |
Response
Returns gainers[], losers[], most_active[] (whichever categories requested). Each entry: symbol, name, sector, price, change_pct, volume, rsi, market_cap.
Example
{
"category": "all", "limit_per_category": 3,
"gainers": [
{ "symbol": "SMCI", "name": "Super Micro Computer", "sector": "Technology",
"price": 48.20, "change_pct": 18.4, "volume": 42810000, "rsi": 67.2, "market_cap": 28400000000 }
],
"losers": [
{ "symbol": "WBA", "name": "Walgreens Boots Alliance", "sector": "Healthcare",
"price": 9.82, "change_pct": -12.7, "volume": 18200000, "rsi": 22.4, "market_cap": 8500000000 }
],
"most_active": [
{ "symbol": "TSLA", "name": "Tesla", "sector": "Consumer Cyclical",
"price": 192.40, "change_pct": 2.1, "volume": 94000000, "rsi": 54.8, "market_cap": 614000000000 }
]
}
get_stock_news pro AI
Returns AI-analysed news articles for a ticker. Each article has been processed by our AI pipeline — raw article content is not exposed.
When no articles are found, the ticker is automatically queued for a background refresh. Re-queuing an already-pending ticker does not count against your limit.
Parameters
| Name | Type | Description |
| symbol | string | Ticker symbol |
| limit | integer | Max articles to return. Default 10, max 10. |
| days | integer | Look-back window in days. Default 30, max 30. |
Response
Outer envelope fields:
| Field | Type | Description |
| symbol | string | Ticker |
| status | string | ok empty — see below |
| count | integer | Number of articles returned |
| days | integer | Effective look-back window in days (max 30) |
| articles | array | Article objects (see below) |
| message | string | Present when status is empty |
Status values:
- ok — articles returned
- empty — no news found for this window; pipeline triggered in background if data was stale
Per-article fields:
| Field | Type | Description |
| title | string | Article headline |
| published_at | datetime | Publication timestamp (ISO 8601) |
| ai_sentiment | string | positive / neutral / negative |
| ai_flag_score | number | 0–10 signal strength (10 = high impact) |
| ai_summary | string | Full AI-generated summary of the article's relevance to the stock |
| ai_confidence | number | 0–10 AI confidence score (normalised from pipeline output) |
Example — status ok
{
"symbol": "TSLA",
"status": "ok",
"count": 3,
"days": 30,
"articles": [
{
"title": "Tesla Q1 deliveries beat expectations",
"published_at": "2026-04-03T14:00:00+00:00",
"ai_sentiment": "positive",
"ai_flag_score": 8,
"ai_summary": "Q1 deliveries of 387k beat analyst consensus of 375k, signalling demand stabilisation and easing investor concerns over weakening EV demand.",
"ai_confidence": 8.5
}
]
}
Example — status empty
{
"symbol": "RKLB",
"status": "empty",
"count": 0,
"days": 30,
"articles": [],
"message": "No news available for RKLB in the last 30d."
}
get_stock_ai_summary pro AI
AI research brief for a stock: verdict, confidence, flag score, narrative, key observations, and risk factors. Generated by the Stocklake AI pipeline on a nightly refresh cycle.
Parameters
| Name | Type | Description |
| symbol | string | Ticker symbol (e.g. NVDA). Case-insensitive. |
Response fields
| Field | Type | Description |
| verdict | string | bullish · bearish · neutral |
| confidence | integer | AI confidence in the verdict (0–10) |
| flag_score | integer | Notability score (0–10). 8+ = worth attention, 9–10 = high conviction |
| summary | string | 2–4 sentence AI narrative covering price context, trend, and key dynamics |
| key_points | array | 3–5 specific bullish or neutral observations |
| risks | array | 2–3 specific risk factors |
| price_at_generation | number | Stock price when the summary was generated |
| generated_at | string | UTC timestamp of last generation (ISO 8601) |
| generated_at | string | ISO 8601 UTC timestamp of when the AI summary was generated |
Example
{
"symbol": "AAPL",
"verdict": "neutral",
"confidence": 6,
"flag_score": 7,
"summary": "AAPL sits at $310.85 with strong underlying growth (revenue +16.6%, earnings +21.8%). RSI 77.6 signals overbought conditions near ATH — limited near-term upside without a catalyst.",
"key_points": [
"Price +19% above SMA200 confirms strong long-term uptrend",
"Revenue and earnings growth both accelerating YoY",
"Analyst consensus: buy, mean target $340"
],
"risks": [
"RSI 77.6 overbought — pullback risk elevated near ATH",
"Declining volume signals waning momentum"
],
"price_at_generation": 310.85,
"generated_at": "2026-05-27T20:30:38+00:00"
}
get_symbol_context pro AI
Full research context for a symbol in one call — replaces 5 separate calls: get_stock + get_stock_ai_summary + get_stock_news + get_sentiment_profile + get_discovery_ideas (filtered to one symbol). All data is pre-computed by the nightly AI pipeline; no live AI calls on request.
Parameters
| Name | Type | Description |
| symbol | string | Ticker symbol |
Response sections
| Section | Key fields |
| stock | symbol, name, sector, price, change_pct, market_cap, pe_forward, pe_trailing, beta, dividend_yield, week52_high/low, analyst_rating, analyst_target, rsi, sma200_trend |
| ai_summary | verdict, confidence, flag_score, summary, key_points[], risks[], generated_at |
| news | Last 3 AI-flagged articles: title, published_at, ai_sentiment, ai_flag_score, ai_summary |
| sentiment | signal, confidence, flag_score, insider_trend (buying/selling/neutral), institutional_pct, updated_at |
| discovery | Active discovery idea (if any): direction, conviction, confidence, flag_score, source, rationale, expires — null if no active idea |
Example (condensed)
{
"stock": {
"symbol": "ORCL", "name": "Oracle Corporation", "sector": "Technology",
"price": 192.40, "change_pct": 1.4, "rsi": 68.9, "sma200_trend": "above",
"analyst_rating": "buy", "analyst_target": 210.0
},
"ai_summary": {
"verdict": "bullish", "confidence": 8, "flag_score": 9,
"summary": "Strong cloud momentum, AI workload growth accelerating...",
"key_points": ["Cloud ARR up 23% YoY", "AI training contracts with major hyperscalers"],
"risks": ["Elevated valuation at 28x forward earnings"]
},
"news": [
{ "title": "Oracle beats Q3 earnings, cloud growth accelerates",
"published_at": "2026-06-10T20:15:00+00:00", "ai_sentiment": "positive",
"ai_flag_score": 9, "ai_summary": "Beat on EPS and revenue, cloud segment +31%..." }
],
"sentiment": {
"signal": "bullish", "confidence": 7, "insider_trend": "neutral",
"institutional_pct": 72.1, "updated_at": "2026-06-04T23:07:46+00:00"
},
"discovery": {
"direction": "LONG", "conviction": 8, "flag_score": 9,
"source": "screener", "rationale": "Strong AI cloud catalyst, momentum breakout...",
"expires": "2026-06-12"
}
}
get_discovery_ideas pro AI
Live AI signal queue — stocks actively flagged by the Stocklake pipeline as worth attention. Sourced from sector screening, news analysis, and sentiment signals. Ideas expire daily; this always reflects the pipeline's current view.
Pipeline dependency. Discovery ideas are refreshed by scheduled AI jobs. If the pipeline hasn't run recently, results may be sparse. Check age_hours on each idea to assess freshness.
Parameters
| Name | Type | Default | Description |
| direction | string | — | LONG · SHORT · BOTH — filter by trade direction. Omit for all. |
| min_conviction | integer | 7 | Minimum conviction score (0–10). Higher = pipeline more confident in the signal. |
| min_flag_score | integer | 8 | Minimum flag score (0–10). 8+ = notable, 9+ = high conviction. Lowering to 7 returns more ideas. |
| source | string | — | Filter by signal source: news · screener · sentiment |
| limit | integer | 25 | Max ideas to return (max 50). Results sorted by timestamp (newest first). |
Response fields
| Field | Type | Description |
| count | integer | Number of ideas returned |
| filters | object | Echo of applied filters |
| ideas[].symbol | string | Ticker |
| ideas[].direction | string | LONG · SHORT · BOTH |
| ideas[].conviction | integer | Pipeline conviction 0–10 |
| ideas[].confidence | integer | AI confidence 0–10 |
| ideas[].flag_score | integer | Signal notability 0–10 (8+ = worth attention) |
| ideas[].source | string | Primary pipeline source that flagged this stock |
| ideas[].sources | array | All sources that contributed (when merged across sources) |
| ideas[].rationale | string | AI rationale — why the pipeline flagged this stock |
| ideas[].expires | string | Date after which this idea is considered stale (YYYY-MM-DD) |
| ideas[].flagged_at | string | ISO 8601 UTC timestamp when this idea was last flagged by the pipeline |
Example
{
"count": 3,
"filters": { "min_conviction": 7, "min_flag_score": 9, "direction": null },
"ideas": [
{
"symbol": "MGM", "direction": "BOTH",
"conviction": 9, "confidence": 7, "flag_score": 10,
"source": "news", "sources": ["news"],
"rationale": "flag=10/10 | bullish | impact=95/100 | MGM Resorts acquisition by Apollo rumored at 25% premium",
"expires": "2026-06-06", "age_hours": 3.2
},
{
"symbol": "CMA", "direction": "BOTH",
"conviction": 8, "confidence": 6, "flag_score": 9,
"source": "news", "sources": ["news"],
"rationale": "flag=9/10 | mixed | impact=85/100 | Comerica net interest income guidance raised on rate optimism",
"expires": "2026-06-06", "age_hours": 4.1
}
]
}
get_sentiment_profile pro AI
AI-synthesized insider + institutional sentiment for a stock. Combines SEC Form 4 insider transactions with Nasdaq institutional holder data, nightly enrichment.
Parameters
| Parameter | Type | Required | Default | Description |
| symbol | string | ✓ | — | Ticker symbol (e.g. AAPL, TSLA) |
Response fields
| Field | Type | Description |
| symbol | string | Ticker |
| signal | string | Combined sentiment: STRONG_BULLISH, BULLISH, NEUTRAL, BEARISH, STRONG_BEARISH |
| flag_score | int | Notability 0–10. 8+ = trader alert |
| confidence | int | AI confidence 1–10 |
| insider_signal | string | Insider-only signal: BULLISH, BEARISH, NEUTRAL, NONE |
| inst_signal | string | Institutional-only signal: BULLISH, BEARISH, NEUTRAL, NONE |
| summary | string | Human-readable 2–4 sentence summary with specific names, amounts, and direction |
| insider_buys | int | Number of insider buy transactions (pre-filtered) |
| insider_sells | int | Number of insider sell transactions (pre-filtered) |
| inst_ownership | number | null | Institutional ownership percentage as a float (e.g. 74.55) |
| total_holders | int | null | Total institutional holders |
| updated_at | string | ISO 8601 UTC timestamp when data was last refreshed |
| updated_at | string | ISO 8601 UTC timestamp of last sentiment refresh (nightly pipeline) |
Example response
{
"symbol": "BG",
"signal": "BULLISH",
"flag_score": 6,
"confidence": 7,
"insider_signal": "BEARISH",
"inst_signal": "BULLISH",
"summary": "COO Garros Julio sold $337K — lone bearish insider signal. Institutions strongly bullish: 377 holders increased (+28.6M sh) vs 283 decreased. 128 new holders added 20.9M sh.",
"insider_buys": 0,
"insider_sells": 1,
"inst_ownership": 99.81,
"total_holders": 758,
"updated_at": "2026-05-11T22:16:29.930700+00:00"
}
Example — CRM (STRONG_BULLISH, high insider buying)
{
"symbol": "CRM",
"signal": "STRONG_BULLISH",
"flag_score": 9,
"confidence": 8,
"insider_signal": "BULLISH",
"inst_signal": "BULLISH",
"summary": "CEO Benioff bought $12.4M worth of shares — largest insider buy in 3 years. Three additional C-suite insiders added $4.2M combined. Institutions increased holdings by 3.2% this quarter with 42 new holders opening positions. Strong alignment between insider and institutional conviction.",
"insider_buys": 4,
"insider_sells": 0,
"inst_ownership": 82.15,
"total_holders": 2410,
"updated_at": "2026-05-28T06:15:00+00:00"
}
get_news_feed pro AI
Market-wide AI-flagged news briefing — top articles across all tracked stocks ranked by signal strength. Unlike get_stock_news (per-symbol), this scans the entire universe and surfaces the most notable news regardless of ticker. No URLs or source domains exposed.
Parameters
| Name | Type | Default | Description |
| min_flag_score | integer | 8 | Minimum AI flag score (5–10). 8 = notable · 9 = high-impact · 10 = exceptional |
| days | integer | 3 | Look-back window in days (max 10) |
| limit | integer | 10 | Max articles returned (max 25) |
Example
{
"count": 10, "days": 3, "min_flag_score": 8,
"articles": [
{ "symbol": "NVDA", "title": "Nvidia unveils GB300 chip, accelerating AI data center roadmap",
"published_at": "2026-06-04T14:30:00+00:00",
"ai_sentiment": "positive", "ai_flag_score": 9,
"ai_summary": "New GB300 architecture delivers 2× throughput over H100. Roadmap acceleration strengthens moat vs AMD...",
"ai_confidence": 8.8 }
]
}
get_market_assessment pro AI
Combined macro regime + market outlook in a single call. Produced every ~4 hours by the market intelligence pipeline. Returns two complementary perspectives:
- Regime (
regime_* fields) — answers "how much equity risk to take" → use for position sizing and asset allocation
- Outlook (
outlook_* fields) — answers "which direction and sectors to trade" → use for sector preference and directional bias
Note: market_context is a point-in-time snapshot from when the AI ran — not live. Use get_market_pulse for live prices.
Parameters
| Name | Type | Default | Description |
| history_count | integer | 0 | Include last N prior assessments for each perspective (0–3). Returns regime_history[] and outlook_history[]. |
Response — Regime fields
| Field | Type | Description |
| regime | string | RISK_OFF / CAUTIOUS / NEUTRAL / AGGRESSIVE |
| regime_bias | string | LONG_ONLY / SHORT_ONLY / BOTH |
| regime_confidence | number | 1–10. Clarity of the regime call. |
| regime_rationale | string | Core thesis in plain language |
| key_risks | string[] | 2–3 tail risks that could invalidate the call |
| watch_for | string[] | Triggers that would cause a regime change |
| vix_at_assessment | number | VIX level when assessment was made |
| regime_updated_at | string | ISO 8601 UTC timestamp of last assessment |
| indicators.macro_data | object | FRED macro data: yield_spread_10y2y, fed_funds_rate, cpi_index (BLS index level ~332, not YoY %), unemployment, breakeven_10y, usd_index, m2 — each with value, date, delta_3m |
| indicators.volatility_term_structure | object | VIX / VIX3M / VIX6M last 5 closes + contango/backwardation signal |
| indicators.market_sentiment | object | Fear & Greed value (0–100) and label |
| market_context | object | Point-in-time snapshot: price/RSI/SMA200/perf for SPY, QQQ, IWM, TLT, GLD, VIX, TNX, HYG, sector ETFs. Recorded when AI ran — not live. |
Response — Outlook fields
| Field | Type | Description |
| outlook | string | BULLISH / NEUTRAL / BEARISH |
| outlook_conviction | number | 1–10. Strength of the directional call. |
| equity_view | string | Plain language directional narrative |
| preferred_sectors | string[] | Sectors to overweight |
| avoided_sectors | string[] | Sectors to underweight |
| catalyst | string | Primary catalyst driving the outlook |
| outlook_key_risk | string | Key risk to the outlook thesis |
| outlook_rationale | string | Detailed reasoning |
| outlook_updated_at | string | ISO 8601 UTC timestamp of last assessment |
| regime_history[] | object[] | Prior regime states (when history_count > 0): regime, bias, confidence, vix_at_assessment, at |
| outlook_history[] | object[] | Prior outlook states (when history_count > 0): outlook, conviction, at |
Example (condensed)
{
"regime": "CAUTIOUS", "regime_bias": "BOTH", "regime_confidence": 6,
"regime_rationale": "Equity uptrend intact. HYG diverging — credit not confirming SPY highs.",
"key_risks": ["HYG breaking below $79.50", "VIX closing above 20"],
"watch_for": ["HYG reclaiming $80.50 → upgrade to NEUTRAL"],
"vix_at_assessment": 16.94, "regime_updated_at": "2026-05-06T09:14:56+00:00",
"indicators": {
"macro_data": { "yield_spread_10y2y": { "value": 0.21, "delta_3m": 0.15 } },
"market_sentiment": { "value": 54.0, "description": "Neutral" }
},
"market_context": { /* NOT live — snapshot from regime_updated_at */
"spy": { "price": 574.12, "rsi": 70.3, "above_200sma": true }
},
"outlook": "BULLISH", "outlook_conviction": 7,
"equity_view": "Momentum intact. Tech leading. Small-caps lagging but not breaking down.",
"preferred_sectors": ["Technology", "Industrials"],
"avoided_sectors": ["Utilities", "Real Estate"],
"catalyst": "AI spending cycle intact. Macro resilience.",
"outlook_updated_at": "2026-05-06T09:14:56+00:00"
}
get_sector_intelligence pro AI
AI-assessed sector intelligence with signals (LEADING/STRONG/NEUTRAL/WEAK/LAGGING), drivers, alerts, and computed statistics. Refreshed every ~4 hours by the market intelligence pipeline.
Parameters
| Parameter | Type | Required | Default | Description |
| sector | string | — | None | Sector name (e.g. Technology, Healthcare). Omit to list all sectors. |
Response fields
| Field | Type | Description |
| sector | string | Sector name |
| signal | string | LEADING / STRONG / NEUTRAL / WEAK / LAGGING |
| confidence | number | AI confidence 1–10 |
| drivers | string | AI narrative of sector drivers |
| alert | string | Notable condition if applicable (breadth divergence, extreme RSI, etc.) |
| stats.avg_rsi | number | Sector-average RSI |
| stats.sma200_breadth_pct | number | % of stocks above their 200-day MA |
| stats.oversold_pct / overbought_pct | number | RSI distribution extremes |
| stats.avg_perf_1w_pct / avg_perf_1m_pct | number | Average sector performance 1W / 1M |
| updated_at | string | ISO 8601 when the assessment was made |
| sectors[] / count | array / integer | Present when sector param is omitted — all sectors assessed |
Example
{
"sector": "Technology", "signal": "STRONG", "confidence": 7,
"drivers": "AI capex cycle, earnings momentum. Mega-caps leading with broad participation.",
"alert": "19.5% overbought, breadth only 53% — narrow leadership suggests froth in pockets",
"stats": { "avg_rsi": 56.5, "sma200_breadth_pct": 53.1,
"oversold_pct": 4.1, "overbought_pct": 19.5,
"avg_perf_1w_pct": 1.1, "avg_perf_1m_pct": 11.0 },
"updated_at": "2026-05-12T10:19:48+00:00"
}
get_sector_rotation pro AI
All 11 market sectors in one call — signals, breadth stats, and momentum for rotation analysis. Where get_sector_intelligence gives deep analysis for one sector, this gives the rotation picture simultaneously, sorted by signal strength (LEADING first).
Parameters
| Name | Type | Default | Description |
| history_count | integer | 0 | Include last N prior signal states per sector (0–3) |
Response
Returns count and sectors[] sorted by signal strength. Per sector: signal, confidence, alert, avg_rsi, sma200_breadth_pct, oversold_pct, overbought_pct, perf_1w_pct, perf_1m_pct, updated_at. Optional history[] per sector when history_count > 0.
Example (condensed)
{
"count": 11,
"sectors": [
{ "sector": "Technology", "signal": "STRONG", "confidence": 7,
"avg_rsi": 56.5, "sma200_breadth_pct": 53.1,
"perf_1w_pct": 1.1, "perf_1m_pct": 11.0,
"alert": "19.5% overbought — narrow leadership",
"updated_at": "2026-05-12T10:19:48+00:00" },
{ "sector": "Energy", "signal": "WEAK", "confidence": 6,
"avg_rsi": 42.3, "sma200_breadth_pct": 35.8,
"perf_1w_pct": -2.1, "perf_1m_pct": -4.8, "alert": null,
"updated_at": "2026-05-12T10:19:48+00:00" }
]
}
get_earnings_intelligence pro AI
Upcoming earnings with AI context per stock — combines the earnings calendar with AI pipeline data to surface which events are worth monitoring. Sorted by earnings date ascending (soonest first).
Parameters
| Name | Type | Default | Description |
| days_ahead | integer | 14 | Look-ahead window in days (max 30) |
| sector | string | — | Filter to one sector (optional) |
| min_flag_score | integer | — | Only return stocks with AI flag score ≥ this value (optional) |
Response fields (per result)
| Field | Type | Description |
| symbol, name, sector | string | Stock identity |
| earnings_date | string | ISO UTC timestamp of expected earnings release |
| is_estimate | boolean | Whether the date is estimated |
| price, rsi, market_cap | number | Current technicals |
| eps_trailing, eps_forward | number | Earnings expectations context |
| ai_verdict | string | bullish / neutral / bearish (from nightly AI pipeline) |
| ai_flag_score | number | 0–10. 8+ = notable going into earnings |
| ai_confidence | number | 0–10. AI confidence in the verdict |
| ai_risks | string[] | Top 2 AI-identified risk factors |
| analyst_rating, analyst_target | string / number | Wall Street consensus |
Example
{
"count": 22, "days_ahead": 14,
"results": [
{ "symbol": "ORCL", "name": "Oracle Corporation", "sector": "Technology",
"earnings_date": "2026-06-10T20:00:00+00:00", "is_estimate": false,
"price": 192.40, "rsi": 68.9, "eps_forward": 7.20,
"ai_verdict": "bullish", "ai_flag_score": 9, "ai_confidence": 8,
"ai_risks": ["Elevated valuation at 28x forward earnings", "Cloud margin pressure from AI infra spend"],
"analyst_rating": "buy", "analyst_target": 210.0 }
]
}