Amba

Groups

Group definitions plus membership management (roles, member removal).

Groups are user-facing collections (guilds, clubs, teams). Admin endpoints cover moderation: create a group on behalf of a user, change roles, kick members. Membership paths are scoped by both groupId and memberId so a member from one group can't be mutated via another group's URL.

Source: apps/api/src/routes/admin/groups.ts.

Endpoints

MethodPathDescription
POST/admin/projects/:projectId/groupsCreate a group and add the owner as member (tx-safe).
GET/admin/projects/:projectId/groupsPaginated list with member_count.
PATCH/admin/projects/:projectId/groups/:groupIdPartial update.
DELETE/admin/projects/:projectId/groups/:groupIdDelete a group.
GET/admin/projects/:projectId/groups/:groupId/membersList members with user info.
PATCH/admin/projects/:projectId/groups/:groupId/members/:memberIdChange a member's role.
DELETE/admin/projects/:projectId/groups/:groupId/members/:memberIdRemove a member.

POST /admin/projects/:projectId/groups

Creates the group row and inserts the owner into group_members in a single tx.

Request (CreateGroupInput + owner_id)

FieldTypeRequiredDefault
namestringyes
descriptionstringnonull
avatar_urlstringnonull
owner_iduuidyes
is_publicbooleannotrue
max_membersnumberno100
metadataobjectno{}

Response 201

{ "data": { "id": "…", "name": "…", "owner_id": "…", "is_public": true, "max_members": 100 } }

Try it:

POST/admin/projects/%7B%7BprojectId%7D%7D/groups
developer auth
curl -X POST 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/groups'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X POST '${BASE_URL}/admin/projects/{projectId}/groups' \
  -H 'Authorization: Bearer ${DEV_TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{}'

GET /admin/projects/:projectId/groups

Query

ParamDefault
limit50
offset0

Response 200

{ "data": [{ "id": "…", "name": "…", "member_count": 42 }], "total": 123, "offset": 0, "limit": 50 }

Try it:

GET/admin/projects/%7B%7BprojectId%7D%7D/groups
developer auth
curl -X GET 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/groups'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X GET '${BASE_URL}/admin/projects/{projectId}/groups' \
  -H 'Authorization: Bearer ${DEV_TOKEN}'

PATCH /admin/projects/:projectId/groups/:groupId

Allowed fields: name, description, avatar_url, is_public, max_members, metadata.

Errors

  • 404 NOT_FOUND.

Try it:

PATCH/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D
developer auth
curl -X PATCH 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X PATCH '${BASE_URL}/admin/projects/{projectId}/groups/{groupId}' \
  -H 'Authorization: Bearer ${DEV_TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{}'

DELETE /admin/projects/:projectId/groups/:groupId

{ "data": { "deleted": true } }

Try it:

DELETE/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D
developer auth
curl -X DELETE 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X DELETE '${BASE_URL}/admin/projects/{projectId}/groups/{groupId}' \
  -H 'Authorization: Bearer ${DEV_TOKEN}'

GET /admin/projects/:projectId/groups/:groupId/members

{
  "data": [
    {
      "group_id": "…",
      "app_user_id": "…",
      "role": "owner",
      "joined_at": "…",
      "app_users": { "id": "…", "display_name": "…", "avatar_url": "…" }
    }
  ]
}

Try it:

GET/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D/members
developer auth
curl -X GET 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D/members'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X GET '${BASE_URL}/admin/projects/{projectId}/groups/{groupId}/members' \
  -H 'Authorization: Bearer ${DEV_TOKEN}'

PATCH /admin/projects/:projectId/groups/:groupId/members/:memberId

Request

FieldTypeRequired
rolestringyes

Errors

  • 404 NOT_FOUND.

Try it:

PATCH/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D/members/%7B%7BmemberId%7D%7D
developer auth
curl -X PATCH 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D/members/%7B%7BmemberId%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X PATCH '${BASE_URL}/admin/projects/{projectId}/groups/{groupId}/members/{memberId}' \
  -H 'Authorization: Bearer ${DEV_TOKEN}' \
  -H 'Content-Type: application/json' \
  -d '{}'

DELETE /admin/projects/:projectId/groups/:groupId/members/:memberId

{ "data": { "deleted": true } }

Try it:

DELETE/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D/members/%7B%7BmemberId%7D%7D
developer auth
curl -X DELETE 'https://api.amba.dev/admin/projects/%7B%7BprojectId%7D%7D/groups/%7B%7BgroupId%7D%7D/members/%7B%7BmemberId%7D%7D'
Loading auth… Configure auth in the settings drawer (top-right) to run this request.

Curl:

curl -X DELETE '${BASE_URL}/admin/projects/{projectId}/groups/{groupId}/members/{memberId}' \
  -H 'Authorization: Bearer ${DEV_TOKEN}'