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

POST/v1/groups
FieldTypeDescription
namestringDisplay name of the group (max 60 chars).
membersrequiredstring[]Array of E.164 phone numbers. All must be iMessage-capable.
fromstringLine 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:

POST/v1/groups/:id/messages/send
curl -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

POST/v1/groups/:id/members

Add a participant. Body: { members: ['+1...'] }

DELETE/v1/groups/:id/members

Remove participants. Body: { members: ['+1...'] }

DELETE/v1/groups/:id/members/:phone

Convenience: remove a single participant by phone.

POST/v1/groups/:id/leave

The line leaves the group (best-effort; iMessage doesn't propagate true leave).

Rename + photo

PUT/v1/groups/:id

Update group name.

PUT/v1/groups/:id/icon

Set group photo. Queues a set-icon op (JPG/PNG, max 2MB).

Group photo and name changes propagate as an iMessage system event to all members ("Bob changed the group name to…"). Only the line that created the group can rename or change icon.

List + get

GET/v1/groups
GET/v1/groups/:id

Receiving 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.