Skip to main content
Hosted Server Feature: The WorkspaceResource is only available on workspace-enabled Speckle deployments, primarily the hosted server at app.speckle.systems.Self-hosted/open-source server deployments do not include workspace features. Attempting to use workspace methods on non-workspace servers will raise an error.

Overview

The WorkspaceResource provides methods for managing Speckle workspaces. Access it via client.workspace after authenticating your SpeckleClient. Workspaces are organizational units that group projects and team members together on workspace-enabled servers.

Methods

get()

Get a single workspace by ID.
Parameters:
str
required
The ID of the workspace to retrieve
Returns:
Workspace
The workspace object
Example:
See Workspace for property details.

get_projects()

Get all projects in a workspace with pagination support.
Parameters:
str
required
The ID of the workspace
int
default:"25"
Maximum number of projects to return
str
default:"None"
Cursor for pagination
WorkspaceProjectsFilter
default:"None"
Filter criteria
Returns:
ResourceCollection[Project]
Collection with items, totalCount, and cursor
Example:
Filter Example:

get_projects_with_permissions()

Get all projects in a workspace with detailed permission information.
Parameters:
str
required
The ID of the workspace
int
default:"25"
Maximum number of projects to return
str
default:"None"
Cursor for pagination
WorkspaceProjectsFilter
default:"None"
Filter criteria
Returns:
ResourceCollection[ProjectWithPermissions]
Collection of projects with permission details
Example:
ProjectWithPermissions Additional Properties:
  • permissions (ProjectPermissions) - Detailed permission checks
    • canCreateModel - Model creation permission
    • canDelete - Project deletion permission
    • canLoad - Project loading permission
    • canPublish - Version publishing permission
Each permission object includes:
  • authorized (bool) - Whether the action is authorized
  • code (str) - Permission code
  • message (str, optional) - Human-readable message

Types

Workspace

Represents a Speckle workspace.
str
Workspace ID
str
Workspace name
str
URL-safe identifier
str
Your role in the workspace
Workspace logo URL
str
Workspace description
datetime
Creation timestamp
datetime
Last update timestamp
bool
Whether workspace is read-only
object
Creation state information - completed (bool) - Whether workspace setup is complete
WorkspacePermissions
Permission checks - canCreateProject - Project creation permission

Filters

WorkspaceProjectsFilter

Used with get_projects() and get_projects_with_permissions(). Fields:
  • search (str, optional) - Filter by project name
  • with_project_role_only (bool, optional) - Only return projects where user has explicit project role

FAQ

Workspace features are available on:
  • app.speckle.systems (hosted Speckle server)
  • Enterprise deployments with workspace features enabled
Workspace features are NOT available on:
  • Self-hosted open-source Speckle servers
  • Community edition deployments
Check before using by wrapping calls in try/except blocks.
Attempt to get workspaces and handle the error:
Use the active_user resource to list your workspaces:
  • Workspace projects: Owned by a workspace, shared with workspace members, managed by workspace admins
  • Personal projects: Owned by individual users, independent of workspaces
Critical: All personal projects will be permanently deleted on January 1, 2026. Personal projects must be migrated to a workspace before this deadline.
On workspace-enabled servers, projects can belong to either a workspace or a user. Check the workspaceId field on a project to determine ownership.
Project creation happens through the ProjectResource, but you can specify the workspace:

ActiveUserResource

Get your workspaces with get_workspaces() and get_active_workspace()

ProjectResource

Create projects within workspaces

SpeckleClient

Main client documentation
Last modified on July 18, 2026