Docs  /  Tools

Tools

All tools return JSON strings. Empty results always return {"results": [], "count": 0, "message": "..."} rather than an error.


get_digest

Zero-parameter morning briefing. The right starting point for any session.

get_digest()

Returns a 24-hour summary: top market events, sentiment breakdown, most contested stories, category counts, and top tickers. No parameters needed.

Response fields

FieldTypeDescription
generated_atISO 8601When the digest was built
window_hoursintAlways 24
market_summary.total_eventsintAll events in the window
market_summary.market_eventsintEvents with market_relevance_score ≥ 70
market_summary.sentimentobject{bullish, bearish, neutral} counts
market_summary.top_tickerslistMost-mentioned tickers, up to 10
top_market_eventslistUp to 5 events sorted by market relevance
most_contestedlistUp to 5 events sorted by divergence score
categoriesobjectEvent count by category

get_market_news

Recent events with material market relevance.

get_market_news(limit=10, hours=24, min_score=70)

Parameters

NameTypeDefaultNotes
limitint101 to 25
hoursint24Lookback window. Max 168 (7 days)
min_scoreint70Minimum market_relevance_score. Use 50 for broader results, 85+ for high-impact only

get_ticker_news

Events mentioning a specific stock ticker.

get_ticker_news(ticker)

Parameters

NameTypeDefaultNotes
tickerstringrequiredCase-insensitive. E.g. NVDA, nvda

scan_portfolio

Batch ticker check. Returns hits, no-news tickers, and an aggregate sentiment breakdown.

scan_portfolio(tickers, hours=24)

Parameters

NameTypeDefaultNotes
tickersstringrequiredComma-separated. E.g. NVDA,AAPL,MSFT. Max 20
hoursint24Lookback window. Max 168

Response fields

FieldDescription
hitsTickers with at least one event, each with a list of matching events
no_newsTickers with no events in the window
tickers_checkedHow many tickers were queried (capped at 20)
overall_sentiment{bullish, bearish, neutral} counts across all hits

get_market_sentiment_overview

Aggregate bullish/bearish breakdown for the market as a whole.

get_market_sentiment_overview(hours=24, min_score=70)

Parameters

NameTypeDefaultNotes
hoursint24Lookback window. Max 168
min_scoreint70Minimum market_relevance_score to include

Response fields

FieldDescription
window_hoursThe hours value used
total_market_eventsEvents meeting the score threshold
sentiment_breakdown{bullish, bearish, neutral} counts
top_tickersMost-mentioned tickers in market events
most_divergentUp to 5 highest-divergence market events

query_news

Power query. Combine any filters in a single call.

query_news(tickers="", sentiment="", category="", min_divergence=0,
           max_divergence=100, min_market_score=0, hours=24,
           sort="recent", limit=10)

Parameters

NameTypeDefaultNotes
tickersstring-Comma-separated ticker symbols
sentimentenum-bullish, bearish, neutral
categoryenum-war, economy, politics, ai, health, other
min_divergenceint00 to 100
max_divergenceint1000 to 100
min_market_scoreint0Minimum market_relevance_score
hoursint24Lookback window. Max 168
sortenumrecentrecent, divergence, market
limitint101 to 25

get_top_divergent

Most editorially contested stories — Divergence's core feature.

get_top_divergent(category="", hours=24, limit=10)

Returns events sorted by divergence_score descending. Each result includes a takeaway sentence summarising the editorial split. Use get_event for the full per-outlet breakdown.

Parameters

NameTypeDefaultNotes
categoryenum-war, economy, politics, ai, health, other. Empty = all
hoursint24Lookback window. Max 168
limitint101 to 25

search_news

Keyword search across event titles and summaries.

search_news(query, category="", sentiment="", min_divergence=0, limit=10)

Case-insensitive substring match. Does not search raw article text.

Parameters

NameTypeDefaultNotes
querystringrequiredMatched against title and event_summary
categoryenum-war, economy, politics, ai, health, other
sentimentenum-bullish, bearish, neutral
min_divergenceint00 to 100
limitint101 to 25

get_event

Full event detail: sources, facts, takeaway, and article count.

get_event(event_id)

Parameters

NameTypeNotes
event_idintFrom the id field on any other tool result

Response fields

FieldDescription
idEvent ID
titleEvent title
summary2–3 sentence factual summary
takeawayHow outlet coverage splits — key framings in italics
categorywar, economy, politics, ai, health, other
divergence_score0–100. See Divergence score
market_relevance_score0–100, or null
market_sentimentbullish, bearish, neutral, or null
market_relevance_reasonWhy this event is market-relevant, or null
tickersExtracted stock ticker symbols
sourcesPer-outlet: outlet, headline, framing_label, framing_color
factsPer-fact: status (confirmed/disputed), text, source_attribution
article_countArticles clustered into this event

Returns {"error": "not_found"} if the event ID does not exist or the event was rejected during analysis.