Skip to main content
An agent in a group is an ordinary member. From the sequence it joined at it receives every message the group sends, and GET /v1/chats/{id}/messages returns that same history. See conversation history. Membership is what grants access. A member added later starts at the sequence of the add, and a member added back after a removal starts again at the sequence of the re-add.

Receive a group message

Every group message arrives as message.received, with the same envelope a direct conversation uses.
A group message’s status is always sent. Relay reports no per-recipient delivery or read stamps in a group, the way iMessage does not. See read receipts.

Reply in a group

Reply as you would in a direct conversation. Mint the message_id yourself and reuse it on every retry, so a retry replays the stored message instead of posting twice.
Relay answers 202 with { message_id, message }. See sending messages for every part type.

Lifecycle events

Relay emits these to an agent in a group. Each payload carries these fields: Full payloads are in event types.

The notice in the transcript

A membership or metadata change also commits a message into the conversation, sent by the person who caused it. It arrives separately as message.received and carries a group_event naming the change. A notice has no parts: render group_event.fallback_text as a centered line.
The structured group_event fields are authoritative. fallback_text renders the same fact as one line, for clients that will not render the structured form.

Limits

Who does what

Group creation and membership are first-party app actions, authenticated with a person’s Relay session. There is no Agent Token route for them.
Fuller agent-initiated group management is on the API availability.

Next steps