API Coverage
This document provides a comprehensive overview of the Cloudflare API endpoints supported by the SDK.
Summary
| Category | Endpoints | Description |
| Accounts | 5 | Account CRUD and settings management |
| Account Members | 5 | Invite, update, and remove account members |
| Account Roles | 2 | List and retrieve account-level roles |
| Account Security | 2 | Account-scoped IP rules and WAF rulesets |
| Audit Logs | 2 | Query account and user activity logs |
| API Tokens | 8 | Create, verify, and manage API tokens |
| DNS Records | 12 | Full DNS lifecycle including batch and BIND import/export |
| R2 Buckets | 22 | Bucket management, CORS, lifecycle, domains, and Sippy |
| Workers KV | 19 | Namespace and key-value CRUD, metadata, bulk operations |
| D1 Databases | 11 | Database CRUD, SQL queries, export/import operations |
| Subscriptions | 6 | Account, zone, and user subscription details |
| Turnstile | 5 | CAPTCHA widget configuration and secret rotation |
| User | 11 | Profile, invitations, and membership management |
| Workers (Routes) | 4 | Zone-level Workers route management |
| Zones | 18 | Zone CRUD, holds, settings, and cache purge |
| Zone Security | 4 | Zone-scoped firewall, lockdown, UA rules, and rulesets |
| Extension Packages | 2 | R2 S3-compatible client and GraphQL analytics |
Accounts API
Account Management
| Operation | Method | Endpoint | Status |
| List Accounts | ListAccountsAsync | GET /accounts | ✅ |
| List All Accounts | ListAllAccountsAsync | GET /accounts (auto) | ✅ |
| Get Account | GetAccountAsync | GET /accounts/{id} | ✅ |
| Create Account | CreateAccountAsync | POST /accounts | ✅ |
| Update Account | UpdateAccountAsync | PUT /accounts/{id} | ✅ |
| Delete Account | DeleteAccountAsync | DELETE /accounts/{id} | ✅ |
Account Members
| Operation | Method | Endpoint | Status |
| List Members | ListAccountMembersAsync | GET /accounts/{id}/members | ✅ |
| List All Members | ListAllAccountMembersAsync | GET /accounts/{id}/members (auto) | ✅ |
| Get Member | GetAccountMemberAsync | GET /accounts/{id}/members/{member_id} | ✅ |
| Create Member | CreateAccountMemberAsync | POST /accounts/{id}/members | ✅ |
| Update Member | UpdateAccountMemberAsync | PUT /accounts/{id}/members/{member_id} | ✅ |
| Delete Member | DeleteAccountMemberAsync | DELETE /accounts/{id}/members/{member_id} | ✅ |
Account Roles
| Operation | Method | Endpoint | Status |
| List Roles | ListAccountRolesAsync | GET /accounts/{id}/roles | ✅ |
| List All Roles | ListAllAccountRolesAsync | GET /accounts/{id}/roles (auto) | ✅ |
| Get Role | GetAccountRoleAsync | GET /accounts/{id}/roles/{id} | ✅ |
Account Security
| Operation | Method | Endpoint | Status |
| IP Access Rules | Accounts.AccessRules.* | /accounts/{id}/firewall/access_rules/rules | ✅ |
| Rulesets (WAF) | Accounts.Rulesets.* | /accounts/{id}/rulesets | ✅ |
API Tokens
| Operation | Method | Endpoint | Status |
| List Account Tokens | ListAccountTokensAsync | GET /accounts/{id}/tokens | ✅ |
| Get Account Token | GetAccountTokenAsync | GET /accounts/{id}/tokens/{token_id} | ✅ |
| Create Account Token | CreateAccountTokenAsync | POST /accounts/{id}/tokens | ✅ |
| Update Account Token | UpdateAccountTokenAsync | PUT /accounts/{id}/tokens/{token_id} | ✅ |
| Delete Account Token | DeleteAccountTokenAsync | DELETE /accounts/{id}/tokens/{token_id} | ✅ |
| Verify Token | VerifyTokenAsync | GET /user/tokens/verify | ✅ |
| List User Tokens | ListUserTokensAsync | GET /user/tokens | ✅ |
| List Permission Groups | ListPermissionGroupsAsync | GET /accounts/{id}/tokens/permission_groups | ✅ |
Audit Logs
| Operation | Method | Endpoint | Status |
| Get Account Logs | GetAccountAuditLogsAsync | GET /accounts/{id}/audit_logs | ✅ |
| Get User Logs | GetUserAuditLogsAsync | GET /user/audit_logs | ✅ |
DNS Records
| Operation | Method | Endpoint | Status |
| Get Record | GetDnsRecordAsync | GET /zones/{id}/dns_records/{record_id} | ✅ |
| List Records | ListDnsRecordsAsync | GET /zones/{id}/dns_records | ✅ |
| List All Records | ListAllDnsRecordsAsync | GET /zones/{id}/dns_records (auto) | ✅ |
| Find by Name | FindDnsRecordByNameAsync | GET /zones/{id}/dns_records?name=... | ✅ |
| Create Record | CreateDnsRecordAsync | POST /zones/{id}/dns_records | ✅ |
| Create CNAME | CreateCnameRecordAsync | POST /zones/{id}/dns_records | ✅ |
| Update Record | UpdateDnsRecordAsync | PUT /zones/{id}/dns_records/{record_id} | ✅ |
| Patch Record | PatchDnsRecordAsync | PATCH /zones/{id}/dns_records/{record_id} | ✅ |
| Delete Record | DeleteDnsRecordAsync | DELETE /zones/{id}/dns_records/{record_id} | ✅ |
| Batch Operations | BatchDnsRecordsAsync | POST /zones/{id}/dns_records/batch | ✅ |
| Export (BIND) | ExportDnsRecordsAsync | GET /zones/{id}/dns_records/export | ✅ |
| Import (BIND) | ImportDnsRecordsAsync | POST /zones/{id}/dns_records/import | ✅ |
| Trigger Scan | TriggerDnsRecordScanAsync | POST /zones/{id}/dns_records/scan | ✅ |
| Get Scan Review | GetDnsRecordScanReviewAsync | GET /zones/{id}/dns_records/scan | ✅ |
| Submit Review | SubmitDnsRecordScanReviewAsync | POST /zones/{id}/dns_records/scan/review | ✅ |
R2 Buckets
Core Operations
| Operation | Method | Endpoint | Status |
| Create Bucket | Buckets.CreateAsync | POST /accounts/{id}/r2/buckets | ✅ |
| Get Bucket | Buckets.GetAsync | GET /accounts/{id}/r2/buckets/{name} | ✅ |
| List Buckets | Buckets.ListAsync | GET /accounts/{id}/r2/buckets | ✅ |
| List All Buckets | Buckets.ListAllAsync | GET /accounts/{id}/r2/buckets (auto) | ✅ |
| Delete Bucket | Buckets.DeleteAsync | DELETE /accounts/{id}/r2/buckets/{name} | ✅ |
CORS Configuration
| Operation | Method | Endpoint | Status |
| Get CORS | Buckets.GetCorsAsync | GET /accounts/{id}/r2/buckets/{name}/cors | ✅ |
| Set CORS | Buckets.SetCorsAsync | PUT /accounts/{id}/r2/buckets/{name}/cors | ✅ |
| Delete CORS | Buckets.DeleteCorsAsync | DELETE .../r2/buckets/{name}/cors | ✅ |
Lifecycle Configuration
| Operation | Method | Endpoint | Status |
| Get Lifecycle | Buckets.GetLifecycleAsync | GET /accounts/{id}/r2/buckets/{name}/lifecycle | ✅ |
| Set Lifecycle | Buckets.SetLifecycleAsync | PUT /accounts/{id}/r2/buckets/{name}/lifecycle | ✅ |
| Delete Lifecycle | Buckets.DeleteLifecycleAsync | PUT .../lifecycle (empty) | ✅ |
Custom Domains
| Operation | Method | Endpoint | Status |
| List Domains | Buckets.ListCustomDomainsAsync | GET .../r2/buckets/{name}/domains/custom | ✅ |
| Attach Domain | Buckets.AttachCustomDomainAsync | POST .../r2/buckets/{name}/domains/custom | ✅ |
| Get Domain Status | Buckets.GetCustomDomainStatusAsync | GET .../domains/custom/{hostname} | ✅ |
| Update Domain | Buckets.UpdateCustomDomainAsync | PUT .../domains/custom/{hostname} | ✅ |
| Detach Domain | Buckets.DetachCustomDomainAsync | DELETE .../domains/custom/{hostname} | ✅ |
Managed Domain (r2.dev)
| Operation | Method | Endpoint | Status |
| Get Status | Buckets.GetManagedDomainAsync | GET .../r2/buckets/{name}/domains/managed | ✅ |
| Enable | Buckets.EnableManagedDomainAsync | PUT .../r2/buckets/{name}/domains/managed | ✅ |
| Disable | Buckets.DisableManagedDomainAsync | DELETE .../r2/buckets/{name}/domains/managed | ✅ |
Bucket Locks
| Operation | Method | Endpoint | Status |
| Get Lock | Buckets.GetLockAsync | GET /accounts/{id}/r2/buckets/{name}/lock | ✅ |
| Set Lock | Buckets.SetLockAsync | PUT /accounts/{id}/r2/buckets/{name}/lock | ✅ |
| Delete Lock | Buckets.DeleteLockAsync | PUT .../lock (empty) | ✅ |
Sippy (Incremental Migration)
| Operation | Method | Endpoint | Status |
| Get Config | Buckets.GetSippyAsync | GET /accounts/{id}/r2/buckets/{name}/sippy | ✅ |
| Enable | Buckets.EnableSippyAsync | PUT /accounts/{id}/r2/buckets/{name}/sippy | ✅ |
| Disable | Buckets.DisableSippyAsync | DELETE .../r2/buckets/{name}/sippy | ✅ |
Temporary Credentials
| Operation | Method | Endpoint | Status |
| Create Credentials | Buckets.CreateTempCredentialsAsync | POST /accounts/{id}/r2/temp-access-credentials | ✅ |
Subscriptions
| Operation | Method | Endpoint | Status |
| List Account Subs | ListAccountSubscriptionsAsync | GET /accounts/{id}/subscriptions | ✅ |
| Create Account Sub | CreateAccountSubscriptionAsync | POST /accounts/{id}/subscriptions | ✅ |
| Update Account Sub | UpdateAccountSubscriptionAsync | PUT /accounts/{id}/subscriptions/{sub_id} | ✅ |
| Delete Account Sub | DeleteAccountSubscriptionAsync | DELETE .../subscriptions/{sub_id} | ✅ |
| Get Zone Sub | GetZoneSubscriptionAsync | GET /zones/{id}/subscription | ✅ |
| Get User Sub | GetUserSubscriptionAsync | GET /user/subscriptions | ✅ |
Turnstile
| Operation | Method | Endpoint | Status |
| List Widgets | ListWidgetsAsync | GET /accounts/{id}/challenges/widgets | ✅ |
| Get Widget | GetWidgetAsync | GET /accounts/{id}/challenges/widgets/{sitekey} | ✅ |
| Create Widget | CreateWidgetAsync | POST /accounts/{id}/challenges/widgets | ✅ |
| Update Widget | UpdateWidgetAsync | PUT /accounts/{id}/challenges/widgets/{sitekey} | ✅ |
| Delete Widget | DeleteWidgetAsync | DELETE /accounts/{id}/challenges/widgets/{sitekey} | ✅ |
| Rotate Secret | RotateSecretAsync | POST .../widgets/{sitekey}/rotate_secret | ✅ |
User
Profile
| Operation | Method | Endpoint | Status |
| Get User | GetUserAsync | GET /user | ✅ |
| Edit User | EditUserAsync | PATCH /user | ✅ |
Invitations
| Operation | Method | Endpoint | Status |
| List Invitations | ListInvitationsAsync | GET /user/invites | ✅ |
| Get Invitation | GetInvitationAsync | GET /user/invites/{id} | ✅ |
| Respond to Invitation | RespondToInvitationAsync | PATCH /user/invites/{id} | ✅ |
Memberships
| Operation | Method | Endpoint | Status |
| List Memberships | ListMembershipsAsync | GET /memberships | ✅ |
| List All | ListAllMembershipsAsync | GET /memberships (auto) | ✅ |
| Get Membership | GetMembershipAsync | GET /memberships/{id} | ✅ |
| Update Membership | UpdateMembershipAsync | PUT /memberships/{id} | ✅ |
| Delete Membership | DeleteMembershipAsync | DELETE /memberships/{id} | ✅ |
Workers KV
Namespace Operations
| Operation | Method | Endpoint | Status |
| List Namespaces | Kv.ListAsync | GET /accounts/{id}/storage/kv/namespaces | ✅ |
| List All Namespaces | Kv.ListAllAsync | GET /accounts/{id}/storage/kv/namespaces (auto) | ✅ |
| Create Namespace | Kv.CreateAsync | POST /accounts/{id}/storage/kv/namespaces | ✅ |
| Get Namespace | Kv.GetAsync | GET /accounts/{id}/storage/kv/namespaces/{ns_id} | ✅ |
| Rename Namespace | Kv.RenameAsync | PUT /accounts/{id}/storage/kv/namespaces/{ns_id} | ✅ |
| Delete Namespace | Kv.DeleteAsync | DELETE /accounts/{id}/storage/kv/namespaces/{ns_id} | ✅ |
Key Operations
| Operation | Method | Endpoint | Status |
| List Keys | Kv.ListKeysAsync | GET .../namespaces/{ns_id}/keys | ✅ |
| List All Keys | Kv.ListAllKeysAsync | GET .../namespaces/{ns_id}/keys (auto) | ✅ |
Value Operations
| Operation | Method | Endpoint | Status |
| Get Value | Kv.GetValueAsync | GET .../namespaces/{ns_id}/values/{key} | ✅ |
| Get Value (with exp) | Kv.GetValueWithExpirationAsync | GET .../namespaces/{ns_id}/values/{key} | ✅ |
| Get Value (bytes) | Kv.GetValueBytesAsync | GET .../namespaces/{ns_id}/values/{key} | ✅ |
| Get Value (bytes+exp) | Kv.GetValueBytesWithExpirationAsync | GET .../namespaces/{ns_id}/values/{key} | ✅ |
| Get Metadata | Kv.GetMetadataAsync | GET .../namespaces/{ns_id}/metadata/{key} | ✅ |
| Write Value | Kv.WriteValueAsync | PUT .../namespaces/{ns_id}/values/{key} | ✅ |
| Delete Value | Kv.DeleteValueAsync | DELETE .../namespaces/{ns_id}/values/{key} | ✅ |
Bulk Operations
| Operation | Method | Endpoint | Status |
| Bulk Write | Kv.BulkWriteAsync | PUT .../namespaces/{ns_id}/bulk | ✅ |
| Bulk Delete | Kv.BulkDeleteAsync | POST .../namespaces/{ns_id}/bulk/delete | ✅ |
| Bulk Get | Kv.BulkGetAsync | POST .../namespaces/{ns_id}/bulk/get | ✅ |
| Bulk Get (metadata) | Kv.BulkGetWithMetadataAsync | POST .../namespaces/{ns_id}/bulk/get | ✅ |
D1 Databases
Database Operations
| Operation | Method | Endpoint | Status |
| List Databases | D1.ListAsync | GET /accounts/{id}/d1/database | ✅ |
| List All Databases | D1.ListAllAsync | GET /accounts/{id}/d1/database (auto) | ✅ |
| Create Database | D1.CreateAsync | POST /accounts/{id}/d1/database | ✅ |
| Get Database | D1.GetAsync | GET /accounts/{id}/d1/database/{uuid} | ✅ |
| Update Database | D1.UpdateAsync | PATCH /accounts/{id}/d1/database/{uuid} | ✅ |
| Delete Database | D1.DeleteAsync | DELETE /accounts/{id}/d1/database/{uuid} | ✅ |
Query Operations
| Operation | Method | Endpoint | Status |
| Execute Query | D1.QueryAsync | POST /accounts/{id}/d1/database/{uuid}/query | ✅ |
| Execute Query (typed) | D1.QueryAsync<T> | POST /accounts/{id}/d1/database/{uuid}/query | ✅ |
| Execute Query (raw) | D1.QueryRawAsync | POST /accounts/{id}/d1/database/{uuid}/raw | ✅ |
Export/Import Operations
| Operation | Method | Endpoint | Status |
| Start Export | D1.StartExportAsync | POST /accounts/{id}/d1/database/{uuid}/export | ✅ |
| Poll Export | D1.PollExportAsync | POST /accounts/{id}/d1/database/{uuid}/export | ✅ |
| Start Import | D1.StartImportAsync | POST /accounts/{id}/d1/database/{uuid}/import | ✅ |
| Complete Import | D1.CompleteImportAsync | POST /accounts/{id}/d1/database/{uuid}/import | ✅ |
| Poll Import | D1.PollImportAsync | POST /accounts/{id}/d1/database/{uuid}/import | ✅ |
Workers Route
| Operation | Method | Endpoint | Status |
| List Routes | ListRoutesAsync | GET /zones/{id}/workers/routes | ✅ |
| Get Route | GetRouteAsync | GET /zones/{id}/workers/routes/{id} | ✅ |
| Create Route | CreateRouteAsync | POST /zones/{id}/workers/routes | ✅ |
| Update Route | UpdateRouteAsync | PUT /zones/{id}/workers/routes/{id} | ✅ |
| Delete Route | DeleteRouteAsync | DELETE /zones/{id}/workers/routes/{id} | ✅ |
Zones
Zone CRUD
| Operation | Method | Endpoint | Status |
| List Zones | ListZonesAsync | GET /zones | ✅ |
| List All Zones | ListAllZonesAsync | GET /zones (auto) | ✅ |
| Get Zone | GetZoneDetailsAsync | GET /zones/{id} | ✅ |
| Create Zone | CreateZoneAsync | POST /zones | ✅ |
| Edit Zone | EditZoneAsync | PATCH /zones/{id} | ✅ |
| Delete Zone | DeleteZoneAsync | DELETE /zones/{id} | ✅ |
| Activation Check | TriggerActivationCheckAsync | POST /zones/{id}/activation_check | ✅ |
Zone Convenience Methods
| Operation | Method | Endpoint | Status |
| Set Paused | SetZonePausedAsync | PATCH /zones/{id} | ✅ |
| Set Type | SetZoneTypeAsync | PATCH /zones/{id} | ✅ |
| Set Vanity NS | SetVanityNameServersAsync | PATCH /zones/{id} | ✅ |
Zone Holds
| Operation | Method | Endpoint | Status |
| Get Hold | GetZoneHoldAsync | GET /zones/{id}/hold | ✅ |
| Create Hold | CreateZoneHoldAsync | POST /zones/{id}/hold | ✅ |
| Update Hold | UpdateZoneHoldAsync | PATCH /zones/{id}/hold | ✅ |
| Remove Hold | RemoveZoneHoldAsync | DELETE /zones/{id}/hold | ✅ |
Zone Settings
| Operation | Method | Endpoint | Status |
| Get Setting | GetZoneSettingAsync | GET /zones/{id}/settings/{setting_id} | ✅ |
| Set Setting | SetZoneSettingAsync | PATCH /zones/{id}/settings/{id} | ✅ |
Cache
| Operation | Method | Endpoint | Status |
| Purge Cache | PurgeCacheAsync | POST /zones/{id}/purge_cache | ✅ |
Zone Security
| Operation | Method | Endpoint | Status |
| IP Access Rules | Zones.AccessRules.* | /zones/{id}/firewall/access_rules/rules | ✅ |
| Zone Lockdown | Zones.Lockdown.* | /zones/{id}/firewall/lockdowns | ✅ |
| User-Agent Rules | Zones.UaRules.* | /zones/{id}/firewall/ua_rules | ✅ |
| Rulesets (WAF) | Zones.Rulesets.* | /zones/{id}/rulesets | ✅ |
| Custom Hostnames | Zones.CustomHostnames.* | /zones/{id}/custom_hostnames | ✅ |
Extension Packages
Cloudflare.NET.R2 (S3-Compatible Client)
| Operation | Method | Purpose |
| Upload | UploadAsync | Auto-selects single-part or multipart, with optional content type, checksum and Cache-Control |
| Upload Single Part | UploadSinglePartAsync | Direct PUT (≤5 GiB), with optional content type, checksum and Cache-Control |
| Upload Multipart | UploadMultipartAsync | Multipart upload (5 MiB–5 GiB parts), with optional content type and Cache-Control |
| Download | DownloadFileAsync | Download to file or stream |
| Delete Object | DeleteObjectAsync | Single object delete |
| Delete Objects | DeleteObjectsAsync | Batch delete (up to 1000 keys) |
| Clear Bucket | ClearBucketAsync | Batch delete all objects, then abort any upload left open |
| List Objects | ListObjectsAsync | List with automatic pagination |
| List Objects (single page) | ListObjectsPageAsync | One page plus its continuation token |
| List Multipart Uploads | ListMultipartUploadsAsync | Uploads started but never completed |
| Presigned GET URL | CreatePresignedGetUrl | Presigned URL for download |
| Presigned PUT URL | CreatePresignedPutUrl | Presigned URL for upload, with optional checksum enforcement and signed Cache-Control |
| Presigned Part URL | CreatePresignedUploadPartUrl | Presigned URL for multipart part, with optional checksum enforcement |
Cloudflare.NET.Analytics (GraphQL Client)
| Operation | Method | Purpose |
| Send Query | SendQueryAsync<T> | Generic GraphQL query execution |
Planned API Resources
The following API surfaces are being considered for future implementation:
| API Family | Use Case | Notes |
| SSL & Certificates (mTLS) | Client certificate management | GET /zones/{id}/client_certificates |
| R2 Object Metadata | Cloudflare object metadata | GET .../r2/buckets/.../objects |
| Pages | CloudFlare Pages | |