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
Authenticators
public IAuthenticatorsClient Authenticators { get; }
Property Value
ConnectedAccounts
public IConnectedAccountsClient ConnectedAccounts { get; }
Property Value
EffectivePermissions
public IEffectivePermissionsClient EffectivePermissions { get; }
Property Value
EffectiveRoles
public IEffectiveRolesClient EffectiveRoles { get; }
Property Value
Enrollments
public IEnrollmentsClient Enrollments { get; }
Property Value
Groups
public IGroupsClient Groups { get; }
Property Value
Identities
public IIdentitiesClient Identities { get; }
Property Value
Logs
public ILogsClient Logs { get; }
Property Value
Multifactor
public IMultifactorClient Multifactor { get; }
Property Value
Organizations
public IOrganizationsClient Organizations { get; }
Property Value
Permissions
public IPermissionsClient Permissions { get; }
Property Value
RefreshToken
public IRefreshTokenClient RefreshToken { get; }
Property Value
RiskAssessments
public IRiskAssessmentsClient RiskAssessments { get; }
Property Value
Roles
public IRolesClient Roles { get; }
Property Value
Sessions
public ISessionsClient Sessions { get; }
Property Value
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
requestCreateUserRequestContentoptionsRequestOptionscancellationTokenCancellationToken
Returns
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
idstringoptionsRequestOptionscancellationTokenCancellationToken
Returns
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
idstringrequestGetUserRequestParametersoptionsRequestOptionscancellationTokenCancellationToken
Returns
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
requestListUsersRequestParametersoptionsRequestOptionscancellationTokenCancellationToken
Returns
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
requestListUsersByEmailRequestParametersoptionsRequestOptionscancellationTokenCancellationToken
Returns
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
idstringoptionsRequestOptionscancellationTokenCancellationToken
Returns
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
idstringrequestRevokeUserAccessRequestContentoptionsRequestOptionscancellationTokenCancellationToken
Returns
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_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_metadataandapp_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,usernameorpasswordof a secondary identity, you need to specify theconnectionproperty too. - If you are updating
emailorphone_numberyou can specify, optionally, theclient_idproperty. - Updating
email_verifiedis not supported for enterprise and passwordless sms connections. - Updating the
blockedtofalsedoes 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
nullas 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
idstringrequestUpdateUserRequestContentoptionsRequestOptionscancellationTokenCancellationToken
Returns
Examples
await client.Users.UpdateAsync("id", new UpdateUserRequestContent());