GET /events, reads the same log, oldest first in the order the events were recorded, for 30 days.
Use the feed when:
- Your receiver can’t accept inbound requests, such as a batch job or a service behind a firewall. A subscription with no
endpointsends its events to the feed only. - Your receiver was down. Read the feed from the last event you handled instead of waiting for retries.
- You want the events in order. Webhooks can arrive out of order; the feed can’t.
iterate follows next_cursor until a page comes back empty. Run it again later from the last event you handled to pick up what arrived since.
Pages and cursors
- Order. Events come in the order they were recorded for your organization. An event is never visible before one recorded ahead of it, so a poller that resumes from its cursor misses nothing.
next_cursoris on every page, even an empty one, so a poller resumes exactly where it stopped. Without a cursor the feed starts at the oldest event it keeps.- An event’s
idis a cursor too. Resume after the last event you handled, however it reached you: a webhook’swebhook-idworks. limitis 1 to 1,000 events a page, 100 by default.- Expired cursors. A cursor or event older than 30 days fails with
invalid_requestanddetails.reason: "cursor_expired". Re-read the current state, for a subscription with its query, then start again without a cursor.
Filters
typestakes event types and patterns, comma-separated:subscription.*,job.completed.namespace_prefixkeeps the events of namespaces whose name starts with it, such asacme/prod/.- Your key’s scope always applies: a key scoped to a prefix or a namespace reads only the events of namespaces inside it.
- Test sends are never in the feed. They go to the endpoint you tested and its delivery log.
next_cursor forward on every page.
One event and its deliveries
GET /events/{id} returns an event with its deliveries to the endpoints your key can see: each delivery’s status, attempts, and its last attempt’s status code, latency and error. POST /events/{id}/redeliver with an endpoint sends it again, with the same webhook-id (see retries).
Event types
New types may be added, so ignore the ones you don’t know. Each type’s payload is in the API reference, and the SDKs type every event by its
type (see SDKs).
In the dashboard, Events shows the feed, filtered by type and namespace prefix, and opens each event’s JSON and its deliveries.