Table of Contents

Class UsersClient

Namespace
Auth0.ManagementApi
Assembly
Auth0.ManagementApi.dll
public class UsersClient : IUsersClient
Inheritance
UsersClient
Implements
Inherited Members
Extension Methods

Properties

AuthenticationMethods

public IAuthenticationMethodsClient AuthenticationMethods { get; }

Property Value

IAuthenticationMethodsClient

Authenticators

public IAuthenticatorsClient Authenticators { get; }

Property Value

IAuthenticatorsClient

ConnectedAccounts

public IConnectedAccountsClient ConnectedAccounts { get; }

Property Value

IConnectedAccountsClient

EffectivePermissions

public IEffectivePermissionsClient EffectivePermissions { get; }

Property Value

IEffectivePermissionsClient

EffectiveRoles

public IEffectiveRolesClient EffectiveRoles { get; }

Property Value

IEffectiveRolesClient

Enrollments

public IEnrollmentsClient Enrollments { get; }

Property Value

IEnrollmentsClient

Groups

public IGroupsClient Groups { get; }

Property Value

IGroupsClient

Identities

public IIdentitiesClient Identities { get; }

Property Value

IIdentitiesClient

Logs

public ILogsClient Logs { get; }

Property Value

ILogsClient

Multifactor

public IMultifactorClient Multifactor { get; }

Property Value

IMultifactorClient

Organizations

public IOrganizationsClient Organizations { get; }

Property Value

IOrganizationsClient

Permissions

public IPermissionsClient Permissions { get; }

Property Value

IPermissionsClient

RefreshToken

public IRefreshTokenClient RefreshToken { get; }

Property Value

IRefreshTokenClient

RiskAssessments

public IRiskAssessmentsClient RiskAssessments { get; }

Property Value

IRiskAssessmentsClient

Roles

public IRolesClient Roles { get; }

Property Value

IRolesClient

Sessions

public ISessionsClient Sessions { get; }

Property Value

ISessionsClient

Methods

CreateAsync(CreateUserRequestContent, RequestOptions?, CancellationToken)

Create a new user for a given database or passwordless connection.

Note: connection is required but other parameters such as email and password are dependent upon the type of connection.

public WithRawResponseTask<CreateUserResponseContent> CreateAsync(CreateUserRequestContent request, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

request CreateUserRequestContent
options RequestOptions
cancellationToken CancellationToken

Returns

WithRawResponseTask<CreateUserResponseContent>

Examples

await client.Users.CreateAsync(new CreateUserRequestContent { Connection = "connection" });

DeleteAsync(string, RequestOptions?, CancellationToken)

Delete a user by user ID. This action cannot be undone. For Auth0 Dashboard instructions, see Delete Users.

public WithRawResponseTask DeleteAsync(string id, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

id string
options RequestOptions
cancellationToken CancellationToken

Returns

WithRawResponseTask

Examples

await client.Users.DeleteAsync("id");

GetAsync(string, GetUserRequestParameters, RequestOptions?, CancellationToken)

Retrieve user details. A list of fields to include or exclude may also be specified. For more information, see Retrieve Users with the Get Users Endpoint.

public WithRawResponseTask<GetUserResponseContent> GetAsync(string id, GetUserRequestParameters request, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

id string
request GetUserRequestParameters
options RequestOptions
cancellationToken CancellationToken

Returns

WithRawResponseTask<GetUserResponseContent>

Examples

await client.Users.GetAsync(
    "id",
    new GetUserRequestParameters { Fields = "fields", IncludeFields = true }
);

ListAsync(ListUsersRequestParameters, RequestOptions?, CancellationToken)

This endpoint retrieves details of users. It's best suited to interactive, best-effort search and lookups where slightly stale results are acceptable. With it, you can:

  • Specify search criteria for users
  • Sort the users to be returned
  • Select the fields to be returned
  • Specify the number of users to retrieve per page and the page index

This endpoint is not suited for use in critical paths. It is eventually consistent and runs under a short (~2 second) query time limit, so results can be stale and heavy queries can return a 503.

  • Do not use this endpoint for authentication, account linking, or logic inside login-flow Actions. Instead, look users up directly by ID or email to get their current state.
  • Do not use this endpoint to keep an external system in sync with user data. Instead, subscribe to Event Streams to receive every change as it happens.
  • Do not use this endpoint to enumerate or export your entire user base. Instead, run a bulk user export to retrieve the full set.

Use the q query parameter to match users with query string syntax. For full instructions and guidance, see How to List and Search Users.

For efficient queries, prefer indexed top-level fields and exact matches. Certain kinds of queries can be slow and may time out, such as filtering on freeform or multi-value fields (like user-defined attributes in app_metadata or user_metadata) or using leading wildcards.

public Task<Pager<UserResponseSchema>> ListAsync(ListUsersRequestParameters request, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

request ListUsersRequestParameters
options RequestOptions
cancellationToken CancellationToken

Returns

Task<Pager<UserResponseSchema>>

Examples

await client.Users.ListAsync(
    new ListUsersRequestParameters
    {
        Page = 1,
        PerPage = 1,
        IncludeTotals = true,
        Sort = "sort",
        Connection = "connection",
        Fields = "fields",
        IncludeFields = true,
        Q = "q",
        SearchEngine = SearchEngineVersionsEnum.V1,
        PrimaryOrder = true,
    }
);

ListUsersByEmailAsync(ListUsersByEmailRequestParameters, RequestOptions?, CancellationToken)

Find users by email. If Auth0 is the identity provider (idP), the email address associated with a user is saved in lower case, regardless of how you initially provided it.

For example, if you register a user as JohnSmith@example.com, Auth0 saves the user's email as johnsmith@example.com.

Therefore, when using this endpoint, make sure that you are searching for users via email addresses using the correct case.

public WithRawResponseTask<IEnumerable<UserResponseSchema>> ListUsersByEmailAsync(ListUsersByEmailRequestParameters request, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

request ListUsersByEmailRequestParameters
options RequestOptions
cancellationToken CancellationToken

Returns

WithRawResponseTask<IEnumerable<UserResponseSchema>>

Examples

await client.Users.ListUsersByEmailAsync(
    new ListUsersByEmailRequestParameters
    {
        Fields = "fields",
        IncludeFields = true,
        Email = "email",
    }
);

RegenerateRecoveryCodeAsync(string, RequestOptions?, CancellationToken)

Remove an existing multi-factor authentication (MFA) recovery code and generate a new one. If a user cannot access the original device or account used for MFA enrollment, they can use a recovery code to authenticate.

public WithRawResponseTask<RegenerateUsersRecoveryCodeResponseContent> RegenerateRecoveryCodeAsync(string id, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

id string
options RequestOptions
cancellationToken CancellationToken

Returns

WithRawResponseTask<RegenerateUsersRecoveryCodeResponseContent>

Examples

await client.Users.RegenerateRecoveryCodeAsync("id");

RevokeAccessAsync(string, RevokeUserAccessRequestContent, RequestOptions?, CancellationToken)

Revokes selected resources related to a user (sessions, refresh tokens, ...).

public WithRawResponseTask RevokeAccessAsync(string id, RevokeUserAccessRequestContent request, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

id string
request RevokeUserAccessRequestContent
options RequestOptions
cancellationToken CancellationToken

Returns

WithRawResponseTask

Examples

await client.Users.RevokeAccessAsync("id", new RevokeUserAccessRequestContent());

UpdateAsync(string, UpdateUserRequestContent, RequestOptions?, CancellationToken)

Update a user.

These are the attributes that can be updated at the root level:

  • app_metadata
  • blocked
  • email
  • email_verified
  • family_name
  • given_name
  • name
  • nickname
  • password
  • phone_number
  • phone_verified
  • picture
  • username
  • user_metadata
  • verify_email

Some considerations:

  • The properties of the new object will replace the old ones.
  • The metadata fields are an exception to this rule (user_metadata and app_metadata). These properties are merged instead of being replaced but be careful, the merge only occurs on the first level.
  • If you are updating email, email_verified, phone_number, phone_verified, username or password of a secondary identity, you need to specify the connection property too.
  • If you are updating email or phone_number you can specify, optionally, the client_id property.
  • Updating email_verified is not supported for enterprise and passwordless sms connections.
  • Updating the blocked to false does not affect the user's blocked state from an excessive amount of incorrectly provided credentials. Use the "Unblock a user" endpoint from the "User Blocks" API to change the user's state.
  • Supported attributes can be unset by supplying null as the value.

Updating a field (non-metadata property)

To mark the email address of a user as verified, the body to send should be:

{ "email_verified": true }

Updating a user metadata root property

Let's assume that our test user has the following user_metadata:

{ "user_metadata" : { "profileCode": 1479 } }

To add the field addresses the body to send should be:

{ "user_metadata" : { "addresses": {"work_address": "100 Industrial Way"} }}

The modified object ends up with the following user_metadata property:

{
  "user_metadata": {
    "profileCode": 1479,
    "addresses": { "work_address": "100 Industrial Way" }
  }
}

Updating an inner user metadata property

If there's existing user metadata to which we want to add "home_address": "742 Evergreen Terrace" (using the addresses property) we should send the whole addresses object. Since this is a first-level object, the object will be merged in, but its own properties will not be. The body to send should be:

{
  "user_metadata": {
    "addresses": {
      "work_address": "100 Industrial Way",
      "home_address": "742 Evergreen Terrace"
    }
  }
}

The modified object ends up with the following user_metadata property:

{
  "user_metadata": {
    "profileCode": 1479,
    "addresses": {
      "work_address": "100 Industrial Way",
      "home_address": "742 Evergreen Terrace"
    }
  }
}
public WithRawResponseTask<UpdateUserResponseContent> UpdateAsync(string id, UpdateUserRequestContent request, RequestOptions? options = null, CancellationToken cancellationToken = default)

Parameters

id string
request UpdateUserRequestContent
options RequestOptions
cancellationToken CancellationToken

Returns

WithRawResponseTask<UpdateUserResponseContent>

Examples

await client.Users.UpdateAsync("id", new UpdateUserRequestContent());