Overview

Messages are sent exclusively over WebSockets, guaranteeing ordering, real-time delivery, and proper lifecycle management.
Messages are sent exclusively over WebSockets.This guarantees ordering, real-time delivery, typing indicators, presence, and receipts.REST APIs are used for history, analytics, and internal automation only.

Sending Messages

Message Format

Payload Fields

Example

Receiving Messages

Messages are broadcast to all room members:

Broadcast Payload Fields

Message Lifecycle

Optimistic Updates

Generate message_id client-side for optimistic UI updates:

Message Deduplication

The server uses message_id for deduplication:
  • Same message_id won’t be broadcast twice
  • Client should track seen message IDs
  • Reconcile optimistic messages with server echoes

Message Types

Text Message

Regular user message:

System Message

System-generated message:

Complete Example

Error Handling

Missing conversation_id

Not in Room

Invalid Message

Next Steps

Typing

Typing indicators

Receipts

Read receipts

Rooms

Room management

SDK Messaging

SDK messaging guide