How to export your data from Cloudflare
The portable data in a Cloudflare account is your DNS records, which can be exported as a standard BIND zone file from the dashboard (DNS > Records > Import and Export > Export) or via the API's DNS records export endpoint. The export is per-zone (per-domain), includes Cloudflare-specific tags/comments inline, and does not cover other configuration like Page Rules, WAF rules, or Workers scripts.
✓ Verified against Cloudflare's official documentation, October 2026
Step by step
- 1Log in to the Cloudflare dashboard and select the account and domain (zone) you want to export
- 2Go to DNS > Records
- 3Select 'Import and Export'
- 4Select 'Export' to download the zone as a BIND-format zone file
- 5Alternatively, export via API: send a GET request to https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/export with an Authorization header using a token that has DNS Read or DNS Write permission
- 6Repeat per domain/zone - there is no documented bulk 'export all zones at once' option in the dashboard
What the export includes
- ✓All DNS records for the zone (A, AAAA, CNAME, MX, TXT, NS, SRV, PTR, etc.) in standard BIND zone file format
- ✓Record comments and tags, appended as inline comments after each record
- ✓Cloudflare-specific cf- tags reflecting current config, such as cf-proxied:true/false (proxy status) and cf-flatten-cname (per-record CNAME flattening, paid zones)
What it doesn't include
- ✗Page Rules, WAF/firewall rules, Workers scripts, SSL/TLS certificate settings, caching rules, and other account/zone configuration (this export only covers DNS records)
- ✗Analytics, logs, billing, or account-level data
- ✗Records from other zones - each export is scoped to a single domain/zone
Before you start
- ⚠The export produces a zone file (plain text), not CSV or JSON
- ⚠Zone file import has a 256 KiB (262,144 byte) size limit and an API rate limit of three requests per minute per user; these import limits are documented separately from export, which has no stated size limit
- ⚠If you later re-import the file (e.g., to another Cloudflare zone), CNAME/MX/NS/PTR/SRV record content must use fully qualified domain names ending in a trailing period
- ⚠The $INCLUDE zone file directive is not supported on import and will cause a parsing error; $ORIGIN, $TTL, and $GENERATE are supported
- ⚠cf- tags in the exported file (like cf-proxied) control behavior on re-import and will override the dashboard/API 'proxy imported records' setting if present
Where to take your data
Free and cheaper tools that can take a Cloudflare export. See all Cloudflare alternatives →
Cloudflare Free
If you're downgrading rather than leaving, create or switch to a Free plan zone and use DNS > Records > Import and Export > Import to upload the same BIND zone file back in
Bunny CDN
Bunny's DNS zone editor supports importing standard zone file records; upload the exported BIND file there and verify record types/TTLs match before cutting over nameservers
Fastly Free
Fastly is a CDN, not a DNS host, so the zone file isn't directly importable there; use it as a reference to recreate the origin/CNAME records needed to point your domain at a Fastly service, while keeping DNS hosted elsewhere
Exporting from Cloudflare: common questions
Can I export all my Cloudflare DNS zones at once?+
Not from the dashboard - export is done one zone (domain) at a time via DNS > Records > Import and Export. For multiple zones, you'd script the API export endpoint per zone.
What file format does Cloudflare export DNS records in?+
A standard BIND zone file (plain text), not CSV or JSON. This format is importable into most DNS providers that support BIND zone files.
Does the export include Page Rules, WAF rules, or Workers?+
No. The documented export/import feature only covers DNS records for a zone, not Page Rules, firewall/WAF rules, Workers scripts, or other account settings.
Do I need a paid plan to export my DNS records?+
No. Export and import work on any plan including Free. The only paid-plan-specific detail is the cf-flatten-cname tag, used for per-record CNAME flattening on paid zones.
What API permission do I need to export DNS records programmatically?+
An API token with at least the DNS Read or DNS Write permission on the zone.
Will re-importing the zone file preserve my proxy (orange cloud) status?+
Yes, if the exported file's cf-proxied tag is present - it takes precedence over the dashboard's 'Proxy imported DNS records' checkbox or the API's proxied parameter.
Sources
This guide was written from Cloudflare's own documentation and checked against it in October 2026. If a step has changed, the official page wins.
Cloudflare head-to-head
More Dev Tools tools people are leaving
All Dev Tools alternatives →What would you save without Cloudflare?
Pick your team size and see the yearly number.