groups

Merge groups (v2)

Changed on

Merge one or more source groups into the group identified by groupId. The destination keeps its ID, receives the final name, emoji, and de-duplicated union of contact memberships, while selected source groups are deleted. Direct subgroups are reparented under the destination and source-linked saved views are retargeted. Requires Idempotency-Key. A merge whose combined source memberships exceed the synchronous limit is refused up front with a 400 naming the limit; split it into smaller merges. A 500 timeout means nothing was committed and the same request is safe to retry, while a 500 merge_committed_read_failed means the merge DID commit and only its response could not be built — refetch instead of retrying.

post/v2/groups/{groupId}/merge

Request

  • Base URL: https://api.prod.getdex.com
  • URL: https://api.prod.getdex.com/v2/groups/{groupId}/merge
  • Auth: HTTP bearer

Path parameters

groupIdstring uuid required

Headers

Idempotency-Keystring required
Example:01HV8N6X7K3P9Q5R2T4Y6W8Z0A

Required. UUID per logical operation, reused on every retry. See apps/rest-api/src/shared/idempotency.ts for the full contract. Missing → 400 BadRequest; same key + different body → 409 Conflict.

Request body

sourceGroupIdsstring[] required
finalNamestring required
finalEmojistring required

Response

Successful response

Changes