Leave a family group
curl --request DELETE \
--url https://web-api.dev.soxai.site/api/groups/{group_id}/members/me \
--header 'Authorization: Bearer <token>'import requests
url = "https://web-api.dev.soxai.site/api/groups/{group_id}/members/me"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://web-api.dev.soxai.site/api/groups/{group_id}/members/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"left": true,
"groupStatus": "active",
"delegatedTo": "user456"
}{
"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
Leave a family group
Not callable with a Sandbox key
A request authenticated with a Sandbox soxai-api-key is answered 403 This endpoint is not available in the sandbox., because it changes state that every Sandbox caller shares. It is published here because the Sandbox runs the same build; use it in Production. See Sandbox.
Remove the caller’s own membership from a group.
A group is never left without an admin: when the last admin leaves, the longest-standing
remaining member is promoted automatically and the response names them in delegatedTo. A
group whose last member leaves is dissolved.
Parameters
group_id(path, required) - the group to leave.
Response
200{"left": true, "groupStatus": "active" | "dissolved", "delegatedTo": ...}.delegatedTois present only when leaving promoted somebody.
Errors
- None. A group that does not exist is not a
404here: leaving is decided from the caller’s own membership record, which is absent either way, so both cases are the403below.
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: an active member of the group. A caller who is not one receives
403 not a member of this group, whether or not the group exists.
DELETE
/
api
/
groups
/
{group_id}
/
members
/
me
Leave a family group
curl --request DELETE \
--url https://web-api.dev.soxai.site/api/groups/{group_id}/members/me \
--header 'Authorization: Bearer <token>'import requests
url = "https://web-api.dev.soxai.site/api/groups/{group_id}/members/me"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://web-api.dev.soxai.site/api/groups/{group_id}/members/me', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"left": true,
"groupStatus": "active",
"delegatedTo": "user456"
}{
"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
Response
The caller has left. groupStatus reports whether the group survived, and delegatedTo is present only when leaving promoted somebody.