Update a workspace
Update a workspace
Partially update a given workspace.
Standard update (workspace OWNER only):
- name (string, optional): Desired workspace name (max 100 characters, cannot be empty)
- description (string, optional): Desired workspace description. Send empty string or null to clear.
Convert to a synced workspace (workspace OWNER or a role granting workspace edit/delete):
- datasource (object): Datasource configuration used to populate the workspace. Credentials are validated against the external source before persistence; use
POST /api/v1/workspaces/{id}/datasource/testto validate them without committing. - The target workspace must be empty (no documents) and not already synced.
Edit an existing synced workspace's datasource:
- If the workspace is already synced and no successful sync has happened yet, sending a
datasourcepayload edits the datasource in place (full credential re-entry required, name/filter_criteria updated, next sync re-triggered). - After the first successful sync, the field is rejected with 409 Conflict — ingested data integrity is preserved by locking the config. Delete and recreate the workspace to change its configuration.
- The datasource
typeis immutable on edit (changing it returns 400). - Edits are also rejected with 409 while a sync is currently in flight (WAITING/PROCESSING).
- The current edit-availability is exposed in the response under
sync.editable(boolean).
Restrictions:
- Only SHARED workspaces can be updated (PERSONAL workspaces cannot be modified)
- Conversion is one-way: a synced workspace cannot be reverted to manual via the API
Authorization
bearerAuth Console session token (Authorization: Bearer <session>) or product API key (Authorization: Bearer <api-key> or x-api-key). Session tokens are validated via Better Auth get-session; API keys against the shared database.
In: header
Path Parameters
The unique identifier of the workspace.
Query Parameters
When true, allow updating/restoring a soft-deleted workspace.
falseHeader Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request body (PatchedUpdateWorkspaceRequest).
Request body (PatchedUpdateWorkspaceRequest).
Response Body
application/json
application/json
curl -X PATCH "https://example.com/api/v1/workspaces/0" \ -H "Content-Type: application/json" \ -d '{}'{ "id": 0, "name": "string", "workspace_type": "string", "document_upload_method": "string", "description": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "files_count": 0, "user_role": "owner", "used_storage": 0, "summaries": [ { "language": "string", "summary": "string" } ], "sync": { "datasource_type": "string", "source_name": "string", "last_status": "string", "updated_at": "2019-08-24T14:15:22Z", "failed_files_count": 0, "next_import_date": "2019-08-24T14:15:22Z", "editable": true, "name": "string", "instance_url": "string", "tenant_id": "string", "site_name": "string", "client_id": "string", "filter_criteria": null }, "scoped_api_keys": [ { "id": "string", "name": "string", "prefix": "string", "role": "string", "created_at": "2019-08-24T14:15:22Z", "created_by": "string", "scope_type": "workspace" } ]}Retrieve a workspace GET
Retrieve a workspace Retrieve a workspace by ID. Returns workspace details. **Access:** Instance-level users (Sys Admin, Account Manager, Admin, DPO Admin) can retrieve any workspace. Company-level users (Company Admin, Company DPO) can retrieve workspaces in their company. Regular users can retrieve workspaces where they are members. **Member Visibility:** Instance-level users and company-level users see all members. Workspace OWNER sees members. EDITOR and VIEWER do not see members. **Sync status:** For synced workspaces, the response includes a `sync` block with `datasource_type`, `source_name`, `last_status`, `updated_at`, `failed_files_count`, and `next_import_date`. Use this field for polling the sync state. Returns 403 for both non-existent and unauthorized workspaces.
Delete a workspace DELETE
Delete a workspace Soft-delete a custom workspace you own. The workspace and its memberships are marked as deleted but retained for the configured recovery period; collection data (documents, chunks, embeddings) is preserved until the workspace is permanently deleted by the cleanup task. The workspace can be restored within the recovery period via `PATCH` with `deleted_at=null` (use `?include_deleted=true` to address it after deletion). **Restrictions:** - PERSONAL workspaces cannot be deleted (system-managed) — returns 403 - Caller must be an OWNER of the workspace (or hold instance/company workspace-delete permission)