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/
201:
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, or409if 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.