These endpoints are currently in Alpha. Breaking changes are possible. See API Version Stages for details.
Authentication
All RBAC endpoints require Bearer token authentication:Roles
Manage custom and predefined roles for your account.| Method | Path | Description |
|---|---|---|
GET | /v2/roles | List all roles (custom and predefined) |
POST | /v2/roles | Create a custom role |
GET | /v2/roles/{role_id} | Get a role by ID |
PATCH | /v2/roles/{role_id} | Update a custom role |
DELETE | /v2/roles/{role_id} | Delete a custom role |
Predefined roles (e.g., Project Viewer, Project Editor, Project Admin) cannot be updated or deleted.
List roles
is_predefined=true or is_predefined=false to see only built-in or custom roles. Responses are paginated — use limit and cursor parameters for large role lists.
Create a custom role
Role Bindings
Assign roles to users on specific resources (spaces or projects).| Method | Path | Description |
|---|---|---|
POST | /v2/role-bindings | Assign a role to a user on a space or project |
GET | /v2/role-bindings/{binding_id} | Get a role binding by ID |
PATCH | /v2/role-bindings/{binding_id} | Update the role in a binding |
DELETE | /v2/role-bindings/{binding_id} | Remove a role binding |
Each user can have one role binding per resource. Attempting to create a duplicate binding returns a
409 Conflict error.Assign a project role
resource_type field accepts space or project.
Update a role binding
To change the role assigned to a user, update the binding with a newrole_id:
role_id can be updated. The user, resource type, and resource cannot be changed — delete and recreate the binding instead.
Resource Restrictions
Mark projects as restricted so only users with explicit role bindings can access them.| Method | Path | Description |
|---|---|---|
POST | /v2/resource-restrictions | Restrict a project |
DELETE | /v2/resource-restrictions/{resource_id} | Remove restriction from a project |
Currently, only projects can be restricted. Support for additional resource types is planned.
Restrict a project
Remove a restriction
Common Workflows
Onboard a team member with scoped project access
- Restrict the project (if not already restricted):
POST /v2/resource-restrictionswith the project ID. - Create a role binding for the user:
POST /v2/role-bindingswith the user ID, a role ID (e.g., Project Editor), and the project ID.
Audit roles and access
- List all custom roles:
GET /v2/roles?is_predefined=false - Review role bindings:
GET /v2/role-bindings/{binding_id}for specific bindings.