Switching and creating workspaces
- The workspace switcher sits at the top of the console sidebar. Selecting a workspace re-issues your session for it and reloads the console — every page (keys, usage, billing, team) then shows that workspace’s data.
- Create a new workspace from the switcher’s + action (or
POST /api/v1/platform/workspaces). You become its owner. - API keys are bound to the workspace they were created in; a key always operates on its own workspace regardless of what the console currently shows.
Roles
Each member has one role per workspace: owner, admin, developer or viewer. The workspace creator is its owner; invitations grant admin, developer or viewer.
Rules enforced by the backend:
- Only owners and admins can invite, remove or change roles.
- An admin cannot touch the owner: not remove them, not change their role,
and not grant the
ownerrole to anyone. Only owners can transfer or add ownership. - The sole owner cannot leave the workspace — transfer ownership first.
- Viewers cannot spend: execution paths (including the QCOS console proxy) require more than the read scope, so a viewer can inspect but not run.
Invite people
- Open Team in the console (owner/admin only) and choose Invite Team Member.
- Enter name, email and a role (admin, developer or viewer).
- The invitee receives an email with an invitation link. Until they explicitly accept, their row shows as pending. Re-inviting a pending member re-sends a fresh link.
409.
Remove members and leave
- Owners and admins can remove members (admins cannot remove the owner).
- Any member can leave, except the sole owner.
- When a removed (or leaving) member had this workspace active, they are switched to another workspace they belong to — or a fresh personal workspace is created for them. Nobody is left without a workspace.
License seats
Workspaces that own floating licenses can assign a license seat to individual members (managed alongside Team and Licenses in the console). API keys with thelicenses:checkout scope can check out a floating seat
programmatically — see API keys.
Team over the API
All of this is also available on the REST API (session orsq-live- key auth):