Groups
Bulk-delete groups
Permanently delete multiple groups in a single request. Uses `Promise.allSettled` semantics: a 200 response can carry per-row failures in `data.failed[]` so cache writers can invalidate just the rows
POST /v2/groups/batch-delete
Parameters
Header parameters
Idempotency-Key
string
Optional. Accepted to dedupe retries on this endpoint. See
apps/rest-api/src/shared/idempotency.ts.Request body
Content-Type: application/json
groupIds
array<string (uuid)> required
Example
{
"groupIds": [
"00000000-0000-0000-0000-000000000000"
]
}
Responses
200 — Successful response
Content-Type: application/json
data
object required
data.affected
integer required
data.ids
array<string>
data.failed
array<object>
data.failed[].id
string
data.failed[].error
object
data.failed[].error.code
string
data.failed[].error.message
string
Example
{
"data": {
"affected": 0
}
}
400
No response body.
401
No response body.
403
No response body.
404
No response body.
409
No response body.
429
No response body.
500
No response body.
Code samples
curl https://api.prod.getdex.com/v2/groups/batch-delete \
--request POST \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"groupIds": [
"00000000-0000-0000-0000-000000000000"
]
}'
fetch('https://api.prod.getdex.com/v2/groups/batch-delete', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
groupIds: ['00000000-0000-0000-0000-000000000000']
})
})
requests.post(
"https://api.prod.getdex.com/v2/groups/batch-delete",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"groupIds": [
"00000000-0000-0000-0000-000000000000"
]
}
)
Merge groups
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 sou
Remove contacts from a group
Remove one or more contacts from a group. The contacts themselves are NOT deleted — only their `groups_contacts` membership rows are removed. **Requires `Idempotency-Key`.** Returns `{ data: { affecte

