NAPTR record — naming authority pointer
NAPTR is the most unusual record type in common use: its RDATA contains a regular expression that rewrites the queried name into something else — a URI, or another name to look up. It was built for the Dynamic Delegation Discovery System, and its purpose is to let one name resolve into several different services with a stated order of preference.
Six fields do the work. Order sets the sequence rules must be evaluated in; preference breaks ties within the same order; flags say what happens next (S means the result is an SRV name to look up, A means a hostname, U means the regex produced a final URI, and empty means continue with another NAPTR lookup); service names the protocol pairing; regexp is the substitution; and replacement is a plain name used instead when there is no regex.
Its living deployments are telephony. ENUM maps a phone number into a domain name under e164.arpa — +1 555 0100 becomes 0.0.1.0.5.5.5.1.e164.arpa — and NAPTR records there translate it into a SIP URI. SIP itself uses NAPTR to discover which transports a domain supports (UDP, TCP or TLS) before falling through to SRV. Outside telephony, almost everything that once justified NAPTR is now done with SRV or SVCB, which are far easier to reason about.
What a NAPTR record looks like
Type 35 · Name authority pointer (SIP/ENUM). Zone-file form below — owner name, TTL, then the record and its RDATA.
| Name | TTL | Record | What it means |
|---|---|---|---|
| example.com. | 3600 | NAPTR 10 100 "S" "SIP+D2U" "" _sip._udp.example.com. | Flag S: the replacement is an SRV name. Order 10 is evaluated before higher orders. |
| example.com. | 3600 | NAPTR 20 100 "S" "SIPS+D2T" "" _sips._tcp.example.com. | Order 20: SIP over TLS, considered only if the order-10 rule does not apply. |
| 0.0.1.0.5.5.5.1.e164.arpa. | 3600 | NAPTR 100 10 "u" "E2U+sip" "!^.*$!sip:info@example.com!" . | ENUM: flag u means the regex yields a final URI — a phone number rewritten into a SIP address. |
The mistakes that break production
Escaping the regular expression wrongly
The regexp field uses a delimiter (conventionally !) and backreferences written \1, and both the zone-file syntax and many control panels mangle the backslashes. The result is a rule that silently never matches. Query the record and read the value that was actually published rather than trusting the form you typed into.
Reaching for NAPTR when SRV would do
If the requirement is “find the host and port for this service”, that is SRV, and it is simpler, better supported and far easier to debug. NAPTR is warranted when you genuinely need rewriting or a choice between different service types — which outside telephony is rare.
Query a NAPTR record now
The box below is seeded with example.com. Choose NAPTR as the type and press Look up — the query goes from your browser straight to Cloudflare or Google over DNS-over-HTTPS, with no server of ours in the path.
DNS is the internet's address book: it turns a name like example.com into the addresses and service endpoints machines actually connect to. Every record has a type (what kind of fact it states) and a TTL (how long resolvers may cache it).
Record types
| Type | What it stores |
|---|---|
| A | IPv4 address |
| AAAA | IPv6 address |
| CNAME | Canonical name (alias) |
| MX | Mail exchanger (priority target) |
| TXT | Text — SPF, verifications, DKIM, arbitrary data |
| NS | Authoritative nameservers |
| SOA | Start of authority (serial, refresh, retry, expire, minimum) |
| SRV | Service locator (priority weight port target) |
| CAA | Which CAs may issue certificates |
| PTR | Reverse DNS (IP → name) |
| DNSKEY | DNSSEC public key |
| DS | Delegation signer (DNSSEC chain of trust) |
| HTTPS | HTTPS service binding (ALPN, ECH, hints) |
| SVCB | General service binding |
| TLSA | DANE — pin certificates in DNS |
| NAPTR | Name authority pointer (SIP/ENUM) |
TTL & “propagation”
DNS changes don't “push” anywhere — resolvers simply keep the old answer until its TTL runs out, then fetch the new one. So a change “propagates” in at most the old record's TTL. Planning a change? Lower the TTL (e.g. to 300s) a day in advance, make the change, then raise it back. The compare card above shows whether major public caches have picked your change up yet.
FAQ
What is a NAPTR record used for?
Mapping a name to a service through a rewrite rule — principally ENUM (phone numbers to SIP URIs) and SIP transport discovery. It answers “which services exist here and in what order”, before SRV answers “where”.
What do the flags mean?
S means the replacement is an SRV name to look up; A means it is a hostname with address records; U means the regex produced a final URI; empty means the result is another NAPTR lookup, so the process continues.
Should I use NAPTR for a normal service?
Almost certainly not. SRV covers host-and-port discovery, and SVCB covers richer endpoint parameters. NAPTR earns its complexity only where the rewriting itself is the requirement.