Blue Reacher
Groups13 / 50

Groups

List group iMessage threads with GET /v1/groups, send into an existing group, or create a new group chat from the send call.

Group iMessage threads are first-class: you can list them, read them, send into them, and create new ones. All group sends run send_mode: "instant"; the drip queue paces 1:1 threads only.

List groups

GET https://api.bluereacher.com/v1/groups

Requires write permission. Returns every group thread in the key's workspace, most recent activity first.

Query paramDefaultMeaning
limit50Max 200
active_onlyfalseOnly groups still marked active
{
  "success": true,
  "groups": [
    {
      "id": "b7f3e9c1-52d8-4f0a-9c6e-8a1d4b2f7e5c",
      "display_name": "Northline deal room",
      "participant_phones": ["+16465550119", "+13035550101"],
      "participant_count": 2,
      "last_message_at": "2026-08-30T16:22:41Z",
      "last_message_preview": "Works for me, send the doc",
      "is_active": true,
      "device_id": "8c9a4f2e-1d3b-4a6c-9e8f-2b7c5d1a9e3f",
      "created_at": "2026-08-12T10:03:55Z"
    }
  ],
  "count": 1
}

device_id is the line that owns the thread. A group always sends from its owning line, so device_id cannot be combined with group_chat_id on the send call.

Send into an existing group

Use the group's id as group_chat_id on POST /v1/messages:

curl -X POST https://api.bluereacher.com/v1/messages \
  -H "Authorization: Bearer brk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "group_chat_id": "b7f3e9c1-52d8-4f0a-9c6e-8a1d4b2f7e5c",
    "message": "Doc attached, page 3 has the numbers you asked for",
    "send_mode": "instant"
  }'

The response echoes group_chat_id. device_id comes back null because the owning line is resolved downstream.

Create a new group and send

Pass create_group_phones (2 to 25 E.164 numbers) instead of to:

curl -X POST https://api.bluereacher.com/v1/messages \
  -H "Authorization: Bearer brk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "create_group_phones": ["+16465550119", "+13035550101"],
    "message": "Looping you both in here so we stop forwarding emails",
    "send_mode": "instant"
  }'

The response carries group_created: true and participant_count. The new group then appears in GET /v1/groups.

Read a group thread

Pass group_chat_id to GET /v1/conversations. Group responses include a group summary, and each message carries from, the sender's phone (null on your own outbound rows).

Errors

StatusCodeMeaning
400group_requires_instantGroup target without send_mode: "instant"
404group_not_foundgroup_chat_id not in this key's workspace

On this page