AiVikings Blog

Why a zone file is not an availability check: RDAP, EPP and CZDS compared

A name in a zone file is taken. A name missing from one may be taken too. How to combine registry checks, RDAP and zone files when you check thousands of names.

A zone file can prove that a domain is taken. It cannot prove that a domain is free. A name that appears in the zone file is registered. A name that is missing from it might be available, or it might be registered and simply not published.

That asymmetry is the most useful thing to know when you check availability for thousands of names, and it is the reason a checker built only on zone files will sometimes tell you a lie.

The phone book

A phone book printed yesterday is a fine way to find out whether somebody has a phone number. If the name is in the book, there is a phone. But if the name is not in the book, you do not know much. The person may have moved in this morning. Or they may have a secret number.

Zone files are the phone book of the internet. A name in the book is real. A name outside it is a question mark.

The three methods

Registry check (EPP). The registrar asks the registry directly whether a name is available, using the domain check command in the EPP standard (RFC 5731). This is the authoritative answer. It also tells you about reserved and premium names. The downsides are rate limits, and that it is usually available only to registrars.

RDAP. A web-based way to look up registration data, defined in RFC 9083. If a lookup returns a registration record, the name is taken. If it returns "not found", the name is probably free, but registries differ in how they answer, and you query one name at a time. Expect rate limits here too.

Zone files (CZDS). ICANN's Centralized Zone Data Service gives approved users daily copies of the zone files for participating generic TLDs. They are cheap to query once you hold them, because you can look up names locally. The limits are the interesting part.

Where zone files lie

  • They list delegated names. A zone file contains names that have nameservers set. A registered domain with no delegation, or one that is on hold, may be missing from it.
  • They are daily snapshots. A name registered or deleted this afternoon will not show up until the next file.
  • They cover generic TLDs, not most country codes. Many ccTLD registries do not publish zone files through CZDS.
  • Absence is not availability. The NDSS 2025 study of defensive registrations found names that were absent from zone files for more than 90 days, and still turned out to be registered in WHOIS records.

So the rule is: presence proves taken, absence proves nothing.

How to combine them

For a large list, a sensible order is this:

  1. Filter with the zone file. Look up every name locally. Anything present is registered. Remove it from the list. This is fast and costs nothing per name.
  2. Confirm what is left. For names that are absent, ask the registry with an EPP check, or use RDAP where EPP is not available. Treat only this answer as "available".
  3. Handle premium names. A name can be available but priced as a premium. Get the quote before you report anything as a purchase. The post on availability, quotes and registration explains why these are separate facts.
  4. Record uncertainty. If a check fails or times out, mark the name as unknown. Do not mark it as available, and do not mark it as taken. The post on checking 500 domains in batches shows how to keep errors apart from unavailability.
  5. Check again before you buy. A name that was free an hour ago may not be free now, so repeat the registry check just before registration.

Where AiVikings.ai fits

AiVikings.ai is building its own availability checker, called Hugin, around this idea: combine registry checks, DNS, RDAP and cached zone files, so that an agent gets an answer it can trust. It is early. I will tell you when it is ready, and I will tell you what it cannot do. Until then, the documentation and the MCP tools reference describe what is available today.

Questions people ask

Is a name missing from a zone file available?

Not necessarily. It may be registered but not published, or registered after the snapshot.

Is RDAP enough to check availability?

For a single name it is a good signal. For thousands of names, rate limits and differences between registries make it harder.

Do zone files include country-code TLDs?

Mostly not. CZDS covers participating generic TLDs.

How fresh is a zone file?

Usually a daily snapshot, so changes made today are not in it yet.

Sources

  • RFC 5731, Extensible Provisioning Protocol: Domain Name Mapping
  • RFC 9083, JSON Responses for the Registration Data Access Protocol
  • ICANN, Centralized Zone Data Service documentation
  • Adjibi et al., The Guardians of Name Street, NDSS 2025

If you have found a case where a checker lied to you, tell me about it in the chat on the website.

/Thomas

Building agents?

Point your MCP client at mcp.aivikings.ai, or read the docs at docs.aivikings.ai.