# Memberships ## List Memberships `client.memberships.list(MembershipListParamsquery?, RequestOptionsoptions?): V4PagePaginationArray` **get** `/memberships` List memberships of accounts the user can access. ### Parameters - `query: MembershipListParams` - `account?: Account` - `name?: string` Account name - `direction?: "asc" | "desc"` Direction to order memberships. - `"asc"` - `"desc"` - `name?: string` Account name - `order?: "id" | "account.name" | "status"` Field to order memberships by. - `"id"` - `"account.name"` - `"status"` - `page?: number` Page number of paginated results. - `per_page?: number` Number of memberships per page. - `status?: "accepted" | "pending" | "rejected"` Status of this membership. - `"accepted"` - `"pending"` - `"rejected"` ### Returns - `Membership` - `id?: string` Membership identifier tag. - `account?: Account` - `id: string` Identifier - `name: string` Account name - `type: "standard" | "enterprise"` - `"standard"` - `"enterprise"` - `created_on?: string` Timestamp for the creation of the account - `managed_by?: ManagedBy` Parent container details - `parent_org_id?: string` ID of the parent Organization, if one exists - `parent_org_name?: string` Name of the parent Organization, if one exists - `settings?: Settings` Account settings - `abuse_contact_email?: string` Sets an abuse contact email to notify for abuse reports. - `enforce_twofactor?: boolean` Indicates whether membership in this account requires that Two-Factor Authentication is enabled - `api_access_enabled?: boolean | null` Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. - `permissions?: Permissions` All access permissions for the user at the account. - `analytics?: PermissionGrant` - `read?: boolean` - `write?: boolean` - `billing?: PermissionGrant` - `cache_purge?: PermissionGrant` - `dns?: PermissionGrant` - `dns_records?: PermissionGrant` - `lb?: PermissionGrant` - `logs?: PermissionGrant` - `organization?: PermissionGrant` - `ssl?: PermissionGrant` - `waf?: PermissionGrant` - `zone_settings?: PermissionGrant` - `zones?: PermissionGrant` - `roles?: Array` List of role names the membership has for this account. - `status?: "accepted" | "pending" | "rejected"` Status of this membership. - `"accepted"` - `"pending"` - `"rejected"` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); // Automatically fetches more pages as needed. for await (const membership of client.memberships.list()) { console.log(membership.id); } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "4536bcfad5faccb111b47003c79917fa", "account": { "id": "023e105f4ecef8ad9ca31a8372d0c353", "name": "Demo Account", "type": "standard", "created_on": "2014-03-01T12:21:02.0000Z", "managed_by": { "parent_org_id": "4536bcfad5faccb111b47003c79917fa", "parent_org_name": "Demo Parent Organization" }, "settings": { "abuse_contact_email": "abuse_contact_email", "enforce_twofactor": true } }, "api_access_enabled": true, "permissions": { "analytics": { "read": true, "write": false }, "billing": { "read": true, "write": false }, "cache_purge": { "read": true, "write": false }, "dns": { "read": true, "write": false }, "dns_records": { "read": true, "write": false }, "lb": { "read": true, "write": false }, "logs": { "read": true, "write": false }, "organization": { "read": true, "write": false }, "ssl": { "read": true, "write": false }, "waf": { "read": true, "write": false }, "zone_settings": { "read": true, "write": false }, "zones": { "read": true, "write": true } }, "roles": [ "Account Administrator" ], "status": "accepted" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Membership Details `client.memberships.get(stringmembershipId, RequestOptionsoptions?): MembershipGetResponse` **get** `/memberships/{membership_id}` Get a specific membership. ### Parameters - `membershipId: string` Membership identifier tag. ### Returns - `MembershipGetResponse` - `id?: string` Membership identifier tag. - `account?: Account` - `id: string` Identifier - `name: string` Account name - `type: "standard" | "enterprise"` - `"standard"` - `"enterprise"` - `created_on?: string` Timestamp for the creation of the account - `managed_by?: ManagedBy` Parent container details - `parent_org_id?: string` ID of the parent Organization, if one exists - `parent_org_name?: string` Name of the parent Organization, if one exists - `settings?: Settings` Account settings - `abuse_contact_email?: string` Sets an abuse contact email to notify for abuse reports. - `enforce_twofactor?: boolean` Indicates whether membership in this account requires that Two-Factor Authentication is enabled - `api_access_enabled?: boolean | null` Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. - `permissions?: Permissions` All access permissions for the user at the account. - `analytics?: PermissionGrant` - `read?: boolean` - `write?: boolean` - `billing?: PermissionGrant` - `cache_purge?: PermissionGrant` - `dns?: PermissionGrant` - `dns_records?: PermissionGrant` - `lb?: PermissionGrant` - `logs?: PermissionGrant` - `organization?: PermissionGrant` - `ssl?: PermissionGrant` - `waf?: PermissionGrant` - `zone_settings?: PermissionGrant` - `zones?: PermissionGrant` - `policies?: Array` Access policy for the membership - `id?: string` Policy identifier. - `access?: "allow" | "deny"` Allow or deny operations against the resources. - `"allow"` - `"deny"` - `permission_groups?: Array` A set of permission groups that are specified to the policy. - `id: string` Identifier of the permission group. - `meta?: Meta` Attributes associated to the permission group. - `key?: string` - `value?: string` - `name?: string` Name of the permission group. - `resource_groups?: Array` A list of resource groups that the policy applies to. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. - `roles?: Array` List of role names the membership has for this account. - `status?: "accepted" | "pending" | "rejected"` Status of this membership. - `"accepted"` - `"pending"` - `"rejected"` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const membership = await client.memberships.get('4536bcfad5faccb111b47003c79917fa'); console.log(membership.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "4536bcfad5faccb111b47003c79917fa", "account": { "id": "023e105f4ecef8ad9ca31a8372d0c353", "name": "Demo Account", "type": "standard", "created_on": "2014-03-01T12:21:02.0000Z", "managed_by": { "parent_org_id": "4536bcfad5faccb111b47003c79917fa", "parent_org_name": "Demo Parent Organization" }, "settings": { "abuse_contact_email": "abuse_contact_email", "enforce_twofactor": true } }, "api_access_enabled": true, "permissions": { "analytics": { "read": true, "write": false }, "billing": { "read": true, "write": false }, "cache_purge": { "read": true, "write": false }, "dns": { "read": true, "write": false }, "dns_records": { "read": true, "write": false }, "lb": { "read": true, "write": false }, "logs": { "read": true, "write": false }, "organization": { "read": true, "write": false }, "ssl": { "read": true, "write": false }, "waf": { "read": true, "write": false }, "zone_settings": { "read": true, "write": false }, "zones": { "read": true, "write": true } }, "policies": [ { "id": "f267e341f3dd4697bd3b9f71dd96247f", "access": "allow", "permission_groups": [ { "id": "c8fed203ed3043cba015a93ad1616f1f", "meta": { "key": "key", "value": "value" }, "name": "Zone Read" }, { "id": "82e64a83756745bbbb1c9c2701bf816b", "meta": { "key": "key", "value": "value" }, "name": "Magic Network Monitoring" } ], "resource_groups": [ { "id": "6d7f2f5f5b1d4a0e9081fdc98d432fd1", "scope": [ { "key": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4", "objects": [ { "key": "com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5" } ] } ], "meta": { "key": "key", "value": "value" }, "name": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4" } ] } ], "roles": [ "Account Administrator" ], "status": "accepted" } } ``` ## Update Membership `client.memberships.update(stringmembershipId, MembershipUpdateParamsbody, RequestOptionsoptions?): MembershipUpdateResponse` **put** `/memberships/{membership_id}` Accept or reject this account invitation. ### Parameters - `membershipId: string` Membership identifier tag. - `body: MembershipUpdateParams` - `status: "accepted" | "rejected"` Whether to accept or reject this account invitation. - `"accepted"` - `"rejected"` ### Returns - `MembershipUpdateResponse` - `id?: string` Membership identifier tag. - `account?: Account` - `id: string` Identifier - `name: string` Account name - `type: "standard" | "enterprise"` - `"standard"` - `"enterprise"` - `created_on?: string` Timestamp for the creation of the account - `managed_by?: ManagedBy` Parent container details - `parent_org_id?: string` ID of the parent Organization, if one exists - `parent_org_name?: string` Name of the parent Organization, if one exists - `settings?: Settings` Account settings - `abuse_contact_email?: string` Sets an abuse contact email to notify for abuse reports. - `enforce_twofactor?: boolean` Indicates whether membership in this account requires that Two-Factor Authentication is enabled - `api_access_enabled?: boolean | null` Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. - `permissions?: Permissions` All access permissions for the user at the account. - `analytics?: PermissionGrant` - `read?: boolean` - `write?: boolean` - `billing?: PermissionGrant` - `cache_purge?: PermissionGrant` - `dns?: PermissionGrant` - `dns_records?: PermissionGrant` - `lb?: PermissionGrant` - `logs?: PermissionGrant` - `organization?: PermissionGrant` - `ssl?: PermissionGrant` - `waf?: PermissionGrant` - `zone_settings?: PermissionGrant` - `zones?: PermissionGrant` - `policies?: Array` Access policy for the membership - `id?: string` Policy identifier. - `access?: "allow" | "deny"` Allow or deny operations against the resources. - `"allow"` - `"deny"` - `permission_groups?: Array` A set of permission groups that are specified to the policy. - `id: string` Identifier of the permission group. - `meta?: Meta` Attributes associated to the permission group. - `key?: string` - `value?: string` - `name?: string` Name of the permission group. - `resource_groups?: Array` A list of resource groups that the policy applies to. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. - `roles?: Array` List of role names the membership has for this account. - `status?: "accepted" | "pending" | "rejected"` Status of this membership. - `"accepted"` - `"pending"` - `"rejected"` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const membership = await client.memberships.update('4536bcfad5faccb111b47003c79917fa', { status: 'accepted', }); console.log(membership.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "4536bcfad5faccb111b47003c79917fa", "account": { "id": "023e105f4ecef8ad9ca31a8372d0c353", "name": "Demo Account", "type": "standard", "created_on": "2014-03-01T12:21:02.0000Z", "managed_by": { "parent_org_id": "4536bcfad5faccb111b47003c79917fa", "parent_org_name": "Demo Parent Organization" }, "settings": { "abuse_contact_email": "abuse_contact_email", "enforce_twofactor": true } }, "api_access_enabled": true, "permissions": { "analytics": { "read": true, "write": false }, "billing": { "read": true, "write": false }, "cache_purge": { "read": true, "write": false }, "dns": { "read": true, "write": false }, "dns_records": { "read": true, "write": false }, "lb": { "read": true, "write": false }, "logs": { "read": true, "write": false }, "organization": { "read": true, "write": false }, "ssl": { "read": true, "write": false }, "waf": { "read": true, "write": false }, "zone_settings": { "read": true, "write": false }, "zones": { "read": true, "write": true } }, "policies": [ { "id": "f267e341f3dd4697bd3b9f71dd96247f", "access": "allow", "permission_groups": [ { "id": "c8fed203ed3043cba015a93ad1616f1f", "meta": { "key": "key", "value": "value" }, "name": "Zone Read" }, { "id": "82e64a83756745bbbb1c9c2701bf816b", "meta": { "key": "key", "value": "value" }, "name": "Magic Network Monitoring" } ], "resource_groups": [ { "id": "6d7f2f5f5b1d4a0e9081fdc98d432fd1", "scope": [ { "key": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4", "objects": [ { "key": "com.cloudflare.api.account.zone.23f8d65290b24279ba6f44721b3eaad5" } ] } ], "meta": { "key": "key", "value": "value" }, "name": "com.cloudflare.api.account.eb78d65290b24279ba6f44721b3ea3c4" } ] } ], "roles": [ "Account Administrator" ], "status": "accepted" } } ``` ## Delete Membership `client.memberships.delete(stringmembershipId, RequestOptionsoptions?): MembershipDeleteResponse` **delete** `/memberships/{membership_id}` Remove the associated member from an account. ### Parameters - `membershipId: string` Membership identifier tag. ### Returns - `MembershipDeleteResponse` - `id?: string` Membership identifier tag. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted }); const membership = await client.memberships.delete('4536bcfad5faccb111b47003c79917fa'); console.log(membership.id); ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "4536bcfad5faccb111b47003c79917fa" } } ``` ## Domain Types ### Membership - `Membership` - `id?: string` Membership identifier tag. - `account?: Account` - `id: string` Identifier - `name: string` Account name - `type: "standard" | "enterprise"` - `"standard"` - `"enterprise"` - `created_on?: string` Timestamp for the creation of the account - `managed_by?: ManagedBy` Parent container details - `parent_org_id?: string` ID of the parent Organization, if one exists - `parent_org_name?: string` Name of the parent Organization, if one exists - `settings?: Settings` Account settings - `abuse_contact_email?: string` Sets an abuse contact email to notify for abuse reports. - `enforce_twofactor?: boolean` Indicates whether membership in this account requires that Two-Factor Authentication is enabled - `api_access_enabled?: boolean | null` Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. - `permissions?: Permissions` All access permissions for the user at the account. - `analytics?: PermissionGrant` - `read?: boolean` - `write?: boolean` - `billing?: PermissionGrant` - `cache_purge?: PermissionGrant` - `dns?: PermissionGrant` - `dns_records?: PermissionGrant` - `lb?: PermissionGrant` - `logs?: PermissionGrant` - `organization?: PermissionGrant` - `ssl?: PermissionGrant` - `waf?: PermissionGrant` - `zone_settings?: PermissionGrant` - `zones?: PermissionGrant` - `roles?: Array` List of role names the membership has for this account. - `status?: "accepted" | "pending" | "rejected"` Status of this membership. - `"accepted"` - `"pending"` - `"rejected"` ### Membership Get Response - `MembershipGetResponse` - `id?: string` Membership identifier tag. - `account?: Account` - `id: string` Identifier - `name: string` Account name - `type: "standard" | "enterprise"` - `"standard"` - `"enterprise"` - `created_on?: string` Timestamp for the creation of the account - `managed_by?: ManagedBy` Parent container details - `parent_org_id?: string` ID of the parent Organization, if one exists - `parent_org_name?: string` Name of the parent Organization, if one exists - `settings?: Settings` Account settings - `abuse_contact_email?: string` Sets an abuse contact email to notify for abuse reports. - `enforce_twofactor?: boolean` Indicates whether membership in this account requires that Two-Factor Authentication is enabled - `api_access_enabled?: boolean | null` Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. - `permissions?: Permissions` All access permissions for the user at the account. - `analytics?: PermissionGrant` - `read?: boolean` - `write?: boolean` - `billing?: PermissionGrant` - `cache_purge?: PermissionGrant` - `dns?: PermissionGrant` - `dns_records?: PermissionGrant` - `lb?: PermissionGrant` - `logs?: PermissionGrant` - `organization?: PermissionGrant` - `ssl?: PermissionGrant` - `waf?: PermissionGrant` - `zone_settings?: PermissionGrant` - `zones?: PermissionGrant` - `policies?: Array` Access policy for the membership - `id?: string` Policy identifier. - `access?: "allow" | "deny"` Allow or deny operations against the resources. - `"allow"` - `"deny"` - `permission_groups?: Array` A set of permission groups that are specified to the policy. - `id: string` Identifier of the permission group. - `meta?: Meta` Attributes associated to the permission group. - `key?: string` - `value?: string` - `name?: string` Name of the permission group. - `resource_groups?: Array` A list of resource groups that the policy applies to. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. - `roles?: Array` List of role names the membership has for this account. - `status?: "accepted" | "pending" | "rejected"` Status of this membership. - `"accepted"` - `"pending"` - `"rejected"` ### Membership Update Response - `MembershipUpdateResponse` - `id?: string` Membership identifier tag. - `account?: Account` - `id: string` Identifier - `name: string` Account name - `type: "standard" | "enterprise"` - `"standard"` - `"enterprise"` - `created_on?: string` Timestamp for the creation of the account - `managed_by?: ManagedBy` Parent container details - `parent_org_id?: string` ID of the parent Organization, if one exists - `parent_org_name?: string` Name of the parent Organization, if one exists - `settings?: Settings` Account settings - `abuse_contact_email?: string` Sets an abuse contact email to notify for abuse reports. - `enforce_twofactor?: boolean` Indicates whether membership in this account requires that Two-Factor Authentication is enabled - `api_access_enabled?: boolean | null` Enterprise only. Indicates whether or not API access is enabled specifically for this user on a given account. - `permissions?: Permissions` All access permissions for the user at the account. - `analytics?: PermissionGrant` - `read?: boolean` - `write?: boolean` - `billing?: PermissionGrant` - `cache_purge?: PermissionGrant` - `dns?: PermissionGrant` - `dns_records?: PermissionGrant` - `lb?: PermissionGrant` - `logs?: PermissionGrant` - `organization?: PermissionGrant` - `ssl?: PermissionGrant` - `waf?: PermissionGrant` - `zone_settings?: PermissionGrant` - `zones?: PermissionGrant` - `policies?: Array` Access policy for the membership - `id?: string` Policy identifier. - `access?: "allow" | "deny"` Allow or deny operations against the resources. - `"allow"` - `"deny"` - `permission_groups?: Array` A set of permission groups that are specified to the policy. - `id: string` Identifier of the permission group. - `meta?: Meta` Attributes associated to the permission group. - `key?: string` - `value?: string` - `name?: string` Name of the permission group. - `resource_groups?: Array` A list of resource groups that the policy applies to. - `id: string` Identifier of the resource group. - `scope: Array` The scope associated to the resource group - `key: string` This is a combination of pre-defined resource name and identifier (like Account ID etc.) - `objects: Array` A list of scope objects for additional context. - `key: string` This is a combination of pre-defined resource name and identifier (like Zone ID etc.) - `meta?: Meta` Attributes associated to the resource group. - `key?: string` - `value?: string` - `name?: string` Name of the resource group. - `roles?: Array` List of role names the membership has for this account. - `status?: "accepted" | "pending" | "rejected"` Status of this membership. - `"accepted"` - `"pending"` - `"rejected"` ### Membership Delete Response - `MembershipDeleteResponse` - `id?: string` Membership identifier tag.