Table of Contents

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

httpClient HttpClient

The HttpClient for making requests.

loggerFactory ILoggerFactory

The 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

membershipId string

The membership identifier.

cancellationToken CancellationToken

A cancellation token.

Returns

Task

Examples

// Leave an account
await client.User.DeleteMembershipAsync(membershipId);

Remarks

Preview: This operation has limited test coverage.

Exceptions

ArgumentException

Thrown when membershipId is 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

request EditUserRequest

The fields to update.

cancellationToken CancellationToken

A cancellation token.

Returns

Task<User>

The updated user profile.

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

invitationId string

The invitation identifier.

cancellationToken CancellationToken

A 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 invitationId is 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

membershipId string

The membership identifier.

cancellationToken CancellationToken

A 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 membershipId is 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

cancellationToken CancellationToken

A cancellation token.

Returns

Task<User>

The user's profile.

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

filters ListMembershipsFilters

Optional filtering options. Pagination parameters are ignored.

cancellationToken CancellationToken

A 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

cancellationToken CancellationToken

A 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

filters ListMembershipsFilters

Optional filtering and pagination options.

cancellationToken CancellationToken

A 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

invitationId string

The invitation identifier to respond to.

request RespondToInvitationRequest

The response containing the desired status (accepted or rejected).

cancellationToken CancellationToken

A 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 invitationId is null or whitespace.

ArgumentNullException

Thrown when request is 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

membershipId string

The membership identifier.

request UpdateMembershipRequest

The update parameters containing the new status.

cancellationToken CancellationToken

A 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 membershipId is null or whitespace.

ArgumentNullException

Thrown when request is 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