Skip to main content
Use Conversations for new Public API messaging integrations. The legacy member-scoped chat endpoints stay available for compatibility, but new integrations should use /public/v1/conversations.

Capabilities

Actor Rules

Message writes require conversation_messages:write and consents.privateCommunication=true. The request includes senderCoachId; that coach must match the requesting coach for the Public API client, belong to the company, be an active participant in the conversation, and must be the original sender for update/delete operations. Company-level Public API clients cannot send messages as a client or as another coach. Participant writes require conversation_participants:write. The request includes actorCoachId; that coach must match the requesting coach and be an active coach participant in the group conversation. Direct conversations stay one-to-one, so adding another coach or member is done by creating or using a group conversation. For group creation, createdBy is optional when the Public API client has a requesting coach. If it is provided, it must match that requesting coach.

Conversation context

Every conversation response includes a context object:
Supported context types are none, client, company, lesson, calendar_event, and booking.

Webhook Events

Conversation write actions emit outbound Public API webhook events when a company has an active webhook subscription for the matching event. Supported events are conversation.created, conversation.updated, conversation.participant.added, conversation.participant.removed, conversation.message.created, conversation.message.updated, and conversation.message.deleted. Webhook payloads include conversation IDs, type, context IDs, participant roles, sender/actor IDs, and timestamps. They do not include message text, media URLs, conversation names, descriptions, or context labels. Use the read endpoints above when an integration needs detail after receiving a webhook.

Output Contract

Conversation responses omit private channel names, participant credentials, private media paths, and delivery/read tracking data. Listing conversations or messages does not mark anything as seen. The inbox, conversation list, message list, and participant list endpoints all support page pagination with page and limit. Paginated responses include page, limit, total, totalPages, hasNextPage, and hasPrevPage. See the Conversations group in the API Reference tab for exact request and response schemas.