Skip to main content
Version: Next

Workspaces

A workspace is the container every other resource belongs to. Workspaces are owned by the Organization service and are reached directly under /api/v1.

Base path: https://api.rabbitqa.com/api/v1/workspaces

List workspaces

curl https://api.rabbitqa.com/api/v1/workspaces \
-H "Authorization: Bearer $TOKEN"
MethodPathPurpose
GET/api/v1/workspacesAll workspaces in the company
GET/api/v1/workspaces/accessibleOnly the workspaces the signed-in user can enter
GET/api/v1/workspaces/recentRecently visited workspaces
GET/api/v1/workspaces/{id}A single workspace
GET/api/v1/workspaces/validation-rulesNaming and configuration rules applied on create

Use /accessible when building a workspace picker — it is the list that will not produce a 403 on the next call.

Create and update

MethodPathPurpose
POST/api/v1/workspacesCreate a workspace
PUT/api/v1/workspaces/{id}Update name and settings
PUT/api/v1/workspaces/{id}/archiveArchive
PUT/api/v1/workspaces/{id}/unarchiveRestore an archived workspace
DELETE/api/v1/workspaces/{id}Delete
POST/api/v1/workspaces/{id}/touchMark as recently visited

Switching workspace

curl -X POST https://api.rabbitqa.com/api/v1/workspaces/91/switch \
-H "Authorization: Bearer $TOKEN"

POST /api/v1/auth/switch-workspace/{workspaceId} re-issues the access token with the new workspace baked in. For most API clients it is simpler to keep one token and vary the X-Workspace-Id header per request.

MethodPathPurpose
GET/api/v1/workspaces/{id}/has-accessWhether the current user can enter the workspace
GET/api/v1/workspaces/{id}/my-rolesThe current user's roles in that workspace

Module entitlement

MethodPathPurpose
GET/api/v1/workspaces/{id}/modulesModules enabled for the workspace
PUT/api/v1/workspaces/{id}/modulesChange the enabled modules

The gateway checks this entitlement before forwarding a request to a module's prefix, so a workspace without the AutoRunner module cannot call /autorunner/api/v1/** regardless of the caller's permissions.

Access control

MethodPathPurpose
GET/api/v1/workspaces/{id}/accessCurrent team and user grants
POST/api/v1/workspaces/{id}/access/teamsGrant a team access
DELETE/api/v1/workspaces/{id}/access/teams/{teamId}Revoke a team
POST/api/v1/workspaces/{id}/access/usersGrant a user access
DELETE/api/v1/workspaces/{id}/access/users/{userId}Revoke a user
GET/api/v1/workspaces/{id}/membersMembers and their roles
POST/api/v1/workspaces/{id}/members/rolesAssign roles to a member
DELETE/api/v1/workspaces/{id}/members/{userId}/roles/{roleId}Remove one role from a member

Teams and roles are managed alongside workspaces:

  • GET|POST /api/v1/teams, GET|PUT|DELETE /api/v1/teams/{id}, POST|DELETE /api/v1/teams/{id}/members/{userId}
  • GET|POST /api/v1/roles, GET|PUT|DELETE /api/v1/roles/{id}, GET /api/v1/roles/{id}/users
  • GET /api/v1/permissions, GET /api/v1/permissions/modules