Skip to content
Start here

Addressing

AddressingRegional Hostnames

List Regional Hostnames
GET/zones/{zone_id}/addressing/regional_hostnames
Fetch Regional Hostname
GET/zones/{zone_id}/addressing/regional_hostnames/{hostname}
Create Regional Hostname
POST/zones/{zone_id}/addressing/regional_hostnames
Update Regional Hostname
PATCH/zones/{zone_id}/addressing/regional_hostnames/{hostname}
Delete Regional Hostname
DELETE/zones/{zone_id}/addressing/regional_hostnames/{hostname}
ModelsExpand Collapse
RegionalHostnameListResponse = object { created_on, hostname, region_key, routing }
created_on: string

When the regional hostname was created

formatdate-time
hostname: string

DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g *.example.com

region_key: string

Identifying key for the region

routing: optional string

Configure which routing method to use for the regional hostname

RegionalHostnameGetResponse = object { created_on, hostname, region_key, routing }
created_on: string

When the regional hostname was created

formatdate-time
hostname: string

DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g *.example.com

region_key: string

Identifying key for the region

routing: optional string

Configure which routing method to use for the regional hostname

RegionalHostnameCreateResponse = object { created_on, hostname, region_key, routing }
created_on: string

When the regional hostname was created

formatdate-time
hostname: string

DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g *.example.com

region_key: string

Identifying key for the region

routing: optional string

Configure which routing method to use for the regional hostname

RegionalHostnameEditResponse = object { created_on, hostname, region_key, routing }
created_on: string

When the regional hostname was created

formatdate-time
hostname: string

DNS hostname to be regionalized, must be a subdomain of the zone. Wildcards are supported for one level, e.g *.example.com

region_key: string

Identifying key for the region

routing: optional string

Configure which routing method to use for the regional hostname

RegionalHostnameDeleteResponse = object { errors, messages, success }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

AddressingRegional HostnamesRegions

List Regions
GET/accounts/{account_id}/addressing/regional_hostnames/regions
ModelsExpand Collapse
RegionListResponse = object { key, label }
key: optional string

Identifying key for the region

label: optional string

Human-readable text label for the region

AddressingServices

List Services
GET/accounts/{account_id}/addressing/services
ModelsExpand Collapse
ServiceListResponse = object { id, name }
id: optional string

Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the List Services endpoint.

maxLength32
name: optional string

Name of a service running on the Cloudflare network

AddressingAddress Maps

List Address Maps
GET/accounts/{account_id}/addressing/address_maps
Address Map Details
GET/accounts/{account_id}/addressing/address_maps/{address_map_id}
Create Address Map
POST/accounts/{account_id}/addressing/address_maps
Update Address Map
PATCH/accounts/{account_id}/addressing/address_maps/{address_map_id}
Delete Address Map
DELETE/accounts/{account_id}/addressing/address_maps/{address_map_id}
ModelsExpand Collapse
AddressMap = object { id, can_delete, can_modify_ips, 5 more }
id: optional string

Identifier of an Address Map.

maxLength32
can_delete: optional boolean

If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps.

can_modify_ips: optional boolean

If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps.

created_at: optional string
formatdate-time
default_sni: optional string

If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account.

description: optional string

An optional description field which may be used to describe the types of IPs or zones on the map.

enabled: optional boolean

Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled.

modified_at: optional string
formatdate-time
Kind = "zone" or "account"

The type of the membership.

One of the following:
"zone"
"account"
AddressMapGetResponse = object { id, can_delete, can_modify_ips, 7 more }
id: optional string

Identifier of an Address Map.

maxLength32
can_delete: optional boolean

If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps.

can_modify_ips: optional boolean

If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps.

created_at: optional string
formatdate-time
default_sni: optional string

If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account.

description: optional string

An optional description field which may be used to describe the types of IPs or zones on the map.

enabled: optional boolean

Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled.

ips: optional IPs { created_at, ip }

The set of IPs on the Address Map.

memberships: optional array of object { can_delete, created_at, identifier, kind }

Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership.

can_delete: optional boolean

Controls whether the membership can be deleted via the API or not.

created_at: optional string
formatdate-time
identifier: optional string

The identifier for the membership (eg. a zone or account tag).

maxLength32
kind: optional Kind

The type of the membership.

modified_at: optional string
formatdate-time
AddressMapCreateResponse = object { id, can_delete, can_modify_ips, 7 more }
id: optional string

Identifier of an Address Map.

maxLength32
can_delete: optional boolean

If set to false, then the Address Map cannot be deleted via API. This is true for Cloudflare-managed maps.

can_modify_ips: optional boolean

If set to false, then the IPs on the Address Map cannot be modified via the API. This is true for Cloudflare-managed maps.

created_at: optional string
formatdate-time
default_sni: optional string

If you have legacy TLS clients which do not send the TLS server name indicator, then you can specify one default SNI on the map. If Cloudflare receives a TLS handshake from a client without an SNI, it will respond with the default SNI on those IPs. The default SNI can be any valid zone or subdomain owned by the account.

description: optional string

An optional description field which may be used to describe the types of IPs or zones on the map.

enabled: optional boolean

Whether the Address Map is enabled or not. Cloudflare's DNS will not respond with IP addresses on an Address Map until the map is enabled.

ips: optional IPs { created_at, ip }

The set of IPs on the Address Map.

memberships: optional array of object { can_delete, created_at, identifier, kind }

Zones and Accounts which will be assigned IPs on this Address Map. A zone membership will take priority over an account membership.

can_delete: optional boolean

Controls whether the membership can be deleted via the API or not.

created_at: optional string
formatdate-time
identifier: optional string

The identifier for the membership (eg. a zone or account tag).

maxLength32
kind: optional Kind

The type of the membership.

modified_at: optional string
formatdate-time
AddressMapDeleteResponse = object { errors, messages, success, result_info }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result_info: optional object { count, page, per_page, total_count }
count: optional number

Total number of results for the requested service.

page: optional number

Current page within paginated list of results.

per_page: optional number

Number of results per page of results.

total_count: optional number

Total results available without any search parameters.

AddressingAddress MapsAccounts

Add an account membership to an Address Map
PUT/accounts/{account_id}/addressing/address_maps/{address_map_id}/accounts/{account_id}
Remove an account membership from an Address Map
DELETE/accounts/{account_id}/addressing/address_maps/{address_map_id}/accounts/{account_id}
ModelsExpand Collapse
AccountUpdateResponse = object { errors, messages, success, result_info }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result_info: optional object { count, page, per_page, total_count }
count: optional number

Total number of results for the requested service.

page: optional number

Current page within paginated list of results.

per_page: optional number

Number of results per page of results.

total_count: optional number

Total results available without any search parameters.

AccountDeleteResponse = object { errors, messages, success, result_info }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result_info: optional object { count, page, per_page, total_count }
count: optional number

Total number of results for the requested service.

page: optional number

Current page within paginated list of results.

per_page: optional number

Number of results per page of results.

total_count: optional number

Total results available without any search parameters.

AddressingAddress MapsIPs

Add an IP to an Address Map
PUT/accounts/{account_id}/addressing/address_maps/{address_map_id}/ips/{ip_address}
Remove an IP from an Address Map
DELETE/accounts/{account_id}/addressing/address_maps/{address_map_id}/ips/{ip_address}
ModelsExpand Collapse
IPUpdateResponse = object { errors, messages, success, result_info }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result_info: optional object { count, page, per_page, total_count }
count: optional number

Total number of results for the requested service.

page: optional number

Current page within paginated list of results.

per_page: optional number

Number of results per page of results.

total_count: optional number

Total results available without any search parameters.

IPDeleteResponse = object { errors, messages, success, result_info }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result_info: optional object { count, page, per_page, total_count }
count: optional number

Total number of results for the requested service.

page: optional number

Current page within paginated list of results.

per_page: optional number

Number of results per page of results.

total_count: optional number

Total results available without any search parameters.

AddressingAddress MapsZones

Add a zone membership to an Address Map
PUT/accounts/{account_id}/addressing/address_maps/{address_map_id}/zones/{zone_id}
Remove a zone membership from an Address Map
DELETE/accounts/{account_id}/addressing/address_maps/{address_map_id}/zones/{zone_id}
ModelsExpand Collapse
ZoneUpdateResponse = object { errors, messages, success, result_info }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result_info: optional object { count, page, per_page, total_count }
count: optional number

Total number of results for the requested service.

page: optional number

Current page within paginated list of results.

per_page: optional number

Number of results per page of results.

total_count: optional number

Total results available without any search parameters.

ZoneDeleteResponse = object { errors, messages, success, result_info }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

result_info: optional object { count, page, per_page, total_count }
count: optional number

Total number of results for the requested service.

page: optional number

Current page within paginated list of results.

per_page: optional number

Number of results per page of results.

total_count: optional number

Total results available without any search parameters.

AddressingLOA Documents

Download LOA Document
GET/accounts/{account_id}/addressing/loa_documents/{loa_document_id}/download
Upload LOA Document
POST/accounts/{account_id}/addressing/loa_documents
ModelsExpand Collapse
LOADocumentCreateResponse = object { id, account_id, auto_generated, 5 more }
id: optional string

Identifier for the uploaded LOA document.

maxLength32
account_id: optional string

Identifier of a Cloudflare account.

maxLength32
auto_generated: optional boolean

Whether the LOA has been auto-generated for the prefix owner by Cloudflare.

created: optional string
formatdate-time
filename: optional string

Name of LOA document. Max file size 10MB, and supported filetype is pdf.

size_bytes: optional number

File size of the uploaded LOA document.

verified: optional boolean

Whether the LOA has been verified by Cloudflare staff.

verified_at: optional string

Timestamp of the moment the LOA was marked as validated.

formatdate-time

AddressingPrefixes

List Prefixes
GET/accounts/{account_id}/addressing/prefixes
Prefix Details
GET/accounts/{account_id}/addressing/prefixes/{prefix_id}
Add Prefix
POST/accounts/{account_id}/addressing/prefixes
Update Prefix Description
PATCH/accounts/{account_id}/addressing/prefixes/{prefix_id}
Delete Prefix
DELETE/accounts/{account_id}/addressing/prefixes/{prefix_id}
ModelsExpand Collapse
Prefix = object { id, account_id, advertised, 15 more }
id: optional string

Identifier of an IP Prefix.

maxLength32
account_id: optional string

Identifier of a Cloudflare account.

maxLength32
Deprecatedadvertised: optional boolean
Prefer the [BGP Prefixes API](https://developers.cloudflare.com/api/resources/addressing/subresources/prefixes/subresources/bgp_prefixes/) instead, which allows for advertising multiple BGP routes within a single IP Prefix.

Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled.

Deprecatedadvertised_modified_at: optional string
Prefer the [BGP Prefixes API](https://developers.cloudflare.com/api/resources/addressing/subresources/prefixes/subresources/bgp_prefixes/) instead, which allows for advertising multiple BGP routes within a single IP Prefix.

Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled.

formatdate-time
approved: optional string

Approval state of the prefix (P = pending, V = active).

asn: optional number

Autonomous System Number (ASN) the prefix will be advertised under.

cidr: optional string

IP Prefix in Classless Inter-Domain Routing format.

created_at: optional string
formatdate-time
delegate_loa_creation: optional boolean

Whether Cloudflare is allowed to generate the LOA document on behalf of the prefix owner.

description: optional string

Description of the prefix.

maxLength1000
irr_validation_state: optional string

State of one kind of validation for an IP prefix.

loa_document_id: optional string

Identifier for the uploaded LOA document.

maxLength32
modified_at: optional string
formatdate-time
Deprecatedon_demand_enabled: optional boolean
Prefer the [BGP Prefixes API](https://developers.cloudflare.com/api/resources/addressing/subresources/prefixes/subresources/bgp_prefixes/) instead, which allows for advertising multiple BGP routes within a single IP Prefix.

Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled.

Deprecatedon_demand_locked: optional boolean
Prefer the [BGP Prefixes API](https://developers.cloudflare.com/api/resources/addressing/subresources/prefixes/subresources/bgp_prefixes/) instead, which allows for advertising multiple BGP routes within a single IP Prefix.

Whether advertisement status of the prefix is locked, meaning it cannot be changed.

ownership_validation_state: optional string

State of one kind of validation for an IP prefix.

ownership_validation_token: optional string

Token provided to demonstrate ownership of the prefix.

rpki_validation_state: optional string

State of one kind of validation for an IP prefix.

PrefixDeleteResponse = object { errors, messages, success }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

AddressingPrefixesService Bindings

List Service Bindings
GET/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings
Get Service Binding
GET/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}
Create Service Binding
POST/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings
Delete Service Binding
DELETE/accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}
ModelsExpand Collapse
ServiceBinding = object { id, cidr, provisioning, 2 more }
id: optional string

Identifier of a Service Binding.

maxLength32
cidr: optional string

IP Prefix in Classless Inter-Domain Routing format.

provisioning: optional object { state }

Status of a Service Binding's deployment to the Cloudflare network

state: optional "provisioning" or "active"

When a binding has been deployed to a majority of Cloudflare datacenters, the binding will become active and can be used with its associated service.

One of the following:
"provisioning"
"active"
service_id: optional string

Identifier of a Service on the Cloudflare network. Available services and their IDs may be found in the List Services endpoint.

maxLength32
service_name: optional string

Name of a service running on the Cloudflare network

ServiceBindingDeleteResponse = object { errors, messages, success }
errors: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
messages: array of object { code, message, documentation_url, source }
code: number
minimum1000
message: string
documentation_url: optional string
source: optional object { pointer }
pointer: optional string
success: true

Whether the API call was successful.

AddressingPrefixesBGP Prefixes

List BGP Prefixes
GET/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes
Fetch BGP Prefix
GET/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}
Create BGP Prefix
POST/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes
Update BGP Prefix
PATCH/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}
ModelsExpand Collapse
BGPPrefix = object { id, asn, asn_prepend_count, 6 more }
id: optional string

Identifier of BGP Prefix.

maxLength32
asn: optional number

Autonomous System Number (ASN) the prefix will be advertised under.

asn_prepend_count: optional number

Number of times to prepend the Cloudflare ASN to the BGP AS-Path attribute

maximum3
minimum0
auto_advertise_withdraw: optional boolean

Determines if Cloudflare advertises a BYOIP BGP prefix even when there is no matching BGP prefix in the Magic routing table. When true, Cloudflare will automatically withdraw the BGP prefix when there are no matching BGP routes, and will resume advertising when there is at least one matching BGP route.

bgp_signal_opts: optional object { enabled, modified_at }
enabled: optional boolean

Whether control of advertisement of the prefix to the Internet is enabled to be performed via BGP signal

modified_at: optional string

Last time BGP signaling control was toggled. This field is null if BGP signaling has never been enabled.

formatdate-time
cidr: optional string

IP Prefix in Classless Inter-Domain Routing format.

created_at: optional string
formatdate-time
modified_at: optional string
formatdate-time
on_demand: optional object { advertised, advertised_modified_at, on_demand_enabled, on_demand_locked }
advertised: optional boolean

Prefix advertisement status to the Internet. This field is only not 'null' if on demand is enabled.

advertised_modified_at: optional string

Last time the advertisement status was changed. This field is only not 'null' if on demand is enabled.

formatdate-time
on_demand_enabled: optional boolean

Whether advertisement of the prefix to the Internet may be dynamically enabled or disabled.

on_demand_locked: optional boolean

Whether the advertisement status of the prefix is locked, meaning it cannot be changed.

AddressingPrefixesAdvertisement Status

Get Advertisement Status
Deprecated
GET/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/status
Update Prefix Dynamic Advertisement Status
Deprecated
PATCH/accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/status
ModelsExpand Collapse

AddressingPrefixesDelegations

List Prefix Delegations
GET/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations
Create Prefix Delegation
POST/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations
Delete Prefix Delegation
DELETE/accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations/{delegation_id}
ModelsExpand Collapse
Delegations = object { id, cidr, created_at, 3 more }
id: optional string

Identifier of a Delegation.

maxLength32
cidr: optional string

IP Prefix in Classless Inter-Domain Routing format.

created_at: optional string
formatdate-time
delegated_account_id: optional string

Account identifier for the account to which prefix is being delegated.

maxLength32
modified_at: optional string
formatdate-time
parent_prefix_id: optional string

Identifier of an IP Prefix.

maxLength32
DelegationDeleteResponse = object { id }
id: optional string

Identifier of a Delegation.

maxLength32