Skip to main content
Use client.ActiveUser for the authenticated user’s profile and accessible projects. Use after Authentication.

ActiveUserResource

Get
Task<User?> Get(CancellationToken cancellationToken = default)
Gets the authenticated user’s profile. Returns null if the client’s account is unauthenticated.
Update
Task<User> Update(UserUpdateInput input, CancellationToken cancellationToken = default)
Updates the authenticated user’s profile fields.
GetProjects
Task<ResourceCollection<Project>> GetProjects(int limit = 25, string? cursor = null, UserProjectsFilter? filter = null, CancellationToken cancellationToken = default)
Lists projects the authenticated user has access to.
GetProjectsWithPermissions
Task<ResourceCollection<ProjectWithPermissions>> GetProjectsWithPermissions(int limit = 25, string? cursor = null, UserProjectsFilter? filter = null, CancellationToken cancellationToken = default)
Same as GetProjects, but each project includes a permissions field typed as ProjectPermissionChecks. This query populates canCreateModel, canDelete, and canLoad only — not canPublish (which client.Project.GetPermissions still queries but is obsolete in the SDK; use client.Model.GetPermissions(...).canCreateVersion for publish checks).
GetProjectInvites
Task<List<PendingStreamCollaborator>> GetProjectInvites(CancellationToken cancellationToken = default)
Lists pending project invitations for the authenticated user.
CanCreatePersonalProjects
Task<PermissionCheckResult> CanCreatePersonalProjects(CancellationToken cancellationToken = default)
Checks whether the user can create personal (non-workspace) projects.
GetWorkspaces
Task<ResourceCollection<Workspace>> GetWorkspaces(int limit = 25, string? cursor = null, UserWorkspacesFilter? filter = null, CancellationToken cancellationToken = default)
Lists workspaces the authenticated user belongs to. Only available on workspace-enabled servers.
GetActiveWorkspace
Task<LimitedWorkspace?> GetActiveWorkspace(CancellationToken cancellationToken = default)
Gets the user’s last-selected workspace. Returns a LimitedWorkspace because the user may not be a member.
Most ActiveUser methods throw SpeckleException if the client’s account is unauthenticated — check Get() for null first if you’re unsure.

OtherUserResource

Get
Task<LimitedUser?> Get(string id, CancellationToken cancellationToken = default)
Gets a limited public profile for any user by id. Returns null if the user doesn’t exist.
Searches for users by name or email (minimum 3 characters).
Marked [Obsolete] — user search is deprecated. Avoid using this in new code.

Usage

https://mintcdn.com/speckle/VtRPWzmN-ULoLfIv/images/developers/sdks/csharp.svg?fit=max&auto=format&n=VtRPWzmN-ULoLfIv&q=85&s=f2970e3b8bd4a2c7899b46211a42f251Example
var me = await client.ActiveUser.Get();
Console.WriteLine($"Logged in as {me?.name}");

var myProjects = await client.ActiveUser.GetProjects();
foreach (var project in myProjects.items)
{
    Console.WriteLine(project.name);
}

FAQ

The client’s account is not authenticated. Build an Account with IAccountFactory or reuse a stored account — see Authentication.

Next Steps

Core concepts

How users relate to projects

Authentication

Build an Account and IClient

ProjectResource

Create and list projects
Last modified on July 10, 2026