Workspaces
Create team workspaces, manage members, assign roles, and run collaborative debates.
Workspaces let teams collaborate on AI debates under a shared identity. Each workspace has an owner, optional admins, members, and viewers — each with distinct permissions over workspace settings, debates, and membership.
BYOK Pro Required
Workspaces are available on the BYOK Pro plan. Creating or joining a workspace requires an active subscription.
Roles & Permissions
Every workspace member is assigned one of four roles. The owner role is set automatically when the workspace is created and cannot be assigned via the API.
| Role | Create workspace debates | Invite members | Update workspace | Delete workspace |
|---|---|---|---|---|
owner | Yes | Yes | Yes | Yes |
admin | Yes | Yes | Yes | No |
member | Yes | Yes (if allowed by settings) | No | No |
viewer | No | No | No | No |
Owner Cannot Be Changed
The owner role can only be held by the creator of the workspace. It cannot be assigned to another member via the API. To transfer ownership, contact support.
Endpoints
List Workspaces
/api/workspacesList all workspaces the authenticated user belongs to.
Returns every workspace where the user is an owner, admin, member, or viewer.
No request body or query parameters required.
Create Workspace
/api/workspacesCreate a new workspace. The authenticated user becomes the owner.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Required | Display name for the workspace. 1–100 characters. |
slug | string | Required | URL-safe identifier. 2–48 characters, lowercase alphanumeric with hyphens only. Must be globally unique. Example: 'acme-engineering'. |
description | string | Optional | Short description of the workspace. Max 500 characters. |
curl -X POST https://api.askverdict.ai/api/workspaces \
-H "Authorization: Bearer vrd_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Engineering",
"slug": "acme-engineering",
"description": "Debate space for the Acme platform team"
}'Error Responses
| Code | Error | Description |
|---|---|---|
400 | VALIDATION_ERROR | Missing required field or invalid slug format |
409 | CONFLICT | A workspace with this slug already exists |
401 | UNAUTHORIZED | Invalid or missing API key |
Get Workspace
/api/workspaces/:idRetrieve full details for a single workspace. Requires any role in the workspace.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
Update Workspace
/api/workspaces/:idUpdate workspace name, description, or settings. Requires admin or owner role.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
All body fields are optional. Only supplied fields are updated.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Optional | New display name. 1–100 characters. |
description | string | null | Optional | Updated description. Max 500 characters. Pass null to clear. |
settings | object | Optional | Workspace settings object. All sub-fields are optional. |
settings.allowMemberInvites | boolean | Optional | Allow members (not just admins/owners) to invite others. |
settings.defaultDebateMode | string | Optional | Default debate mode for new workspace debates. One of: 'fast', 'balanced', 'thorough'. |
settings.requireApprovalForPublicDebates | boolean | Optional | Require admin approval before a workspace debate is made public. |
curl -X PATCH https://api.askverdict.ai/api/workspaces/550e8400-e29b-41d4-a716-446655440000 \
-H "Authorization: Bearer vrd_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"settings": {
"allowMemberInvites": false,
"defaultDebateMode": "thorough"
}
}'Delete Workspace
/api/workspaces/:idPermanently delete a workspace and all its data. Requires owner role.
Irreversible Action
Deleting a workspace permanently removes all associated members, debates, and settings. This action cannot be undone.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
Member Management
List Members
/api/workspaces/:id/membersList all members of the workspace. Requires any role in the workspace.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
Invite Member
/api/workspaces/:id/membersInvite a user by email and assign them a role. Requires member, admin, or owner role (subject to workspace settings).
Invite Permissions
By default, any workspace member can invite others. If the workspace setting allowMemberInvites is set to false, only admins and owners can send invitations.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
| Name | Type | Required | Description |
|---|---|---|---|
email | string | Required | Email address of the user to invite. The user must have an existing AskVerdict account. |
role | string | Required | Role to assign. One of: 'admin', 'member', 'viewer'. The 'owner' role cannot be assigned via invite. |
curl -X POST https://api.askverdict.ai/api/workspaces/550e8400-e29b-41d4-a716-446655440000/members \
-H "Authorization: Bearer vrd_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@acme.com",
"role": "member"
}'Error Responses
| Code | Error | Description |
|---|---|---|
400 | VALIDATION_ERROR | Invalid email or invalid role value |
403 | FORBIDDEN | Caller does not have permission to invite members |
404 | NOT_FOUND | No AskVerdict account found for this email |
409 | CONFLICT | User is already a member of this workspace |
Remove Member
/api/workspaces/:id/members/:userIdRemove a member from the workspace. Requires admin or owner role.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
userId | string | The user ID of the member to remove |
Change Member Role
/api/workspaces/:id/members/:userIdUpdate the role of a workspace member. Requires admin or owner role.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
userId | string | The user ID of the member to update |
| Name | Type | Required | Description |
|---|---|---|---|
role | string | Required | New role for the member. One of: 'admin', 'member', 'viewer'. Cannot assign 'owner'. |
curl -X PATCH https://api.askverdict.ai/api/workspaces/550e8400-e29b-41d4-a716-446655440000/members/usr_def456 \
-H "Authorization: Bearer vrd_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "role": "viewer" }'Workspace Debates
List Workspace Debates
/api/workspaces/:id/debatesList debates belonging to this workspace, paginated. Requires any role in the workspace.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (UUID) | The workspace ID |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number (1-indexed) |
limit | integer | 20 | Number of debates per page |
curl "https://api.askverdict.ai/api/workspaces/550e8400-e29b-41d4-a716-446655440000/debates?page=1&limit=20" \
-H "Authorization: Bearer vrd_your_api_key"Was this page helpful?