Skip to main content

Events API

Events endpoints exposed by the Devotel CPaaS API Base path: /api/v1/events Endpoint count: 4

List event history

GET /api/v1/events/
Cursor-paginated history of recent platform events for the authenticated tenant. Returns the standard paginated envelope; pass cursor from a prior page’s meta.pagination.cursor (an event id) to page forward. For a live tail use GET /events/stream (SSE) instead of polling.
string
Opaque pagination cursor from a prior page’s meta.pagination.cursor (an event id). Omit for the first page.
integer
Page size (1–200, default 25).

Get event details

GET /api/v1/events/{id}
Fetch a single platform event by its id from the tenant’s recent-event history. The id may be either the canonical stream id (<ms>-<seq>) or a publisher-minted evt_* id carried in the payload. Returns 404 when no event with the given id is within the current history window for the tenant.
string
required
Event id — the canonical stream id (<ms>-<seq>) or a legacy evt_* payload id.

Subscribe to the real-time platform event stream (SSE)

GET /api/v1/events/stream
Server-Sent Events stream of platform events for the tenant (message, call, and other resource lifecycle events) so live dashboards can be built without polling GET /events or running a webhook receiver. Authenticate a browser EventSource with the Clerk session cookie (withCredentials) or ?token=; server-side callers pass the secret API key. Optional ?types= narrows the event types delivered; reconnect with the Last-Event-ID header (or ?lastEventId=) to replay buffered events and resume without gaps.
string
Comma-separated allowlist of event types to deliver (e.g. message.delivered,message.failed). Applied to both the Last-Event-ID replay pass and the live tail. Omit to receive all event types for the tenant.
string
Resume cursor — the id of the last event the client received. Replays buffered events newer than this id before live streaming.

Track a product event

POST /api/v1/events/track/
Records a domain event for a contact in your workspace, such as Order Placed, Subscription Renewed, or Trial Converted, to drive lifecycle campaigns, journey triggers, and the customer-360 timeline. Authenticate with your secret API key via the X-API-Key header. The JSON body requires event (the event name) and may identify the contact with contact_email or contact_phone; events with no matching contact are still recorded and can be stitched to a contact later. Optionally pass properties (an object of event attributes), message_id (a client-supplied de-duplication key), and timestamp (an ISO-8601 client event time, while the server receipt time stays the canonical sort key). Send an Idempotency-Key header to make retries safe. Returns { received, event_id, contact_id, deduped }.