Event envelope
Every webhook request has the same top-level shape. The specifics of the filing live underdata.
Unique event identifier, prefixed with
evt_. Use it to de-duplicate:
the same event can be delivered more than once.The event type. One of
filing.created or filing.enriched. This is also sent
in the X-StockInsights-Event header.The payload contract version. Currently
v1. A breaking change to the payload
shape bumps this value.When the event occurred, as an ISO 8601 timestamp.
The event-specific body. Its fields depend on
type — see below.Event types vs. what you subscribe to
There are two event types on the wire —filing.created and
filing.enriched — but you subscribe at a finer grain. When configuring a
destination you pick from this catalog, and StockInsights only delivers the ones
you select. The key is the identifier shown next to each toggle in the
dashboard:
Because several subscriptions map onto the same wire
type, always branch on
data.document_type (and data.enrichment_type for enriched events), not on
type alone.filing.created
Sent when a new filing is ingested — for example a new announcement or a newly
published quarterly result.
Identifier of the filing. Pass it to the filings API to fetch the full record.
Market the filing belongs to. Currently always
IN.The kind of filing, e.g.
announcement or quarterly-result.The company the filing belongs to.
When the filing was published, as an ISO 8601 timestamp.
Link to the filing’s original source document on the exchange or company site.
May be absent when no valid source link is available.
Canonical StockInsights API URL for the filing.
Reporting period, when applicable (e.g. for quarterly results). Contains
year
(integer) and/or quarter (string, e.g. "Q1"), and is omitted entirely when
neither applies — as it is for most announcements.filing.enriched
Sent when an AI enrichment for a filing becomes available — for example an
announcement summary. Carries the same fields as filing.created, plus the
enrichment itself.
The kind of enrichment. Currently always
summary.The enrichment content. Its shape depends on
enrichment_type.data.* fields match filing.created.