> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-auth, mcp-auth, modular-sso, modular-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Users

Provision and manage users and memberships
<div class="sdk-client-page">

Use the User client to provision people, manage organization memberships, and assign roles.

Common flows: invite or create a user, attach them to an organization, update profile fields, and look up users by Scalekit ID or your external ID.

### ListUsers
<div class="sdk-method-section">
  
    
      

      ListUsers retrieves all users across the environment with optional pagination.

      
        Request context
      
      
        Optional request settings.
      
      
        Paginated results.
      

```go wrap showLineNumbers=false
users, err := scalekitClient.User().ListUsers(ctx, &scalekit.ListUsersOptions{
  PageSize:  50,
  PageToken: "",
})
if err != nil {
  // handle
}
for _, u := range users.Users {
  _ = u
}
```

    
  
</div>

### ListOrganizationUsers
<div class="sdk-method-section">
  
    
      

      ListOrganizationUsers retrieves a list of users in the organization

      
        Request context
      
      
        Organization ID.
      
      
        Optional request settings.
      
      
        Paginated results.
      

```go wrap showLineNumbers=false
users, err := scalekitClient.User().ListOrganizationUsers(ctx, "org_123", &scalekit.ListUsersOptions{
  PageSize:  10,
  PageToken: "",
})
if err != nil {
  // handle
}
_ = users.Users
```

    
  
</div>

### GetUser
<div class="sdk-method-section">
  
    
      

      GetUser retrieves a user by ID

      
        Request context
      
      
        Scalekit user ID (`usr_...`).
      
      
        The response payload for this operation.
      

```go wrap showLineNumbers=false
user, err := scalekitClient.User().GetUser(ctx, "usr_123")
if err != nil {
  // handle
}
_ = user.User
```

    
  
</div>

### UpdateUser
<div class="sdk-method-section">
  
    
      

      UpdateUser updates an existing user

      
        Request context
      
      
        Scalekit user ID (`usr_...`).
      
      
        Update user.
      
      
        The updated resource.
      

```go wrap showLineNumbers=false
firstName := "Test"
lastName := "User"
name := "Test User"
locale := "en-US"

updated, err := scalekitClient.User().UpdateUser(ctx, "usr_123", &users.UpdateUser{
  UserProfile: &users.UpdateUserProfile{
    FirstName: &firstName,
    LastName:  &lastName,
    Name:      &name,
    Locale:    &locale,
  },
})
if err != nil {
  // handle
}
_ = updated.User
```

    
  
</div>

### CreateUserAndMembership
<div class="sdk-method-section">
  
    
      

      CreateUserAndMembership creates a new user with membership in the organization

      
        Request context
      
      
        Organization ID.
      
      
        User fields.
      
      
        Send invitation email.
      
      
        The created resource.
      

```go wrap showLineNumbers=false
created, err := scalekitClient.User().CreateUserAndMembership(ctx, "org_123", &users.CreateUser{
  Email: "test.user@example.com",
  Metadata: map[string]string{
    "source": "test",
  },
}, true)
if err != nil {
  // handle
}
_ = created.User.Id
```

    
  
</div>

### DeleteUser
<div class="sdk-method-section">
  
    
      

      DeleteUser deletes a user

      
        Request context
      
      
        Scalekit user ID (`usr_...`).
      
      
        error
      

```go wrap showLineNumbers=false
if err := scalekitClient.User().DeleteUser(ctx, "usr_123"); err != nil {
  // handle
}
```

    
  
</div>

### CreateMembership
<div class="sdk-method-section">
  
    
      

      CreateMembership creates a membership for a user in an organization

      
        Request context
      
      
        Organization ID.
      
      
        Scalekit user ID (`usr_...`).
      
      
        Membership.
      
      
        Send invitation email.
      
      
        The created resource.
      

```go wrap showLineNumbers=false
resp, err := scalekitClient.User().CreateMembership(ctx, "org_123", "usr_123", &users.CreateMembership{
  Roles: []*commons.Role{{Name: "admin"}},
  Metadata: map[string]string{
    "membership_type": "test",
  },
}, false)
if err != nil {
  // handle
}
_ = resp.User
```

    
  
</div>

### UpdateMembership
<div class="sdk-method-section">
  
    
      

      UpdateMembership updates a user's membership in an organization

      
        Request context
      
      
        Organization ID.
      
      
        Scalekit user ID (`usr_...`).
      
      
        Membership.
      
      
        The updated resource.
      

```go wrap showLineNumbers=false
resp, err := scalekitClient.User().UpdateMembership(ctx, "org_123", "usr_123", &users.UpdateMembership{
  Roles: []*commons.Role{{Name: "member"}},
})
if err != nil {
  // handle
}
_ = resp.User
```

    
  
</div>

### DeleteMembership
<div class="sdk-method-section">
  
    
      

      DeleteMembership deletes a user's membership from an organization.

      
        Request context
      
      
        Organization ID.
      
      
        Scalekit user ID (`usr_...`).
      
      
        Cascade.
      
      
        error
      

```go wrap showLineNumbers=false
if err := scalekitClient.User().DeleteMembership(ctx, "org_123", "usr_123", false); err != nil {
  // handle
}
```

    
  
</div>

### ResendInvite
<div class="sdk-method-section">
  
    
      

      ResendInvite resends an invitation email to a user who has a pending invitation

      
        Request context
      
      
        Organization ID.
      
      
        Scalekit user ID (`usr_...`).
      
      
        usersv1.ResendInviteResponse
      

```go wrap showLineNumbers=false
resp, err := scalekitClient.User().ResendInvite(ctx, "org_123", "usr_123")
if err != nil {
  // handle
}
_ = resp.Invite
```

    
  
</div>

### GetUserByExternalId
<div class="sdk-method-section">
  
    
      

      GetUserByExternalId retrieves a user by their external ID

      
        Request context
      
      
        External ID.
      
      
        The response payload for this operation.
      

    
  
</div>

### UpdateUserByExternalId
<div class="sdk-method-section">
  
    
      

      UpdateUserByExternalId updates an existing user identified by their external ID

      
        Request context
      
      
        External ID.
      
      
        Update user.
      
      
        The updated resource.
      

    
  
</div>

### DeleteUserByExternalId
<div class="sdk-method-section">
  
    
      

      DeleteUserByExternalId deletes a user identified by their external ID

      
        Request context
      
      
        External ID.
      
      
        error
      

    
  
</div>

### CreateMembershipByExternalId
<div class="sdk-method-section">
  
    
      

      CreateMembershipByExternalId creates a membership for a user (identified by external ID) in an organization

      
        Request context
      
      
        Organization ID.
      
      
        External ID.
      
      
        Membership.
      
      
        Send invitation email.
      
      
        The created resource.
      

    
  
</div>

### UpdateMembershipByExternalId
<div class="sdk-method-section">
  
    
      

      UpdateMembershipByExternalId updates a user's membership (identified by external ID) in an organization

      
        Request context
      
      
        Organization ID.
      
      
        External ID.
      
      
        Membership.
      
      
        The updated resource.
      

    
  
</div>

### DeleteMembershipByExternalId
<div class="sdk-method-section">
  
    
      

      DeleteMembershipByExternalId deletes a user's membership (identified by external ID) from an organization.

      
        Request context
      
      
        Organization ID.
      
      
        External ID.
      
      
        Cascade.
      
      
        error
      

    
  
</div>

### ListUserRoles
<div class="sdk-method-section">
  
    
      

      ListUserRoles returns all roles assigned to the specified user within the given organization

      
        Request context
      
      
        Organization ID.
      
      
        Scalekit user ID (`usr_...`).
      
      
        Paginated results.
      

    
  
</div>

### ListUserPermissions
<div class="sdk-method-section">
  
    
      

      ListUserPermissions returns all permissions granted to the specified user within the given organization

      
        Request context
      
      
        Organization ID.
      
      
        Scalekit user ID (`usr_...`).
      
      
        Paginated results.
      

    
  
</div>

</div>


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
