Skip to main content
GET
List Events

Authorizations

Authorization
string
header
required

API Key authentication using Bearer token

Headers

If-None-Match
string

ETag value from a previous response. Returns 304 Not Modified if data has not changed.

Query Parameters

limit
integer

Number of events to return per page (default 25, max 100).

cursor
string

Opaque pagination cursor returned as pagination.next_cursor from a previous response. Works with q too; q is a filter, not a separate search mode. Not accepted with mode=semantic. When continuing an updated_after sync, resend the same updated_after value alongside it.

fields
string

Comma-separated list of fields to include in the response. Reduces payload size. id is always included.

updated_after
string

ISO 8601 datetime. Returns only events updated after this timestamp, including merge/removal tombstones. Use for incremental sync.

q
string

Full-text filter over the event's own title and summary as well as its live member articles' indexed content (title, summary, key points, plus tagged company names and key facts), so an event can match on a company its coverage only tags. Matches stay in the default feed order (most recently reported first) and are cursor-paginated like any other request; combine with window/last_article_after for "latest on X". This differs deliberately from q on GET /api/v1/articles and GET /api/v1/stories, which returns a relevance-ranked single page unless sort=latest is given. Here q is a filter over the ordinary feed order, so it composes with window and the cursor. mode=semantic replaces this with a ranked match (see mode).

mode
enum<string>

Set to semantic to match q by meaning rather than by keyword, for thematic questions a keyword match cannot answer ("defense contract wins", "battery cell capacity expansion").

The match runs over the translated title and summary of each event's live member articles, not over the event's own title or summary, and not over the key points, tagged company names or key facts that plain q also reaches. It is therefore not a strict recall improvement over plain q: an event whose title is on-topic while its member articles are oblique can match q and not mode=semantic.

Results are ranked by distance blended with a small recency bonus, not in feed order. Requires q, is mutually exclusive with sort, cursor and updated_after, and returns a single ranked page capped by limit. Every other filter remains a hard filter applied before the match, not after. window and last_article_after/last_article_before still bound the event's activity, not the date of the matched article, so the member article behind a match can be considerably older than the event's last activity.

Each event gains a distance (raw cosine, lower is closer): the distance of its best-matching member article that your plan can access, so the same event can carry different distances on different plans. Compare it only within one response, never across responses: the scale is model-dependent. Ranking uses the mean of an event's two closest member articles and a recency bonus, neither of which distance reflects. A server-side relevance floor drops weak matches, so a page is frequently shorter than limit and can be empty.

The plan cap on recent events does not apply in this mode: the match runs over every event with member articles inside your plan's age and source restrictions, and plan_limited: true reports only that those restrictions are in force. truncated: true means the article-match horizon was exhausted, so further matching events exist that this response cannot reach, and no cursor can page to them.

The response pagination object carries count only. There is no next_cursor, and the response is uncacheable (Cache-Control: no-cache, no-store, no ETag). If the query cannot be embedded the request returns 503 rather than silently falling back to keyword matching.

Available options:
semantic
event_type
string

Filter by event type slug, comma-separated (e.g. earnings-report,acquisition-announced). These are Events taxonomy slugs (hyphenated) from GET /api/v1/event_types and are the only values accepted here. The underscored calendar event_type values used by GET /api/v1/calendar_events are rejected. A few spellings overlap across the two vocabularies (e.g. delisting) while denoting different things. An unrecognized slug returns 400 naming the bad slug(s).

significance
string

Editorial importance, the feed's materiality threshold, comma-separated (e.g. notable,routine). Valid values: notable (material, front-page-worthy events), routine (ledger records: routine filings, scheduled disclosures), commentary (opinion/analysis pieces). Use significance=notable to restrict the feed to material events. An unrecognized value returns 400 naming the bad value(s).

ticker
string

Filter to events involving the company with this stock ticker (e.g. VOLV-B), comma-separated for several (matches any of them). Accepts the exchange-suffixed form; former tickers resolve. Matching is case-insensitive. Every value must resolve to a company, or the request is rejected with 400 naming the unknown values. Combined with company, the two filters intersect. Matches active-involvement roles only unless include_peripheral=true.

company
string

Filter to events involving a company by its id, comma-separated for several (matches any of them). Complements ticker; reaches companies without a stock listing. Every value must resolve, or the request is rejected with 400 naming the unknown ids. Combined with ticker, the two filters intersect. Matches active-involvement roles only unless include_peripheral=true.

country
string

Filter to events with a live member article from this country (ISO 3166-1 alpha-2, comma-separated for multiple). Applied at the article grain, so sync tombstones do not respect it.

category
string

Filter to events with a live member article in any of these categories, by their id (comma-separated; unknown ids are ignored). Applied at the article grain, so sync tombstones do not respect it.

sources
string

Filter to events with a live member article from these sources, by their id (comma-separated, max 25). Applied at the article grain, so sync tombstones do not respect it.

source_type
string

Filter to events with a live member article from this source type, comma-separated. Valid values: news_publication, wire_service, press_release, government, trade_publication, blog, stock_exchange, research. Articles from disabled sources are excluded. Applied at the article grain, so sync tombstones do not respect it. An unrecognized value returns 400 naming the bad value(s).

content_type
string

Filter to events with a live member article of this content type, comma-separated. Valid values: news, analysis, press_release, market_commentary, market_news, trading_halt, trading_event, other. Applied at the article grain, so sync tombstones do not respect it. An unrecognized value returns 400 naming the bad value(s). Content type is an AI-assigned label per article. To find events with a member article from a primary disclosure source, filter on source_type (wire_service, stock_exchange, press_release, government) instead.

exchange
string

Filter by exchange MIC code, comma-separated for multiple (e.g. XSTO, XSTO,XCSE).

market
string

Filter to events involving a company with an active equity listing in these countries' exchanges (ISO 3166-1 alpha-2, comma-separated, e.g. SE,NO). SE covers Nasdaq Stockholm, First North, Spotlight and NGM. Distinct from country (the source that reported it) and domicile (legal domicile). Includes foreign-domiciled but locally-listed issuers. Note: a just-listed company's listing record can lag its IPO event.

domicile
string

Filter to events involving a company legally domiciled in these countries (ISO 3166-1 alpha-2, comma-separated). Reaches unlisted companies; excludes foreign-domiciled but locally-listed issuers. Use market for market-coverage questions.

index
string

Filter to events for companies in this stock index, by id or symbol.

sector
string

Filter by company sector. Must exactly match a standard sector name.

listed
string

When true, only return events involving at least one company with an active listing on any exchange, matched by the same rule as exchange/market/domicile/index/sector. On a factual event, the company must have an active-involvement role (subject, acquirer, target, investor, issuer, partner); an advisor, speaker or passing mention does not qualify. On a commentary event, any role counts when a live article in the event is about that company rather than only mentioning it. include_peripheral does not change this. A company whose listings are all delisted does not count. Hidden and unverified companies do not count.

watchlist
string

Restrict to events for companies in a single watchlist, by its id. Requires the read:watchlist scope. Matches active-involvement roles only unless include_peripheral=true.

first_reported_after
string

ISO 8601 datetime. Only events first reported at or after this time.

first_reported_before
string

ISO 8601 datetime. Only events first reported before this time.

last_article_after
string

ISO 8601 datetime. Only events whose most recent activity (last_article_at, or first_reported_at when that is null) is at or after this time. This matches when the event was last active, not when it broke. Mutually exclusive with window.

last_article_before
string

ISO 8601 datetime. Only events whose most recent activity is before this time. Mutually exclusive with window.

window
string

Relative shorthand for last_article_after, e.g. 8h, 24h, 7d (hours or days only, max 365d equivalent). Evaluated per request against the server clock. Compute last_article_after yourself for a stable multi-page snapshot. Mutually exclusive with last_article_after, last_article_before, and updated_after.

sort
string

Sort order. latest (default) sorts most recently reported first, the unfiltered feed order. significance groups events into 3 coarse editorial tiers (notable, then routine, then commentary), most recently reported first within each tier; expect large ties within a tier. A mid-walk routine→notable escalation may be skipped, since the ordering is a best-effort snapshot. For a broad importance filter, prefer significance=notable with the default sort; page 1 is identical. Mutually exclusive with updated_after (an unrecognized value, or either sort value combined with updated_after, returns 400).

Filter to commentary events that comment on or react to the factual event with this id (see related_to on the response). Unresolvable id returns an empty result set, not an error.

include_peripheral
boolean

When true, widen company/ticker/watchlist matching, and the company_ids returned on each event, to companies with a peripheral role (advisor, speaker, or a passing mention) as well. Default false restricts matching and company_ids to companies with an active-involvement role (subject, acquirer, target, investor, issuer, partner). Does not widen exchange, market, domicile, index, sector or listed: on a factual event those match an active-involvement role; on a commentary event, any role, when a live article in the event is about that company rather than only mentioning it.

Response

Events retrieved successfully

events
object[]
required
pagination
object
required
plan_limited
boolean

Present and true when your plan capped the result to its top-N most recent events. Absent when your plan applies no cap. With mode=semantic, present and true when your plan's source or age restrictions are in force instead.

Example:

true

truncated
boolean

Only with mode=semantic. Present and true when the article-match horizon was exhausted, so further matching events exist that this response cannot reach.

Example:

true

Last modified on September 30, 2026