get_company_events / get_company_news / get_macro_news via MCP). Sources span press and wire coverage (roughly 160 feeds across two dozen regions), earnings-call transcripts, SEC 8-K filings, Asian exchange filings, company IR pages, and a semiconductor supply-chain lane; channel on every row says which.
All endpoints on this page require the Fund plan, except the vocabulary endpoint GET /v1/news/themes, which is free on every plan. Every metered call costs 1 credit.
The company_id path segment accepts a ticker, CIK, ISIN, or cmp_… id, and resolves to every symbol the company is known by.
Responses use the { data, next_cursor, coverage } envelope with cursor pagination — pass next_cursor back unchanged as cursor; see Pagination. Errors use the standard error envelope; see Errors.
An empty result usually means nothing cleared the scoring bar, not that nothing was published: only items scoring 40+ on the rule pass are read by the model, roughly a fifth of the stream. A large share of the volume is Japanese, Korean or Chinese and is not translated — an English keyword search finds nothing in it.
GET /v1/companies/{company_id}/news/events
One row per (event, company) — the monitoring grain. An event is one event, not one article: ten write-ups of the same print collapse to one row, with the headline and reason taken from the strongest article. The per-article route below answers “what was written”; this one answers “what happened”. Plan: Fund · Credits: 1 per callstring
bullish, bearish, or neutral — the event’s overall direction, the most common read across its articles.integer
0–100. Peak impact across the event’s articles.
string
default:"direct"
Which kind of connection to this company.
direct (default) — the article names it. knock_on — the article does not name it; the row is reached through a filed relationship in the entity graph and is an inference. both — both kinds, each row carrying its own relation.integer
0–100, knock-on rows only: how far the inference says this name was repriced. Not the same scale as
min_impact, and never applied to direct rows.string
ISO-8601 timestamp lower bound.
boolean
default:"false"
Include future-dated calendar rows (IR feeds publish the earnings calendar, so some rows are dated months ahead). Excluded by default.
string
next_cursor from the previous page, passed back unchanged.integer
1–200, default 50.
An event can merge several kinds of source — a wire write-up, the company’s own 8-K, and the earnings call that followed — and
publishers then lists all of them. The event’s headline and why come from its strongest article, not from all of them. Timestamps come from different clocks: weakest_time_basis carries the least precise one in the event, so times are only comparable within the same basis.GET /v1/companies/{company_id}/news
One row per (article, company). Same filters as the events route, plusevent_type and until.
Plan: Fund · Credits: 1 per call
string
bullish, bearish, or neutral — the model’s read of what this article means for this name.string
One of the 20 coarse event types (
earnings, guidance, m&a, fda, …).integer
0–100. The model’s per-name impact — not a price move.
string
default:"direct"
direct (default), knock_on, or both — see the events route above.integer
0–100, knock-on rows only.
string
ISO-8601 timestamp lower bound.
string
ISO-8601 timestamp upper bound.
boolean
default:"false"
Include future-dated calendar rows. Excluded by default.
string
next_cursor from the previous page, passed back unchanged.integer
1–200, default 50.
Knock-on rows (
relation=knock_on, and the reaches list) are inferences from the entity graph’s filed relationships, not reporting — never restate one as something the article said. The full article text is neither served nor stored: a row carries the title, the publisher’s own blurb, a one-line why, and a link — follow the link to read the article.GET /v1/news/themes
The macro theme vocabulary. Call this before querying a theme stream — a guessed theme name returns an empty page, not an error. Plan: Free and above · Credits: freeThemes are not equally full —
market and commodity hold thousands of rows while recently split-out themes hold almost nothing yet. The counts in this response are the honest guide.GET /v1/news/themes/{theme}
Everything on one macro theme, company or no company. This is the only route that reaches the ~89% of macro items that carry no ticker impact at all. Plan: Fund · Credits: 1 per callstring
required
A theme name from
GET /v1/news/themes, e.g. rates.string
macro — items read as macro events, usually naming no company. company — the same policy events landing on named companies, which is the half a ticker query can never reach.string
decided — somebody did it. talked — somebody only said it. The Fed holding rates and a governor talking about holding rates are different events; this is how to ask for only the first.integer
0–100 rule score. 40 and above is the subset the model has read.
string
One of
us, jp, kr, tw, cn, eu, in, global. Note region is null on more than half of all rows — unlabelled, not global.string
ISO-8601 timestamp lower bound.
string
ISO-8601 timestamp upper bound.
boolean
default:"false"
Include future-dated calendar rows. Excluded by default.
string
next_cursor from the previous page, passed back unchanged.integer
1–200, default 50.
A theme is a routing label, not a verdict:
rates collects everything the rule pass read as rate-related, including general market commentary that merely discusses rate expectations. Read the title before treating a row as a policy event.