List change feed events
List this organization's change feed, ordered and resumable by cursor.
Scope: org-global by default — one ordered sequence across every namespace and resource type. An X-Namespace header (or namespace_id query param) narrows it to one namespace's events. Events recorded before namespace stamping shipped (2026-08) carry no namespace and are excluded by ANY namespace filter — a namespace-filtered read is not a replay of history older than that.
A consumer can be killed mid-stream and resume from its last stored next_cursor without re-reading or missing anything, as long as it resumes within the 90-day retention window — events older than that are permanently expired, not archived. A consumer that has been down longer than 90 days must resync current state instead of resuming.
A cursor is only meaningful for a FIXED filter set: it encodes a position in this organization's overall sequence, not a position within any particular namespace_id/event_type filter. Changing either filter mid-stream while reusing an old cursor silently skips whatever the previous filter combination would have matched in between — start a fresh cursor (or none) whenever the filters change.
High-churn event types (object.* under active storage syncs) can bury sparse ones thousands of pages deep in the unfiltered walk — a consumer looking for one type should pass event_type rather than walking everything.
Query parameters
Opaque cursor from a prior response's next_cursor. Omit to start from the beginning of the 90-day retention window.
Opaque cursor from a prior response's next_cursor. Omit to start from the beginning of the 90-day retention window.
Alias for cursor — the response surfaces this name, so feeding it back must work. If both are given, cursor wins.
Alias for cursor — the response surfaces this name, so feeding it back must work. If both are given, cursor wins.
Alias for cursor. If both are given, cursor wins.
Alias for cursor. If both are given, cursor wins.
Filter to events scoped to one namespace (ns_ id or name). The X-Namespace header does the same; if both are present they must agree.
Filter to events scoped to one namespace (ns_ id or name). The X-Namespace header does the same; if both are present they must agree.
Webhook event types for real-time notifications.
These events are emitted when significant state changes occur in the system. Webhooks subscribe to specific event types and receive notifications via configured channels (email, Slack, HTTP webhooks).
Event Naming Convention: {resource}.{action}[.{sub-resource}[.{sub-action}]]
Examples: - object.created: New object ingested - collection.documents.written: Documents indexed - cluster.execution.completed: Cluster job finished
Cache Invalidation Annotations: Each event type includes a comment indicating recommended cache invalidation scope: - [KEY] = Invalidate specific document/object keys - [COLLECTION] = Invalidate collection-level cache - [NAMESPACE] = Invalidate namespace-level cache
Event Categories: - Object Lifecycle: Events for individual objects (create, update, delete) - Collection Lifecycle: Events for collections (create, update, delete, documents written) - Cluster Lifecycle: Events for clusters (create, update, delete, execution status) - Trigger Lifecycle: Events for cluster triggers (create, update, fire, execution status) - Taxonomy Lifecycle: Events for taxonomies (create, update, delete)
Use Cases: - Real-time sync with external systems - Audit trail and compliance logging - Automated workflows triggered by state changes - Cache invalidation for distributed systems - Notifications to team members via Slack/email
Filter to one event type.
Page size (default 100).
Page size (default 100).
Alias for limit. If both are given, limit wins.
Alias for limit. If both are given, limit wins.
Response
Successful Response