Realtime Contract

Realtime and progressive event behavior

OpenAPI and Scalar document REST endpoints. This page separates currently mapped realtime events from target event names and from AI progressive rendering over a completed HTTP response.

Chat events

Currently mapped: new/edited/deleted messages, receipts, peer messages, and conversation updates. Typing and broader lifecycle names remain target contract.

chat.message.created
chat.typing.started
conversation.updated

AI progressive events

Started, delta, completed, and failure events are emitted after one HTTP answer; only handoff is currently realtime.

ai.message.delta
ai.message.completed
ai.handoff.requested

Call lifecycle events

Agent transports map call lifecycle events. Visitor native SDKs still require a host signalling transport for live media.

call.ringing
call.answered
call.ended

Presence and reports

These names are target contract. Current public realtime adapters do not yet map presence, queue, or report streams.

agent.presence.updated
queue.updated
report.summary.updated

SDK-facing shape

Each platform exposes the same product behavior with idiomatic language primitives.

Web / React Native: callbacks and subscriptions
Flutter: Stream
Kotlin: Flow
Swift: AsyncSequence

REST-facing shape

Endpoint fields, auth schemes, status codes, and request/response schemas remain in Scalar.

Open Scalar API Reference

Implementation rule

SDK users should not handle internal transport concepts directly. Public SDKs expose product objects such as chat, AI, calls, devices, notifications, reports, and diagnostics.

Turn Your Website Into a Real-Time Call Center

Let customers call your team directly from your website, no phone numbers and no apps required. Just add one <script>.