Use import and export to have more control over your DNS records and make processes like migrating a domain or bulk editing record comments easier.
Import records
Format your zone file
Create a BIND zone fileOpen external link for your domain. If you need help, use a third-party toolOpen external link.
If you are using certain record types — for example, CNAME
, DNAME
, MX
, NS
, PTR
, or SRV
records — make sure that the content of those records contains fully qualified domain names (which end in a trailing period like example.com.
). For more details, refer to RFC 1035Open external link or this post on Stack ExchangeOpen external link.
Import zone file to Cloudflare
To import a zone file using the dashboard:
- Log in to the Cloudflare dashboardOpen external link and select your account and domain.
- Go to DNS > Records.
- Select Import and Export.
- For Import DNS records, select your formatted file.
- If you do not want applicable records proxied, unselect Proxy imported DNS records.
To import records using the API, send a POST requestOpen API docs link with a properly formatted file.
Export records
You can also bulk export records from Cloudflare.
To export records using the dashboard:
- Log in to the Cloudflare dashboardOpen external link and select your account and domain.
- Go to DNS > Records.
- Select Import and Export.
- Select Export.
To export records using the API, send a GET requestOpen API docs link.
DNS record attributes
When exporting or importing a zone file, Cloudflare formats comments and tags using the following structure, appending the attributes as inline comment using the ;
character after each record in accordance with RFC 1035 section 5Open external link:
Combination | Description |
---|---|
Only tags | Tag names contain a small set of characters. Additionally, tag values must be contained by a double quote ( A tag with an empty value can be represented either as |
Only a comment | Comments have fewer limitations on characters, meaning that the comment is included verbatim. If the comment includes the string |
Comment and tags | The zone file comment would be of the form ; <comment> cf_tags=<tags> , as described above. Note the added space character before cf_tags= . |
Neither attribute | The comment in the zone file may be empty or omitted entirely. Comments in the zone file that do not immediately follow a record are also ignored. |
Example zone file; Only tags
a.example.com. 60 IN A 1.1.1.1 ; cf_tags=awesome
b.example.com. 60 IN A 1.1.1.1 ; cf_tags=tag1,tag2:value2,tag3:"value,with,commas",tag4:"value with \"escaped\" quotation marks"
; Only a comment
c.example.com. 60 IN A 1.1.1.1 ; just a comment without tags
d.example.com. 60 IN A 1.1.1.1 ; this comment contains cf_tags= as text cf_tags=
; Comments and tags
e.example.com. 60 IN A 1.1.1.1 ; simple example cf_tags=important,ticket:THIS-12345
f.example.com. 60 IN A 1.1.1.1 ; this is the comment cf_tags=tag1:value1,tag2:value2,tag-without-value,another-tag-without-value,tag-with-quoted-value:"because of the comma, quotes are needed"
; Neither attribute
g.example.com. 60 IN A 1.1.1.1