Browse the docs

Workspaces

The tenant boundary. List the workspaces a credential can see, read one with your permissions, rename or archive.

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

GET/user/workspaces

Every workspace the credential can access. A workspace-bound key sees only its own; an organisation-wide key sees every workspace in the organisation.

Request
curl "https://api.statusbee.co/user/workspaces" \
  -H "Authorization: Bearer sb_live_…"
Response
{
  "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

GET/user/workspaces/:id

The 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.
Request
curl "https://api.statusbee.co/user/workspaces/5" \
  -H "Authorization: Bearer sb_live_…"
Response
{
  "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

PATCH/user/workspaces/:id

Needs 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.
Request
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)"
}'
Response
{
  "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

DELETE/user/workspaces/:id

Soft 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.
Request
curl -X DELETE "https://api.statusbee.co/user/workspaces/6" \
  -H "Authorization: Bearer sb_live_…"
Response
{
  "statusCode": 200,
  "error": false,
  "message": null,
  "data": {
    "archived": 1
  }
}