Every operational resource belongs to a workspace, and most collection endpoints take a workspace_id. Start here to find the ids you need. Creating workspaces happens under the organisation; see Organizations and members.
List workspaces
/user/workspacesEvery workspace the credential can access. A workspace-bound key sees only its own; an organisation-wide key sees every workspace in the organisation.
curl "https://api.statusbee.co/user/workspaces" \
-H "Authorization: Bearer sb_live_…"{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"rows": [
{
"id": 5,
"org_id": 5,
"slug": "default",
"name": "Acme Cloud",
"is_default": true,
"branding": null,
"settings": null,
"archived_at": null,
"created_at": "2026-09-14T09:02:11.000Z",
"updated_at": "2026-09-14T09:02:11.000Z"
},
{
"id": 6,
"org_id": 5,
"slug": "acme-payments",
"name": "Acme Payments",
"is_default": false,
"branding": null,
"settings": null,
"archived_at": null,
"created_at": "2026-09-14T09:02:11.000Z",
"updated_at": "2026-09-14T09:02:11.000Z"
}
]
}
}Get a workspace
/user/workspaces/:idThe workspace, plus the role and the permission set the current credential holds in it.
Needs the dashboard.read permission, or an API key with the matching scope.
Path parameters
idintegerrequired- Workspace id.
curl "https://api.statusbee.co/user/workspaces/5" \
-H "Authorization: Bearer sb_live_…"{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"workspace": {
"id": 5,
"org_id": 5,
"slug": "default",
"name": "Acme Cloud",
"is_default": true,
"branding": null,
"settings": null,
"archived_at": null,
"created_at": "2026-09-14T09:02:11.000Z",
"updated_at": "2026-09-14T09:02:11.000Z"
},
"my_role": "org_owner",
"permissions": [
"org.manage",
"members.manage",
"billing.manage",
"api_keys.manage",
"workspace.settings",
"pages.manage",
"components.manage",
"incidents.manage",
"maintenance.manage",
"templates.manage",
"monitors.manage",
"subscribers.read",
"subscribers.manage",
"webhooks.manage",
"analytics.read",
"audit.read",
"dashboard.read"
]
}
}Update a workspace
/user/workspaces/:idNeeds the workspace.settings permission, or an API key with the matching scope.
Path parameters
idintegerrequired- Workspace id.
Body
namestring- Display name, up to 100 characters.
brandingobject- Free-form branding defaults for the workspace's pages.
settingsobject- Free-form settings.
curl -X PATCH "https://api.statusbee.co/user/workspaces/5" \
-H "Authorization: Bearer sb_live_…" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Cloud (EU)"
}'{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"id": 5,
"org_id": 5,
"slug": "default",
"name": "Acme Cloud (EU)",
"is_default": true,
"branding": null,
"settings": null,
"archived_at": null,
"created_at": "2026-09-14T09:02:11.000Z",
"updated_at": "2026-09-14T09:02:11.000Z"
}
}Archive a workspace
/user/workspaces/:idSoft delete. Pages stop serving, monitors stop, and the workspace no longer counts against limits. The default workspace cannot be archived (409).
Needs the workspace.settings permission, or an API key with the matching scope.
Path parameters
idintegerrequired- Workspace id.
curl -X DELETE "https://api.statusbee.co/user/workspaces/6" \
-H "Authorization: Bearer sb_live_…"{
"statusCode": 200,
"error": false,
"message": null,
"data": {
"archived": 1
}
}