group.update
Rename a group, change its photo, or add and remove participants.
POST /v1/commands/group.updateModifies an existing group. The payload is discriminated by action.
Routing path: admin. Idempotency-Key is ignored.
Target
A group conversation. Aiming this at a direct message is rejected.
Prop
Type
Payload
rename
Prop
Type
{ "action": "rename", "name": "Trip planning" }add_participant
Prop
Type
{ "action": "add_participant", "participantExternalId": "+14155550122" }After adding someone, the group's membership no longer matches what your conversationId was
resolved against. Wait for a new message in the group before issuing another command to it —
earlier calls settle stale_target.
remove_participant
Prop
Type
The command is accepted with 202, then stalls and settles as a failure on hosts running macOS
26. Do not build a flow that depends on removing participants until this is resolved.
set_photo
Prop
Type
Like attachments, this needs a transferId and the /v1 API has no
endpoint that produces one.
Request
curl $MAPIER_BASE_URL/v1/commands/group.update \
-H "Authorization: Bearer $MAPIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target": {
"kind": "conversation",
"conversationId": "a0000000-0000-4000-8000-000000000001"
},
"payload": { "action": "rename", "name": "Trip planning" }
}'Response
{ "commandId": "cmd-6", "status": "queued", "disposition": "queued" }Errors
| Status | Code | Cause |
|---|---|---|
400 | group_command_requires_group_conversation | Target is a DM |
400 | invalid_conversationId | Not a UUID |
404 | conversation_not_found | Unknown conversation, or another account's |
503 | no_live_connector | No Mac available |
Settlement failures: stale_target when membership changed underneath you,
group_update_unverified when the change could not be confirmed,
capability_constraint_violation when the Mac does not support that action.
Capabilities
Requires command.group_update.v1, whose parameters declare supportsRename,
supportsPhoto and supportsParticipants independently.