Skip to content
Get Started

Group Names

Rename or clear the Apple-visible name of an iMessage group chat via API

Rename or clear the Apple-visible name of an existing iMessage group chat. The change is applied on the Sendblue line that serves the group and is verified on the device before the API responds: a success response means the new name (or cleared state) was observed on the actual Apple chat, not merely requested. When more than one of your Sendblue numbers is in the group, an eligible number is selected automatically unless you choose one explicitly with from_number.

The verified name is also persisted as the group’s group_name, so the name returned here is the same value your dashboard and group lookups show. Incoming renames and clears made by other group members update group_name the same way.

Note: Changing or clearing a name requires the group to already have an iMessage chat (at least one iMessage has been sent or received in it), and the Sendblue line serving the group must be online and support group name changes. SMS/RCS group chats do not support Apple group names.

The API checks compatibility automatically. Requests for a group served by an ineligible Sendblue line return unsupported_line.

POST /api/v2/groups/{group_id}/name

Authenticate with either the standard API credentials headers (sb-api-key-id and sb-api-secret-key) or an account-scoped temporary API token returned by POST /v3/auth/tokens, sent as Authorization: Bearer <token>. Line-scoped temporary API tokens cannot perform this account-wide mutation and receive the 403 response described below.

ParameterTypeRequiredDescription
group_namestring | nullYesThe new Apple-visible group name (1–255 Unicode characters), or null to clear the name
from_numberstring | nullNoWhich of your Sendblue numbers performs the change. Omit (or pass null) to select an eligible number automatically

Passing an empty string is equivalent to null and clears the name; whitespace-only strings are rejected. Retrying a request whose state is already applied (for example, renaming to the name the group already has) succeeds without changing anything.

When from_number is provided, it must be one of your Sendblue numbers serving this group’s iMessage chat, and the change is performed only through that number: if it cannot act — for example it is offline or does not support group name changes — the request fails without falling back to another number.

Terminal window
curl -X POST "https://api.sendblue.com/api/v2/groups/sb_group_xxxxxxxx/name" \
-H "sb-api-key-id: YOUR_API_KEY" \
-H "sb-api-secret-key: YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"group_name": "Project Falcon"
}'
Terminal window
curl -X POST "https://api.sendblue.com/api/v2/groups/sb_group_xxxxxxxx/name" \
-H "sb-api-key-id: YOUR_API_KEY" \
-H "sb-api-secret-key: YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"group_name": null
}'
Terminal window
curl -X POST "https://api.sendblue.com/api/v2/groups/sb_group_xxxxxxxx/name" \
-H "sb-api-key-id: YOUR_API_KEY" \
-H "sb-api-secret-key: YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"group_name": "Project Falcon",
"from_number": "+15550001111"
}'
{
"status": "OK",
"data": {
"group_id": "sb_group_xxxxxxxx",
"group_name": "Project Falcon",
"from_number": "+15550001111"
}
}
FieldTypeDescription
group_idstringThe group whose requested name state was verified
group_namestringThe device-verified Apple group name; "" when the name was cleared
from_numberstring | nullThe Sendblue number that performed the change

Errors generated by this endpoint use a machine-readable error_code alongside a human-readable message:

{
"status": "ERROR",
"error_code": "no_apple_chat",
"message": "This group has no Apple iMessage chat yet. Send the first intended message to the group, then retry."
}

Invalid credentials and rate-limit failures use the standard error envelope and do not include error_code:

{
"status": "ERROR",
"message": "Invalid Credentials"
}

Requests with no credentials return:

{
"message": "Did not get inputs for authorization"
}

A line-scoped temporary-token rejection uses code instead of error_code:

{
"status": "ERROR",
"code": "temporary_token_account_scope_not_allowed",
"message": "This line-scoped temporary token cannot access account-wide configuration."
}
HTTP StatusCodeDescription
400invalid_group_namegroup_name is missing, not a string/null, whitespace-only, or longer than 255 characters
400invalid_group_idgroup_id is not a valid Sendblue group identifier
400invalid_from_numberfrom_number is not a valid phone number string
401Authentication credentials are invalid
403Authentication credentials are missing
403code: temporary_token_account_scope_not_allowedA line-scoped temporary token cannot perform this account-wide mutation
404group_not_foundNo group with this group_id exists for your account
422no_apple_chatThe group has no Apple iMessage chat yet — send the first intended message to the group, then retry
422sms_rcs_only_groupThe group is served over SMS/RCS, which does not support Apple group names
422unsupported_lineThe Sendblue line serving this group does not support group name changes
422from_number_not_participantfrom_number is not one of your Sendblue numbers serving this group’s iMessage chat
429The request rate limit was exceeded — retry with backoff
500internal_errorThe change was verified on the device but could not be recorded, or another internal failure occurred; retrying is safe
502group_name_update_failedThe requested group name state could not be verified and recorded
503Authentication is temporarily unavailable — retry shortly
503line_offlineThe Sendblue line serving this group is offline — retry when it reconnects
503group_name_update_in_progressAnother name change is still settling for this group — retry shortly
504verification_timeoutThe resulting state could not be verified in time and may or may not have applied. Wait five minutes before retrying the same request.

Failed requests are never replayed automatically.

Apple propagates group name changes to the other members’ devices; when their devices render the new name is up to Apple and is not guaranteed by this API.