Skip to main content
POST
Send to a Group Chat
You can only send into a group your line is already in. Someone else creates the group and adds your line. Tuco cannot start a new group.

What this endpoint does

It sends one message into an existing iMessage group chat:
  • text
  • up to 2 files (photo, video, PDF, document, audio)
  • or a native voice note (the waveform bubble)
A group is not a lead. Compared with a 1:1 send:

Authentication

Pass your workspace API key as a Bearer token.

Step 1 — find the group’s conversationId

List your conversations. Groups have "isGroup": true. See List Conversations.
A group in the response:
The id (it starts with group:) is the conversationId you send to.

Step 2 — send

Request body

string
required
The group’s id from Step 1, for example group:iMessage;+;chat606535035660201399.
string
The text. Up to 5,000 characters. Optional when you send a file.
string[]
Up to 2 public https:// file URLs.
string[]
File names, in the same order as attachmentUrls. Optional. Defaults to the file name in the URL.
boolean
default:"false"
true sends one audio file as a native iMessage voice note. Send exactly one audio URL in attachmentUrls (MP3, M4A, WAV, AAC, OGG, OPUS, FLAC, AIFF, AMR or CAF). Tuco converts it for you. Needs a line that supports native voice notes. See voice note requirements.
You must send message, a file, or both.

Examples

Text and files arrive in this order: the text first, then each file as its own bubble.

Response

Text or files — 200 OK

Sent right away. 200 means your line accepted every part.

Voice note — 200 OK

A voice note is queued and answered at once, the same as a 1:1 voice note. It usually arrives within a few seconds. If you also sent message, the text goes first as its own message, and its id is in textMessageId.

Errors

On 502 or 504, part of the message may already be in the group. Read the thread (below) before you resend, or everyone in the group gets it twice. If a timed-out message does arrive, Tuco flips it to sent on its own.

Read the group thread

Pass the group id as conversation. URL-encode it. The id contains ; and +, and an unencoded + turns into a space, so the group is silently not found.
The group is in conversations if it is on the page you asked for. Otherwise it comes back as preselectedConversation. Each received message has groupSenderAddress (the member who sent it).

What else works in a group