Overview
TheProjectResource provides methods for managing Speckle projects. Access it via client.project after authenticating your SpeckleClient.
Projects are the top-level containers in Speckle that hold models, versions, and team members.
Methods
get()
Get a single project by ID.str
required
The ID of the project to retrieve
Project
The project object
get_permissions()
Get permission checks for a project.str
required
The ID of the project
ProjectPermissionChecks
Permission check results
get_with_models()
Get a project with its models included.str
required
The ID of the project
int
default:"25"
Maximum number of models to return
str
default:"None"
Cursor for pagination
ProjectModelsFilter
default:"None"
Filter criteria for models. See ProjectModelsFilter
ProjectWithModels
Project with models collection
get_with_team()
Get a project with its team members and pending invitations.str
required
The ID of the project
ProjectWithTeam
Project with team information
create()
Create a new personal project (non-workspace).ProjectCreateInput
required
Project creation parameters. See ProjectCreateInput
Project
The newly created project
Check if you can create personal projects using
client.active_user.can_create_personal_projects() before calling this method.create_in_workspace()
Create a new workspace project.WorkspaceProjectCreateInput
required
Workspace project creation parameters. See
WorkspaceProjectCreateInput
Project
The newly created workspace project
update()
Update an existing project.ProjectUpdateInput
required
Project update parameters. See ProjectUpdateInput
Project
The updated project
delete()
Delete a project permanently.str
required
The ID of the project to delete
bool
True if deletion was successfulupdate_role()
Update a team member’s role in the project.ProjectUpdateRoleInput
required
Role update parameters
ProjectWithTeam
Updated project with team information
projectId(str, required) - The project IDuserId(str, required) - The user ID whose role to updaterole(str, required) - New role:"stream:owner","stream:contributor", or"stream:reviewer"
stream:owner- Full control, can delete project and manage teamstream:contributor- Can create models and versionsstream:reviewer- Read-only access
Types
Project
Represents a Speckle project.str
Project ID
str
Project name
str
Project description
str
"PUBLIC", "PRIVATE", or "UNLISTED"str
Your role:
"stream:owner", "stream:contributor", or "stream:reviewer"datetime
Creation timestamp
datetime
Last update timestamp
bool
Whether public comments are allowed
List[str]
List of source applications used
str
Workspace ID if this is a workspace project
PermissionCheckResult
Result of a permission check operation.bool
Whether the action is authorized
str
Permission code
str
Human-readable message
Input Types
ProjectCreateInput
create().
Fields:
name(str) - Project namedescription(str, optional) - Project descriptionvisibility(str, optional) -"PRIVATE","PUBLIC", or"UNLISTED"
ProjectUpdateInput
update().
Fields:
id(str) - Project IDname(str, optional) - New project namedescription(str, optional) - New descriptionallow_public_comments(bool, optional) - Allow public commentsvisibility(str, optional) - New visibility setting
WorkspaceProjectCreateInput
create_in_workspace().
Fields:
name(str) - Project namedescription(str, optional) - Project descriptionvisibility(str, optional) -"PRIVATE","PUBLIC", or"UNLISTED"workspaceId(str) - Workspace ID
Filters
ProjectModelsFilter
get_with_models() and client.model.get_models().
Fields:
contributors(List[str], optional) - Filter by contributor user IDsexclude_ids(List[str], optional) - Exclude specific model IDsids(List[str], optional) - Include only specific model IDsonly_with_versions(bool, optional) - Only return models with versionssearch(str, optional) - Search by model namesource_apps(List[str], optional) - Filter by source application
Related Resources
ModelResource
Work with models in projects
VersionResource
Manage versions in models
ActiveUserResource
Get user’s projects and permissions
SpeckleClient
Main client documentation