Workspaces
Workspaces allow teams to share rooms and collaborate. Each user has a default "Personal" workspace. Additional workspaces can be created and members invited.
Roles
| Role | Permissions |
|---|---|
| Owner | Full access. Can rename workspace, manage all members, create/delete API keys and webhooks, delete workspace. |
| Admin | Can invite members, manage member roles (except other admins), create API keys and webhooks. |
| Member | Read-only access to workspace rooms. Can leave the workspace. |
List Workspaces
GET /api/workspaces
Response:
{
"workspaces": [
{
"id": 1,
"name": "Personal",
"slug": "personal-1710000000",
"owner_id": 1,
"created_at": 1710000000
}
]
}
Create Workspace
POST /api/workspaces
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Workspace name |
Response:
{
"workspace": { "id": 2, "name": "My Team", ... }
}
Get Workspace
Returns workspace details including members.
GET /api/workspaces/:id
Response:
{
"workspace": {
"id": 2,
"name": "My Team",
"members": [
{
"id": 1,
"name": "John",
"email": "john@example.com",
"role": "owner",
"joined_at": 1710000000
}
]
}
}
Update Workspace
Rename a workspace. Owner only.
PATCH /api/workspaces/:id
Request body:
{ "name": "New Name" }
Delete Workspace
Permanently delete a workspace. Owner only. Cannot delete the "Personal" workspace.
DELETE /api/workspaces/:id
Response:
{ "ok": true }
Invite Members
Generate or retrieve an invite link. Owner or admin only.
POST /api/workspaces/:id/invite
Response:
{ "token": "abc123-uuid" }
Use the token to build an invite URL: https://app.nexus.livestorm.co/join/{token}
Join via Invite
POST /api/workspaces/join/:token
Response:
{
"workspace": { ... }
}
Update Member Role
Owner or admin only.
PATCH /api/workspaces/:id/members/:userId
Request body:
{ "role": "admin" }
Remove Member
DELETE /api/workspaces/:id/members/:userId
List Workspace Rooms
GET /api/workspaces/:id/rooms