Remove several members from a group
curl --request DELETE \
--url https://web-api.soxai.site/api/groups/{group_id}/members \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uids": [
"user_123"
]
}
'import requests
url = "https://web-api.soxai.site/api/groups/{group_id}/members"
payload = { "uids": ["user_123"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({uids: ['user_123']})
};
fetch('https://web-api.soxai.site/api/groups/{group_id}/members', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success_count": 1,
"success_uids": [
"user456"
],
"failed_count": 1,
"failed_uids": [
"user789"
]
}{
"error": "http-error",
"error_msg": "Invalid authentication credentials. <reason>"
}{
"error": "forbidden",
"error_msg": "Not enough permission"
}{
"error": "unprocessable-entity",
"error_msg": "body.<field>: <validation message>"
}{
"error": "rate-limited",
"error_msg": "Rate limit exceeded. Retry after <n> seconds."
}{
"error": "internal-server-error",
"error_msg": "Failed to fetch data: <error_message>"
}Family Groups
Remove several members from a group
Remove several members at once — the batch form of
DELETE /api/groups/{group_id}/members/{uid}, which stays as-is for clients
that remove one member at a time (SOX-64 item 3).
Soft per-uid failure: uids that cannot be removed (an admin, an unknown uid, or
the caller — who must use self-leave) come back under failed_uids with their
reason while the rest are still removed, so one bad uid does not sink the batch.
Parameters
group_id(path, required) - the group to remove from.- Body (
GroupMembersRemove):uids, between 1 and 50 entries.
Response
200{"success_count", "success_uids", "failed_count", "failed_uids"}. Duplicates collapse to one attempt and first-seen order is kept, so the answer lines up with the request.- A uid that cannot be removed does not sink the batch: it comes back under
failed_uidswith its reason - an admin, a uid that is not a member, or the caller themselves - while the rest are still removed.
Errors
- None beyond the
403below. Every per-uid failure is folded into the200, which is what distinguishes this fromDELETE /api/groups/{group_id}/members/{uid}: that one answers400and404for the same conditions.
Authorization
- Scheme:
Authorization: Bearer <idToken>orsoxai-api-key: <api key>. - Authority inside a group comes from the caller’s own membership record, never from a SOXAI
role: an
Admin,PartnerAdminorOrgAdminclaim grants nothing here. - Required: the
adminrole of this group. A non-member receives403 not a member of this group, and a plain member403 group admin required.
DELETE
/
api
/
groups
/
{group_id}
/
members
Remove several members from a group
curl --request DELETE \
--url https://web-api.soxai.site/api/groups/{group_id}/members \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uids": [
"user_123"
]
}
'import requests
url = "https://web-api.soxai.site/api/groups/{group_id}/members"
payload = { "uids": ["user_123"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({uids: ['user_123']})
};
fetch('https://web-api.soxai.site/api/groups/{group_id}/members', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success_count": 1,
"success_uids": [
"user456"
],
"failed_count": 1,
"failed_uids": [
"user789"
]
}{
"error": "http-error",
"error_msg": "Invalid authentication credentials. <reason>"
}{
"error": "forbidden",
"error_msg": "Not enough permission"
}{
"error": "unprocessable-entity",
"error_msg": "body.<field>: <validation message>"
}{
"error": "rate-limited",
"error_msg": "Rate limit exceeded. Retry after <n> seconds."
}{
"error": "internal-server-error",
"error_msg": "Failed to fetch data: <error_message>"
}Authorizations
HTTPBearerSoxaiApiKey
Body
application/json
Response
Per-uid outcome of the batch. A uid that cannot be removed comes back under failed_uids while the rest are still removed.