---
title: Zone Transfers
---

[Skip to content](#%5Ftop) 

[API Reference](https://developers.cloudflare.com/api/typescript)

[DNS](https://developers.cloudflare.com/api/typescript/resources/dns)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Zone Transfers

#### Zone TransfersForce AXFR

##### [Force AXFR](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/force%5Faxfr/methods/create)

client.dns.zoneTransfers.forceAXFR.create(ForceAXFRCreateParams { zone\_id } params, RequestOptionsoptions?): [ForceAXFR](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.force%5Faxfr%20%3E%20%28model%29%20force%5Faxfr%20%3E%20%28schema%29)

POST/zones/{zone\_id}/secondary\_dns/force\_axfr

##### ModelsExpand Collapse 

ForceAXFR \= string

When force\_axfr query parameter is set to true, the response is a simple string.

#### Zone TransfersIncoming

##### [Secondary Zone Configuration Details](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/incoming/methods/get)

client.dns.zoneTransfers.incoming.get(IncomingGetParams { zone\_id } params, RequestOptionsoptions?): [IncomingGetResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.incoming%20%3E%20%28model%29%20incoming%5Fget%5Fresponse%20%3E%20%28schema%29) { id, auto\_refresh\_seconds, checked\_time, 5 more } 

GET/zones/{zone\_id}/secondary\_dns/incoming

##### [Create Secondary Zone Configuration](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/incoming/methods/create)

client.dns.zoneTransfers.incoming.create(IncomingCreateParams { zone\_id, auto\_refresh\_seconds, name, peers } params, RequestOptionsoptions?): [IncomingCreateResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.incoming%20%3E%20%28model%29%20incoming%5Fcreate%5Fresponse%20%3E%20%28schema%29) { id, auto\_refresh\_seconds, checked\_time, 5 more } 

POST/zones/{zone\_id}/secondary\_dns/incoming

##### [Update Secondary Zone Configuration](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/incoming/methods/update)

client.dns.zoneTransfers.incoming.update(IncomingUpdateParams { zone\_id, auto\_refresh\_seconds, name, peers } params, RequestOptionsoptions?): [IncomingUpdateResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.incoming%20%3E%20%28model%29%20incoming%5Fupdate%5Fresponse%20%3E%20%28schema%29) { id, auto\_refresh\_seconds, checked\_time, 5 more } 

PUT/zones/{zone\_id}/secondary\_dns/incoming

##### [Delete Secondary Zone Configuration](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/incoming/methods/delete)

client.dns.zoneTransfers.incoming.delete(IncomingDeleteParams { zone\_id } params, RequestOptionsoptions?): [IncomingDeleteResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.incoming%20%3E%20%28model%29%20incoming%5Fdelete%5Fresponse%20%3E%20%28schema%29) { id } 

DELETE/zones/{zone\_id}/secondary\_dns/incoming

##### ModelsExpand Collapse 

Incoming { id, auto\_refresh\_seconds, checked\_time, 5 more } 

id?: string

auto\_refresh\_seconds?: number

How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones.

minimum300

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

modified\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

IncomingGetResponse { id, auto\_refresh\_seconds, checked\_time, 5 more } 

id?: string

auto\_refresh\_seconds?: number

How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones.

minimum300

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

modified\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

IncomingCreateResponse { id, auto\_refresh\_seconds, checked\_time, 5 more } 

id?: string

auto\_refresh\_seconds?: number

How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones.

minimum300

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

modified\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

IncomingUpdateResponse { id, auto\_refresh\_seconds, checked\_time, 5 more } 

id?: string

auto\_refresh\_seconds?: number

How often should a secondary zone auto refresh regardless of DNS NOTIFY. Not applicable for primary zones.

minimum300

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

modified\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

IncomingDeleteResponse { id } 

id?: string

#### Zone TransfersOutgoing

##### [Primary Zone Configuration Details](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/methods/get)

client.dns.zoneTransfers.outgoing.get(OutgoingGetParams { zone\_id } params, RequestOptionsoptions?): [OutgoingGetResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20outgoing%5Fget%5Fresponse%20%3E%20%28schema%29) { id, checked\_time, created\_time, 4 more } 

GET/zones/{zone\_id}/secondary\_dns/outgoing

##### [Create Primary Zone Configuration](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/methods/create)

client.dns.zoneTransfers.outgoing.create(OutgoingCreateParams { zone\_id, name, peers } params, RequestOptionsoptions?): [OutgoingCreateResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20outgoing%5Fcreate%5Fresponse%20%3E%20%28schema%29) { id, checked\_time, created\_time, 4 more } 

POST/zones/{zone\_id}/secondary\_dns/outgoing

##### [Update Primary Zone Configuration](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/methods/update)

client.dns.zoneTransfers.outgoing.update(OutgoingUpdateParams { zone\_id, name, peers } params, RequestOptionsoptions?): [OutgoingUpdateResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20outgoing%5Fupdate%5Fresponse%20%3E%20%28schema%29) { id, checked\_time, created\_time, 4 more } 

PUT/zones/{zone\_id}/secondary\_dns/outgoing

##### [Delete Primary Zone Configuration](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/methods/delete)

client.dns.zoneTransfers.outgoing.delete(OutgoingDeleteParams { zone\_id } params, RequestOptionsoptions?): [OutgoingDeleteResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20outgoing%5Fdelete%5Fresponse%20%3E%20%28schema%29) { id } 

DELETE/zones/{zone\_id}/secondary\_dns/outgoing

##### [Disable Outgoing Zone Transfers](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/methods/disable)

client.dns.zoneTransfers.outgoing.disable(OutgoingDisableParams { zone\_id } params, RequestOptionsoptions?): [DisableTransfer](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20disable%5Ftransfer%20%3E%20%28schema%29)

POST/zones/{zone\_id}/secondary\_dns/outgoing/disable

##### [Enable Outgoing Zone Transfers](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/methods/enable)

client.dns.zoneTransfers.outgoing.enable(OutgoingEnableParams { zone\_id } params, RequestOptionsoptions?): [EnableTransfer](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20enable%5Ftransfer%20%3E%20%28schema%29)

POST/zones/{zone\_id}/secondary\_dns/outgoing/enable

##### [Force DNS NOTIFY](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/methods/force%5Fnotify)

client.dns.zoneTransfers.outgoing.forceNotify(OutgoingForceNotifyParams { zone\_id } params, RequestOptionsoptions?): [OutgoingForceNotifyResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20outgoing%5Fforce%5Fnotify%5Fresponse%20%3E%20%28schema%29)

POST/zones/{zone\_id}/secondary\_dns/outgoing/force\_notify

##### ModelsExpand Collapse 

DisableTransfer \= string

The zone transfer status of a primary zone.

EnableTransfer \= string

The zone transfer status of a primary zone.

Outgoing { id, checked\_time, created\_time, 4 more } 

id?: string

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

last\_transferred\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

OutgoingStatus \= string | null

The zone transfer status of a primary zone.

OutgoingGetResponse { id, checked\_time, created\_time, 4 more } 

id?: string

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

last\_transferred\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

OutgoingCreateResponse { id, checked\_time, created\_time, 4 more } 

id?: string

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

last\_transferred\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

OutgoingUpdateResponse { id, checked\_time, created\_time, 4 more } 

id?: string

checked\_time?: string

The time for a specific event.

created\_time?: string

The time for a specific event.

last\_transferred\_time?: string

The time for a specific event.

name?: string

Zone name.

peers?: Array<string\>

A list of peer tags.

soa\_serial?: number

The serial number of the SOA for the given zone.

OutgoingDeleteResponse { id } 

id?: string

OutgoingForceNotifyResponse \= string

When force\_notify query parameter is set to true, the response is a simple string.

#### Zone TransfersOutgoingStatus

##### [Get Outgoing Zone Transfer Status](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/outgoing/subresources/status/methods/get)

client.dns.zoneTransfers.outgoing.status.get(StatusGetParams { zone\_id } params, RequestOptionsoptions?): [EnableTransfer](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.outgoing%20%3E%20%28model%29%20enable%5Ftransfer%20%3E%20%28schema%29)

GET/zones/{zone\_id}/secondary\_dns/outgoing/status

#### Zone TransfersACLs

##### [List ACLs](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/acls/methods/list)

client.dns.zoneTransfers.acls.list(ACLListParams { account\_id } params, RequestOptionsoptions?): SinglePage<[ACL](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.acls%20%3E%20%28model%29%20acl%20%3E%20%28schema%29) { id, ip\_range, name } \>

GET/accounts/{account\_id}/secondary\_dns/acls

##### [ACL Details](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/acls/methods/get)

client.dns.zoneTransfers.acls.get(stringaclID, ACLGetParams { account\_id } params, RequestOptionsoptions?): [ACL](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.acls%20%3E%20%28model%29%20acl%20%3E%20%28schema%29) { id, ip\_range, name } 

GET/accounts/{account\_id}/secondary\_dns/acls/{acl\_id}

##### [Create ACL](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/acls/methods/create)

client.dns.zoneTransfers.acls.create(ACLCreateParams { account\_id, ip\_range, name } params, RequestOptionsoptions?): [ACL](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.acls%20%3E%20%28model%29%20acl%20%3E%20%28schema%29) { id, ip\_range, name } 

POST/accounts/{account\_id}/secondary\_dns/acls

##### [Update ACL](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/acls/methods/update)

client.dns.zoneTransfers.acls.update(stringaclID, ACLUpdateParams { account\_id, ip\_range, name } params, RequestOptionsoptions?): [ACL](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.acls%20%3E%20%28model%29%20acl%20%3E%20%28schema%29) { id, ip\_range, name } 

PUT/accounts/{account\_id}/secondary\_dns/acls/{acl\_id}

##### [Delete ACL](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/acls/methods/delete)

client.dns.zoneTransfers.acls.delete(stringaclID, ACLDeleteParams { account\_id } params, RequestOptionsoptions?): [ACLDeleteResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.acls%20%3E%20%28model%29%20acl%5Fdelete%5Fresponse%20%3E%20%28schema%29) { id } 

DELETE/accounts/{account\_id}/secondary\_dns/acls/{acl\_id}

##### ModelsExpand Collapse 

ACL { id, ip\_range, name } 

id: string

ip\_range: string

Allowed IPv4/IPv6 address range of primary or secondary nameservers. This will be applied for the entire account. The IP range is used to allow additional NOTIFY IPs for secondary zones and IPs Cloudflare allows AXFR/IXFR requests from for primary zones. CIDRs are limited to a maximum of /24 for IPv4 and /64 for IPv6 respectively.

name: string

The name of the acl.

ACLDeleteResponse { id } 

id?: string

#### Zone TransfersPeers

##### [List Peers](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/peers/methods/list)

client.dns.zoneTransfers.peers.list(PeerListParams { account\_id } params, RequestOptionsoptions?): SinglePage<[Peer](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.peers%20%3E%20%28model%29%20peer%20%3E%20%28schema%29) { id, name, ip, 3 more } \>

GET/accounts/{account\_id}/secondary\_dns/peers

##### [Peer Details](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/peers/methods/get)

client.dns.zoneTransfers.peers.get(stringpeerID, PeerGetParams { account\_id } params, RequestOptionsoptions?): [Peer](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.peers%20%3E%20%28model%29%20peer%20%3E%20%28schema%29) { id, name, ip, 3 more } 

GET/accounts/{account\_id}/secondary\_dns/peers/{peer\_id}

##### [Create Peer](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/peers/methods/create)

client.dns.zoneTransfers.peers.create(PeerCreateParams { account\_id, name } params, RequestOptionsoptions?): [Peer](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.peers%20%3E%20%28model%29%20peer%20%3E%20%28schema%29) { id, name, ip, 3 more } 

POST/accounts/{account\_id}/secondary\_dns/peers

##### [Update Peer](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/peers/methods/update)

client.dns.zoneTransfers.peers.update(stringpeerID, PeerUpdateParams { account\_id, name, ip, 3 more } params, RequestOptionsoptions?): [Peer](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.peers%20%3E%20%28model%29%20peer%20%3E%20%28schema%29) { id, name, ip, 3 more } 

PUT/accounts/{account\_id}/secondary\_dns/peers/{peer\_id}

##### [Delete Peer](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/peers/methods/delete)

client.dns.zoneTransfers.peers.delete(stringpeerID, PeerDeleteParams { account\_id } params, RequestOptionsoptions?): [PeerDeleteResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.peers%20%3E%20%28model%29%20peer%5Fdelete%5Fresponse%20%3E%20%28schema%29) { id } 

DELETE/accounts/{account\_id}/secondary\_dns/peers/{peer\_id}

##### ModelsExpand Collapse 

Peer { id, name, ip, 3 more } 

id: string

name: string

The name of the peer.

ip?: string

IPv4/IPv6 address of primary or secondary nameserver, depending on what zone this peer is linked to. For primary zones this IP defines the IP of the secondary nameserver Cloudflare will NOTIFY upon zone changes. For secondary zones this IP defines the IP of the primary nameserver Cloudflare will send AXFR/IXFR requests to.

ixfr\_enable?: boolean

Enable IXFR transfer protocol, default is AXFR. Only applicable to secondary zones.

port?: number

DNS port of primary or secondary nameserver, depending on what zone this peer is linked to.

tsig\_id?: string

TSIG authentication will be used for zone transfer if configured.

PeerDeleteResponse { id } 

id?: string

#### Zone TransfersTSIGs

##### [List TSIGs](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/tsigs/methods/list)

client.dns.zoneTransfers.tsigs.list(TSIGListParams { account\_id } params, RequestOptionsoptions?): SinglePage<[TSIG](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.tsigs%20%3E%20%28model%29%20tsig%20%3E%20%28schema%29) { id, algo, name, secret } \>

GET/accounts/{account\_id}/secondary\_dns/tsigs

##### [TSIG Details](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/tsigs/methods/get)

client.dns.zoneTransfers.tsigs.get(stringtsigID, TSIGGetParams { account\_id } params, RequestOptionsoptions?): [TSIG](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.tsigs%20%3E%20%28model%29%20tsig%20%3E%20%28schema%29) { id, algo, name, secret } 

GET/accounts/{account\_id}/secondary\_dns/tsigs/{tsig\_id}

##### [Create TSIG](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/tsigs/methods/create)

client.dns.zoneTransfers.tsigs.create(TSIGCreateParams { account\_id, algo, name, secret } params, RequestOptionsoptions?): [TSIG](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.tsigs%20%3E%20%28model%29%20tsig%20%3E%20%28schema%29) { id, algo, name, secret } 

POST/accounts/{account\_id}/secondary\_dns/tsigs

##### [Update TSIG](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/tsigs/methods/update)

client.dns.zoneTransfers.tsigs.update(stringtsigID, TSIGUpdateParams { account\_id, algo, name, secret } params, RequestOptionsoptions?): [TSIG](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.tsigs%20%3E%20%28model%29%20tsig%20%3E%20%28schema%29) { id, algo, name, secret } 

PUT/accounts/{account\_id}/secondary\_dns/tsigs/{tsig\_id}

##### [Delete TSIG](https://developers.cloudflare.com/api/typescript/resources/dns/subresources/zone%5Ftransfers/subresources/tsigs/methods/delete)

client.dns.zoneTransfers.tsigs.delete(stringtsigID, TSIGDeleteParams { account\_id } params, RequestOptionsoptions?): [TSIGDeleteResponse](https://developers.cloudflare.com/api/typescript/resources/dns#%28resource%29%20dns.zone%5Ftransfers.tsigs%20%3E%20%28model%29%20tsig%5Fdelete%5Fresponse%20%3E%20%28schema%29) { id } 

DELETE/accounts/{account\_id}/secondary\_dns/tsigs/{tsig\_id}

##### ModelsExpand Collapse 

TSIG { id, algo, name, secret } 

id: string

algo: string

TSIG algorithm.

name: string

TSIG key name.

secret: string

TSIG secret.

TSIGDeleteResponse { id } 

id?: string