Skip to main content
The organization’s details, its members and invitations, workspaces and who is in them, and groups. Request-portal branding is on Organization.

Organization

GET organization/

slug is the organization’s URL ID: 12 characters generated when the org is created, never derived from the name, and it never changes. Names don’t have to be unique.

PATCH organization/

{"description": "Platform engineering"}. Permission: org.manage_settings. The name and ID can’t be changed through the API.

DELETE organization/

{"confirm": "Acme"} (or ?confirm=Acme): the organization’s exact name. Owners only. Deletes the organization and everything in it (workspaces, workflows, runs, requests, secrets; its encryption key is destroyed). Can’t be undone. 204 on success, 400 if the name doesn’t match, 403 for non-owners. On a one-organization plan (Free, Team) the account goes with it, so the owner can create a new organization.

Members

Organization roles:

GET members/

Permission: org.view_members. Paginated. ?q= matches username or email; ?role= filters.

PATCH members/{id}/

{"role": "admin"}. Permission: org.manage_members. Making someone a requester removes them from every workspace and revokes their API tokens. 403 when a non-owner grants, changes or removes the owner role; 400 when demoting the last owner; 409 when promoting a requester would go over the license’s user limit.

DELETE members/{id}/

Removes the person from the organization: their workspace memberships, group memberships and roles are deleted and their API tokens for the organization are revoked. A group they were the only owner of is left without owners (organization admins can still manage it). Permission: org.manage_members; removing an owner needs an owner. 400 for the last owner. Returns 204.

Invitations

Permission: org.manage_members.

POST invitations/

Bentra emails an invitation link, valid for 7 days. Response 201:
Errors: 400 invalid email or role; 403 inviting an owner without being one; 409 already a member, an invitation is already pending, or the user limit is reached; 429 more than 30 invitations in an hour; 502 the email couldn’t be sent.

GET invitations/

Pending invitations that haven’t expired. Paginated.

DELETE invitations/{id}/

Revokes a pending invitation. 400 if it isn’t pending. Returns 204.

Workspaces

Workspaces are addressed by slug. Organization admins (org.manage_workspaces) see every workspace; others see the ones they belong to.

POST workspaces/

{"name": "Data Platform", "description": "…"}. Permission: org.create_workspace. The slug comes from the name; you join the new workspace as its owner. Response 201: {"success": true, "workspace": {"id", "slug", "name", "description", "is_default"}}. 409 if the slug is taken.

PATCH workspaces/{slug}/

{"name": "…", "description": "…"}. Permission: org.manage_workspaces. Renaming changes the slug, and with it the workspace’s URLs.

DELETE workspaces/{slug}/

Permission: org.manage_workspaces. Only empty workspaces: one with workflows, forms, runs, requests, variable collections or runner pools returns 409 with counts. The default workspace can’t be deleted (400). Deleting a workspace with its contents is only possible in the UI. Returns 204.

Workspace members

Permission: workspace.manage_members on that workspace. Workspace roles: owner, admin, member. Requesters can’t join workspaces.
  • GET workspaces/{slug}/members/ → {"success": true, "members": [{"id", "user_id", "username", "email", "role"}]}
  • POST workspaces/{slug}/members/ with {"user": "bob", "role": "member"} → 201, or 409 if already a member. With {"group": "Platform", "role": "member"} it adds each of the group’s members and returns {"added": 3, "skipped": 1} (already members and requesters are skipped).
  • PATCH workspaces/{slug}/members/{id}/ with {"role": "admin"}.
  • DELETE workspaces/{slug}/members/{id}/ → 204. They stay in the organization.

Groups

Groups collect organization members. A group can be a workflow’s approver, hold a workflow role, and be given access to workspaces. Who can manage a group: organization admins (org.manage_groups) and the group’s own owners. Only organization admins can create groups and grant them workspace access.

GET groups/ and GET groups/{id}/

Permission: org.view_members. The detail includes owners, members and workspace access:

POST groups/

{"name": "Platform", "description": "…"}. You become its first owner. 409 if the name is taken.

PATCH groups/{id}/ and DELETE groups/{id}/

Rename, change the description, or delete. Deleting a group removes the approver and role grants made to it.

Members and owners

POST groups/{id}/members/, groups/{id}/members/remove/, groups/{id}/owners/ or groups/{id}/owners/remove/ with {"user": "bob"}. Each returns the updated group. A group keeps at least one owner (400).

Workspace access

POST groups/{id}/workspaces/ with {"workspace": "data", "role": "member"} grants access, or changes the role if already granted. POST groups/{id}/workspaces/remove/ with {"workspace": "data"} takes it away. Organization admins only.