Overview
TheActiveUserResource provides methods for managing the currently authenticated user’s profile, projects, and settings. Access it via client.active_user after authenticating your SpeckleClient.
This resource represents your own user account and provides access to personal information, projects you have access to, and workspace memberships.
Methods
get()
Get your own user profile information.update()
Update your user profile.Profile update parameters. See UserUpdateInput
name(str, optional) - New display namebio(str, optional) - New biographycompany(str, optional) - New company nameavatar(str, optional) - New avatar URL
Email and other sensitive fields cannot be updated via the API. Use the web interface to change your email address.
get_projects()
Get all projects you have access to.When to use this method:
- Non-workspace servers (self-hosted/open-source): Use this method to list all projects you have access to.
- Workspace-enabled servers (e.g., app.speckle.systems): Use this method with filters to list personal projects, or use
client.workspace.get_projects(workspace_id)to list projects within a specific workspace.
UserProjectsFilter(personalOnly=True) to explicitly get only your personal projects, or filter by workspaceId for workspace projects.Note: In earlier versions of specklepy, this functionality was provided by the stream resource with a list() method.Maximum number of projects to return
Cursor for pagination
Filter criteria. See UserProjectsFilter
Collection of projects
get_projects_with_permissions()
Get your projects with detailed permission information.Maximum number of projects to return
Cursor for pagination
Filter criteria. See UserProjectsFilter
Projects with permissions
This method is useful when you need to check permissions before attempting operations, helping you build more robust applications.
get_project_invites()
Get pending project invitations.List of pending invitations
Use the Speckle web interface to accept or decline invitations. This method only retrieves pending invitations. See PendingStreamCollaborator for property details.
can_create_personal_projects()
Check if you have permission to create personal (non-workspace) projects.Permission check result. See PermissionCheckResult
get_workspaces()
Get workspaces you’re a member of (workspace-enabled servers only).Maximum number of workspaces to return
Cursor for pagination
Filter criteria. See UserWorkspacesFilter
Collection of workspaces
This method only works on workspace-enabled servers (e.g., app.speckle.systems). On other servers, it will raise an error.
get_active_workspace()
Get your currently active workspace (workspace-enabled servers only).Active workspace, or
None if none selectedThis method only works on workspace-enabled servers (e.g., app.speckle.systems).
Types
User
Represents a Speckle user’s full profile (your own account).User ID
Email address
Display name
User biography
Company name
Avatar image URL
Whether email is verified
Server role (e.g., “server:user”, “server:admin”)
PendingStreamCollaborator
Represents a pending project invitation.Invitation ID
Invite token ID
Project ID
Project name
Invitation title
Proposed role
Invitation token
User who sent the invitation. See LimitedUser
Invited user (you). See LimitedUser
Input Types
UserUpdateInput
update().
Fields:
avatar(str, optional) - Avatar image URLbio(str, optional) - User biographycompany(str, optional) - Company namename(str, optional) - Display name
Filters
UserProjectsFilter
get_projects() and get_projects_with_permissions().
Fields:
search(str, optional) - Search by project name or descriptiononly_with_roles(List[str], optional) - Filter by user rolesworkspace_id(str, optional) - Filter to specific workspacepersonal_only(bool, optional) - Only return personal (non-workspace) projectsinclude_implicit_access(bool, optional) - Include projects with implicit access
UserWorkspacesFilter
get_workspaces().
Fields:
search(str, optional) - Search by workspace name