API reference
Group chats
Create iMessage group chats, manage members, send messages, set the group photo. All members get the same iMessage-style group thread on their devices.
Create a group
/v1/groups| Field | Type | Description |
|---|---|---|
name | string | Display name of the group (max 60 chars). |
membersrequired | string[] | Array of E.164 phone numbers. All must be iMessage-capable. |
from | string | Line to create the group from. |
curl -X POST 'https://api.bluereplies.com/v1/groups' \-H "x-api-key: $BLUEREPLIES_KEY" \-H 'Content-Type: application/json' \-d '{"name": "Q2 Launch Team","members": ["+15551234567", "+15557654321", "+15559999999"]}'
Send to a group
Group sends use their own endpoint so the line is automatically resolved from the group:
/v1/groups/:id/messages/sendcurl -X POST 'https://api.bluereplies.com/v1/groups/grp_xxx/messages/send' \-H "x-api-key: $BLUEREPLIES_KEY" \-H 'Content-Type: application/json' \-d '{"body": "Hey team!"}'
Manage members
/v1/groups/:id/membersAdd a participant. Body: { members: ['+1...'] }
/v1/groups/:id/membersRemove participants. Body: { members: ['+1...'] }
/v1/groups/:id/members/:phoneConvenience: remove a single participant by phone.
/v1/groups/:id/leaveThe line leaves the group (best-effort; iMessage doesn't propagate true leave).
Rename + photo
/v1/groups/:idUpdate group name.
/v1/groups/:id/iconSet group photo. Queues a set-icon op (JPG/PNG, max 2MB).
List + get
/v1/groups/v1/groups/:idReceiving group messages
Inbound messages to a group fire the message.inbound webhook with groupId populated and from set to the sender. Auto-discovered groups (inbound from people you didn't add) get auto-created on first message.