← Docs

PrimeDNS imports and exports zones in standard BIND format, so moving from Cloudflare, Route53, or any other provider is an export-then-import — no manual record-by-record re-entry, and no lock-in if you ever want to leave.

1. Export your zone from your current provider

Every major provider can export a BIND zone file:

  • Cloudflare — DNS → Records → Export (top right of the records table).
  • Route53 — aws route53 list-resource-record-sets --hosted-zone-id ZXXXXXXX --output json, or use a converter like cli53 export to get a BIND-format file directly.
  • BIND / any nameserver you run yourself — the zone file already is the BIND format; use it as-is.

2. Add the domain to PrimeDNS

If you haven't already, add the domain in Domains → Add external domain (see Quick Start) — this creates an empty zone for it.

3. Import

Open the zone's Records page and click Import zone. Paste the zone file or drop the .zone/.txt file. Tick Dry run — parse only, don't create records first to see what would be created without committing anything.

Import zone modal with drop-zone, BIND zone file textarea and dry-run checkbox

SOA and apex NS records in the file are skipped automatically — PrimeDNS manages those itself. Records that already exist in the zone are silently ignored, so re-running an import is safe.

Or import via the API directly, useful for scripting a bulk migration of many domains:

curl -X POST https://api.primedns.net/v1/zones/example.com/import \
  -H "X-API-Key: pdns_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  --data-binary @example.com.zone

4. Verify before cutting over

Query PrimeDNS's nameservers directly to confirm records match, before touching your registrar's NS delegation:

for name in @ www mail; do
  echo "--- $name ---"
  dig @ns1.primedns.net example.com $name A +short 2>/dev/null
  dig @ns1.primedns.net $name.example.com A +short
done

Or diff the two zones programmatically by exporting back out and comparing:

curl "https://api.primedns.net/v1/zones/example.com/export" \
  -H "X-API-Key: pdns_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -o example.com.primedns.zone
diff example.com.zone example.com.primedns.zone

5. Cut over

Once records check out, change the domain's nameservers at your registrar to:

ns1.primedns.net
ns2.primedns.net
Tip: lower the TTL on your old provider's records a day or two before migrating, so any final change propagates fast, then raise it again once you've fully cut over to PrimeDNS.

Exporting later (no lock-in)

You can export any zone back out to standard BIND format at any time, from the same Records page (Export zone) or via the API:

curl "https://api.primedns.net/v1/zones/example.com/export" \
  -H "X-API-Key: pdns_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"