Platform: Set Platform Role
Set a user's platform role (superadmin): grant or remove `superadmin` / `support`. Your own role can't be changed (409). At most `PLATFORM_MAX_SUPERADMINS` (default and maximum 10) superadmins: 409 `{code: superadmin_limit}` when full; the last superadmin can't be removed (409 `last_superadmin`). A demotion applies on the user's next request. Audited.
API key access
/api/v1/platform/users/{user_id}Access token from /api/v1/auth/login, or an API key (ro_pat_..., RO-176) from /api/v1/workspaces/current/api-keys: the key implies its workspace and needs the route's scope. MCP connectors (/api/v1/mcp only) may use an OAuth access token (ro_oat_..., RO-284).
In: header
Path Parameters
uuidA user's platform role: none, support (reads the platform console) or superadmin
(also suspends workspaces and manages platform roles).
"none" | "support" | "superadmin"Response Body
curl -X PATCH "http://localhost:8000/api/v1/platform/users/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "platform_role": "none" }'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"email": "string",
"name": "string",
"platform_role": "none",
"workspaces": 0,
"created_at": "2019-08-24T14:15:22Z"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Platform: List Workspaces
Every workspace, newest first (platform staff: `support` or `superadmin`; signed-in only, API keys get 403). `q` matches the name, slug or id; `status` is `active` or `suspended`; `cursor` pages.
Platform: Suspend Workspace
Suspend a workspace (superadmin), with a reason: nothing is sent or dialled, members and admins get 403 `workspace_suspended`, owners can only read (and export or delete their data). 409 if already suspended. Audited.