Class UserApi
- Namespace
- Cloudflare.NET.User
- Assembly
- Cloudflare.NET.dll
Implements the API for managing the authenticated Cloudflare user's profile.
All operations affect only the currently authenticated user (self-only access).
public class UserApi : ApiResource, IUserApi
- Inheritance
-
UserApi
- Implements
- Inherited Members
Constructors
UserApi(HttpClient, ILoggerFactory)
Initializes a new instance of the UserApi class.
public UserApi(HttpClient httpClient, ILoggerFactory loggerFactory)
Parameters
httpClientHttpClientThe HttpClient for making requests.
loggerFactoryILoggerFactoryThe factory to create loggers for this resource.
Methods
DeleteMembershipAsync(string, CancellationToken)
Deletes a membership (leave an account).
Warning: This removes the user's access to the account. To regain access, a new invitation must be sent by the account admin.
public Task DeleteMembershipAsync(string membershipId, CancellationToken cancellationToken = default)
Parameters
membershipIdstringThe membership identifier.
cancellationTokenCancellationTokenA cancellation token.
Returns
Examples
// Leave an account
await client.User.DeleteMembershipAsync(membershipId);
Remarks
Preview: This operation has limited test coverage.
Exceptions
- ArgumentException
Thrown when
membershipIdis null or whitespace.- HttpRequestException
Thrown when the API returns an HTTP error status code (404 if not found).
- CloudflareApiException
Thrown when the API returns a non-success response.
- See Also
EditUserAsync(EditUserRequest, CancellationToken)
Edits the authenticated user's profile.
Only the fields provided in the request will be updated. Fields set to null are not modified.
public Task<User> EditUserAsync(EditUserRequest request, CancellationToken cancellationToken = default)
Parameters
requestEditUserRequestThe fields to update.
cancellationTokenCancellationTokenA cancellation token.
Returns
Examples
// Update only first and last name
var updated = await client.User.EditUserAsync(
new EditUserRequest(
FirstName: "John",
LastName: "Doe"));
// Update all editable fields
var updated = await client.User.EditUserAsync(
new EditUserRequest(
FirstName: "John",
LastName: "Doe",
Country: "US",
Telephone: "+1-555-555-5555",
Zipcode: "12345"));
Remarks
Only the following fields can be edited: FirstName, LastName, Country, Telephone, and Zipcode. Email, 2FA settings, and suspension status are managed through separate Cloudflare flows.
- See Also
GetInvitationAsync(string, CancellationToken)
Gets details for a specific invitation.
public Task<UserInvitation> GetInvitationAsync(string invitationId, CancellationToken cancellationToken = default)
Parameters
invitationIdstringThe invitation identifier.
cancellationTokenCancellationTokenA cancellation token.
Returns
- Task<UserInvitation>
The invitation details.
Examples
var invitation = await client.User.GetInvitationAsync(invitationId);
Console.WriteLine($"Organization: {invitation.OrganizationName}");
Console.WriteLine($"Roles: {string.Join(", ", invitation.Roles?.Select(r => r.Name) ?? [])}");
Remarks
Preview: This operation has limited test coverage.
Exceptions
- ArgumentException
Thrown when
invitationIdis null or whitespace.- HttpRequestException
Thrown when the API returns an HTTP error status code (404 if not found).
- CloudflareApiException
Thrown when the API returns a non-success response.
- See Also
GetMembershipAsync(string, CancellationToken)
Gets details for a specific membership.
public Task<Membership> GetMembershipAsync(string membershipId, CancellationToken cancellationToken = default)
Parameters
membershipIdstringThe membership identifier.
cancellationTokenCancellationTokenA cancellation token.
Returns
- Task<Membership>
The membership details.
Examples
var membership = await client.User.GetMembershipAsync(membershipId);
Console.WriteLine($"Account: {membership.Account.Name}");
Console.WriteLine($"Status: {membership.Status}");
Console.WriteLine($"API Access: {membership.ApiAccessEnabled}");
Exceptions
- ArgumentException
Thrown when
membershipIdis null or whitespace.- HttpRequestException
Thrown when the API returns an HTTP error status code (404 if not found).
- CloudflareApiException
Thrown when the API returns a non-success response.
- See Also
GetUserAsync(CancellationToken)
Gets the authenticated user's profile.
Returns the full user object including email, name, contact details, security settings, and subscription tier information.
public Task<User> GetUserAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationTokenA cancellation token.
Returns
Examples
var user = await client.User.GetUserAsync();
Console.WriteLine($"Hello, {user.FirstName}!");
Console.WriteLine($"Email: {user.Email}");
Console.WriteLine($"2FA enabled: {user.TwoFactorAuthenticationEnabled}");
- See Also
ListAllMembershipsAsync(ListMembershipsFilters?, CancellationToken)
Lists all memberships, automatically handling pagination.
public IAsyncEnumerable<Membership> ListAllMembershipsAsync(ListMembershipsFilters? filters = null, CancellationToken cancellationToken = default)
Parameters
filtersListMembershipsFiltersOptional filtering options. Pagination parameters are ignored.
cancellationTokenCancellationTokenA cancellation token.
Returns
- IAsyncEnumerable<Membership>
An async enumerable of all memberships.
Examples
await foreach (var membership in client.User.ListAllMembershipsAsync())
{
Console.WriteLine($"Account: {membership.Account.Name} [{membership.Status}]");
}
Exceptions
- HttpRequestException
Thrown when the API returns an HTTP error status code.
- CloudflareApiException
Thrown when the API returns a non-success response.
- See Also
ListInvitationsAsync(CancellationToken)
Lists all pending invitations for the authenticated user.
Returns invitations sent TO the authenticated user from various accounts. Use RespondToInvitationAsync(string, RespondToInvitationRequest, CancellationToken) to accept or reject invitations.
public Task<IReadOnlyList<UserInvitation>> ListInvitationsAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationTokenA cancellation token.
Returns
- Task<IReadOnlyList<UserInvitation>>
All invitations for the authenticated user.
Examples
var invitations = await client.User.ListInvitationsAsync();
foreach (var invite in invitations)
{
Console.WriteLine($"Invitation to: {invite.OrganizationName}");
Console.WriteLine($"Status: {invite.Status}");
Console.WriteLine($"Expires: {invite.ExpiresOn}");
}
Remarks
Preview: This operation has limited test coverage.
Exceptions
- HttpRequestException
Thrown when the API returns an HTTP error status code.
- CloudflareApiException
Thrown when the API returns a non-success response.
- See Also
ListMembershipsAsync(ListMembershipsFilters?, CancellationToken)
Lists all account memberships for the authenticated user.
Memberships represent the accounts the user has access to. Use UpdateMembershipAsync(string, UpdateMembershipRequest, CancellationToken) to accept or reject pending invitations.
public Task<PagePaginatedResult<Membership>> ListMembershipsAsync(ListMembershipsFilters? filters = null, CancellationToken cancellationToken = default)
Parameters
filtersListMembershipsFiltersOptional filtering and pagination options.
cancellationTokenCancellationTokenA cancellation token.
Returns
- Task<PagePaginatedResult<Membership>>
A page of memberships.
Examples
// Get all pending invitations
var pending = await client.User.ListMembershipsAsync(
new ListMembershipsFilters(Status: MemberStatus.Pending));
foreach (var membership in pending.Items)
{
Console.WriteLine($"Invitation from: {membership.Account.Name}");
}
Exceptions
- HttpRequestException
Thrown when the API returns an HTTP error status code.
- CloudflareApiException
Thrown when the API returns a non-success response.
- See Also
RespondToInvitationAsync(string, RespondToInvitationRequest, CancellationToken)
Responds to an invitation (accept or reject).
Warning: This action cannot be undone. Once an invitation is accepted or rejected, its status cannot be changed.
public Task<UserInvitation> RespondToInvitationAsync(string invitationId, RespondToInvitationRequest request, CancellationToken cancellationToken = default)
Parameters
invitationIdstringThe invitation identifier to respond to.
requestRespondToInvitationRequestThe response containing the desired status (accepted or rejected).
cancellationTokenCancellationTokenA cancellation token.
Returns
- Task<UserInvitation>
The updated invitation with the new status.
Examples
// Accept an invitation
var accept = new RespondToInvitationRequest(MemberStatus.Accepted);
var result = await client.User.RespondToInvitationAsync(invitationId, accept);
Console.WriteLine($"Invitation {result.Status}!");
// Reject an invitation
var reject = new RespondToInvitationRequest(MemberStatus.Rejected);
var result = await client.User.RespondToInvitationAsync(invitationId, reject);
Remarks
Preview: This operation has limited test coverage.
Accepting: Upon acceptance, the user becomes a member of the account with the roles specified in the invitation. The new membership will appear in both the User Memberships API and the Account Members API.
Rejecting: The invitation is marked as rejected. The account admin may send a new invitation.
Exceptions
- ArgumentException
Thrown when
invitationIdis null or whitespace.- ArgumentNullException
Thrown when
requestis null.- HttpRequestException
Thrown when the API returns an HTTP error status code (404 if not found).
- CloudflareApiException
Thrown when the invitation is expired, already responded to, or other API error.
- See Also
UpdateMembershipAsync(string, UpdateMembershipRequest, CancellationToken)
Updates a membership status (accept or reject an invitation).
Warning: This action cannot be undone. Once a membership is accepted or rejected, its status cannot be changed (except by leaving the account).
public Task<Membership> UpdateMembershipAsync(string membershipId, UpdateMembershipRequest request, CancellationToken cancellationToken = default)
Parameters
membershipIdstringThe membership identifier.
requestUpdateMembershipRequestThe update parameters containing the new status.
cancellationTokenCancellationTokenA cancellation token.
Returns
- Task<Membership>
The updated membership.
Examples
// Accept an invitation
var accept = new UpdateMembershipRequest(MemberStatus.Accepted);
var result = await client.User.UpdateMembershipAsync(membershipId, accept);
Console.WriteLine($"Membership status: {result.Status}");
// Reject an invitation
var reject = new UpdateMembershipRequest(MemberStatus.Rejected);
var result = await client.User.UpdateMembershipAsync(membershipId, reject);
Remarks
Preview: This operation has limited test coverage.
Accepting: Upon acceptance, the user gains access to the account with the permissions defined in the membership.
Rejecting: The invitation is declined and the user does not gain access. The account admin may send a new invitation.
Exceptions
- ArgumentException
Thrown when
membershipIdis null or whitespace.- ArgumentNullException
Thrown when
requestis null.- HttpRequestException
Thrown when the API returns an HTTP error status code (404 if not found).
- CloudflareApiException
Thrown when the API returns a non-success response.
- See Also