Skip to main content
Everything a session does — joining, admission, speech starting and stopping, chat, recordings, artifacts — is recorded as an ordered event with a monotonic seq. The same events reach you three ways, and they do not carry the same coverage: The stored history is the authoritative record. A webhook that never arrived, a socket that dropped mid-meeting, or a process that restarted are all recovered the same way: read from the last seq you durably stored.

Read the Event History

GET /v2/meeting_sessions/{id}/events returns events in seq order.
Every event has the same four fields: seq, type, payload, and occurred_at. The shape of payload is determined by type.

Paging and Resuming

Pass after with the highest seq you have already processed, and limit for the page size. Because seq is monotonic within a session, the same parameter serves both jobs — paging through a completed session and resuming after an interruption are the same request.
Store seq only after the event is processed. Storing it on receipt means an event lost to a crash is never re-read, and there is no way to detect the gap afterwards.

Event Types

Not every type is delivered by every mechanism — webhooks carry the five summary events listed on the Webhooks page, while GET /events and the stream carry all of them. Treat this list as open. The event type field is deliberately extensible, and a client that rejects an unrecognized type will break the first time a new one is added — ignore what you do not recognize rather than failing. The complete machine-readable enum, with the exact payload schema bound to each type, is in the Meeting Session agent stream reference.

Choosing a Mechanism

  • Webhooks for “tell me when it is finished” — a summary arrives without you holding a connection, and the five events cover the end states most integrations act on.
  • The stream for anything live: transcript as it is produced, speech starting and stopping, participants arriving.
  • GET /events for everything else, and as the backstop for both. It is the only mechanism that answers “what did I miss” after the fact, so a reliable integration reconciles against it even when it is driven by pushes.
  • Webhooks — push delivery, envelope, and signature verification
  • Live Transcript — the WebSocket stream and transcript polling
  • Collect Results — the finalized transcript, artifacts, and recordings