RFC 10037 PROPOSED STANDARD RDAP · DNS · REGISTRIES

RDAP DNS TTL extension: Registration Data Access Protocol (RDAP) Extension for DNS Time-to-Live (TTL) Values

An RDAP extension that lets registries show the configured DNS TTL values for a domain or nameserver.

On rfc-editor.org ↗
PUBLISHED
August 2026
AUTHORS
G. Brown
STREAM
IETF
JSON MEMBER
ttl0_data
CONFORMANCE STRING
ttl0
TTL MINIMUM
0
TTL MAXIMUM
2147483647
DOI
10.17487/RFC10037

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                          G. Brown
Request for Comments: 10037                                        ICANN
Category: Standards Track                                    August 2026
ISSN: 2070-1721


Registration Data Access Protocol (RDAP) Extension for DNS Time-to-Live
                              (TTL) Values

Abstract

   This document specifies an extension to the Registration Data Access
   Protocol (RDAP), which allows the Time-to-Live (TTL) values for
   relevant DNS record types to be included in RDAP responses.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc10037.

Copyright Notice

   Copyright (c) 2026 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Revised BSD License text as described in Section 4.e of the
   Trust Legal Provisions and are provided without warranty as described
   in the Revised BSD License.

Table of Contents

   1.  Introduction
   2.  Conventions Used in This Document
   3.  RDAP Response Specification
     3.1.  DNS Record Types and TTL Values
     3.2.  RDAP Conformance
   4.  Operational Considerations
     4.1.  RDAP Servers
     4.2.  RDAP Clients
   5.  IANA Considerations
   6.  Security Considerations
   7.  References
     7.1.  Normative References
     7.2.  Informative References
   Acknowledgements
   Author's Address

1.  Introduction

   The Registration Data Access Protocol (RDAP) [STD95] provides access
   to information about Internet resources (domain names, autonomous
   system numbers, and IP addresses).  While RFC 9083 [STD95] allows
   RDAP server operators to provide information about the content of the
   "NS", "DS", "A", and "AAAA" RRset(s) (see Section 5 of [RFC9499]),
   which are published in the DNS for a given registry object (domain or
   host object), it does not provide a mechanism to allow the Time-to-
   Live (TTL) values (see Section 5 of [RFC9499]) of those RRsets to be
   included in responses.  Inclusion of these values in RDAP responses
   (in addition to nameservers, glue IP addresses, and Delegation Signer
   (DS) records) allows out-of-band debugging of the DNS configuration
   of troublesome domain names.

   This document describes how TTL information can be included in domain
   and nameserver objects in RDAP responses.  As per Section 5.2 of
   [RFC2181], TTL values are applicable to RRsets rather than individual
   records.

2.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   This document uses terms defined in Section 1.1 of RFC 9083 [STD95].

3.  RDAP Response Specification

   Servers that support this extension MAY include a "ttl0_data" member
   in any domain (Section 5.3 of RFC 9083 [STD95]) and nameserver
   (Section 5.2 of RFC 9083 [STD95]) objects included in RDAP responses.
   As per Section 2.1 of RFC 9083 [STD95], clients that do not implement
   this specification SHOULD ignore the "ttl0_data" member.

   The "ttl0_data" member is an object that has the following members:

   *  A "values" member, which is an object that maps DNS record type
      mnemonics to TTL values; and

   *  An OPTIONAL "remarks" member, which is an array of remarks (see
      Section 4.3 of RFC 9083 [STD95]).

   As specified in Section 8 of [RFC2181], a TTL value is "an unsigned
   number, with a minimum value of 0, and a maximum value of 2147483647.
   That is, a maximum of 2^31 - 1".  TTL values MUST be represented as
   JSON numbers with no fractional component and no exponent notation.

   The TTL values included in "ttl0_data" members MUST reflect the TTL
   values as provisioned in the registry database, not the remaining TTL
   of DNS records as observed from live DNS queries.

   An example domain object with a valid "ttl0_data" member is provided
   below.  Readers should refer to RFC 9083 [STD95] for a description of
   the other objects listed in the example.

   {
     "objectClassName": "domain",
     "rdapConformance": ["rdap_level_0", "ttl0"],
     "ldhName": "domain.example",
     "ttl0_data": {
       "values": {
         "NS": 3600,
         "DS": 300
       },
       "remarks": [
         {
           "description": [
             "For more information about the .example",
             " registry policy relating to DS record TTL changes,",
             "see https://domain.example"
           ],
           "links": [
             {
               "rel": "related",
               "title": ".Example Registry DNS TTL Policy",
               "href": "https://domain.example"
             }
           ]
         }
       ]
     }
   }

   An example nameserver object with a valid "ttl0_data" member is
   provided below.

   {
     "objectClassName": "nameserver",
     "rdapConformance": ["rdap_level_0", "ttl0"],
     "ldhName": "ns1.domain.example",
     "ttl0_data": {
       "values": {
         "A": 86400,
         "AAAA": 86400
       },
       "remarks": [
         {
           "description": [
             "The .example registry does not permit TTL ",
             "values for nameservers to be changed."
           ]
         }
       ]
     }
   }

3.1.  DNS Record Types and TTL Values

   The DNS record type mnemonics that appear as the member names in
   "values" objects MUST be in all capitals and MUST be registered with
   IANA in [IANA-RRTYPES].  TTL values MUST be unsigned integers in the
   range 0-2147483647 as per Section 8 of [RFC2181].

3.2.  RDAP Conformance

   Servers returning responses containing TTL values MUST include the
   string "ttl0" in the "rdapConformance" array.

4.  Operational Considerations

4.1.  RDAP Servers

   This specification is complementary to the Extensible Provisioning
   Protocol (EPP) [RFC5730] and the EPP Mapping for DNS Time-to-Live
   (TTL) Values [RFC9803], but registry operators do not need to
   implement that extension in their EPP servers in order to implement
   this RDAP extension.

4.2.  RDAP Clients

   Many RDAP clients make use of frameworks, which automatically
   "hydrate" objects using JSON data received in RDAP responses.  As a
   result, RDAP clients that use these frameworks should explicitly
   carve out the "values" member of "ttl0_data" members.

   Since the list of record types appearing in "ttl0_data" members may
   change with time, clients that implement this extension MUST accept
   responses containing values for all valid DNS record types and SHOULD
   periodically update the list of valid DNS record types to align with
   [IANA-RRTYPES], to avoid discarding a recently added record type.

5.  IANA Considerations

   IANA has registered the following value in the "RDAP Extensions"
   registry [IANA-RDAP-EXTENSIONS]:

   Extension Identifier:  ttl0
   Registry Operator:  Any
   Specification:  RFC 10037
   Contact:  IETF <mailto:iesg@ietf.org>
   Intended Usage:  This extension describes how DNS TTL values can be
      included in RDAP responses.

6.  Security Considerations

   Security services for the extension specified in this document are
   described in RFC 7481 [STD95].

   This document only concerns itself with the representation of
   configured TTL values for domain and host objects.  The security
   implications of how those TTL values are determined, assigned, or
   modified within a registry system are out of scope.  Readers are
   referred to Section 6 of [RFC9803] for further discussion.

7.  References

7.1.  Normative References

   [IANA-RDAP-EXTENSIONS]
              IANA, "RDAP Extensions",
              <https://www.iana.org/assignments/rdap-extensions>.

   [IANA-RRTYPES]
              IANA, "Resource Record (RR) TYPEs",
              <https://www.iana.org/assignments/dns-parameters>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS
              Specification", RFC 2181, DOI 10.17487/RFC2181, July 1997,
              <https://www.rfc-editor.org/info/rfc2181>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC9499]  Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219,
              RFC 9499, DOI 10.17487/RFC9499, March 2024,
              <https://www.rfc-editor.org/info/rfc9499>.

   [STD95]    Internet Standard 95,
              <https://www.rfc-editor.org/info/std95>.
              At the time of writing, this STD comprises the following:

              Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the
              Registration Data Access Protocol (RDAP)", STD 95,
              RFC 7480, DOI 10.17487/RFC7480, March 2015,
              <https://www.rfc-editor.org/info/rfc7480>.

              Hollenbeck, S. and N. Kong, "Security Services for the
              Registration Data Access Protocol (RDAP)", STD 95,
              RFC 7481, DOI 10.17487/RFC7481, March 2015,
              <https://www.rfc-editor.org/info/rfc7481>.

              Hollenbeck, S. and A. Newton, "Registration Data Access
              Protocol (RDAP) Query Format", STD 95, RFC 9082,
              DOI 10.17487/RFC9082, June 2021,
              <https://www.rfc-editor.org/info/rfc9082>.

              Hollenbeck, S. and A. Newton, "JSON Responses for the
              Registration Data Access Protocol (RDAP)", STD 95,
              RFC 9083, DOI 10.17487/RFC9083, June 2021,
              <https://www.rfc-editor.org/info/rfc9083>.

              Blanchet, M., "Finding the Authoritative Registration Data
              Access Protocol (RDAP) Service", STD 95, RFC 9224,
              DOI 10.17487/RFC9224, March 2022,
              <https://www.rfc-editor.org/info/rfc9224>.

7.2.  Informative References

   [RFC5730]  Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
              STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009,
              <https://www.rfc-editor.org/info/rfc5730>.

   [RFC9803]  Brown, G., "Extensible Provisioning Protocol (EPP) Mapping
              for DNS Time-to-Live (TTL) Values", RFC 9803,
              DOI 10.17487/RFC9803, June 2025,
              <https://www.rfc-editor.org/info/rfc9803>.

Acknowledgements

   The author wishes to thank the following for their constructive
   feedback and advice during the development of this document: Andy
   Newton, Pawel Kowalik, Maarten Wullink, Mohamed Boucadair, Vijay
   K. Gurbani, Di Ma, Nabeel Cocker, Ketan Talaulikar, Ralf Weber, Mike
   Bishop, Mahesh Jethanandani, and Éric Vyncke.

Author's Address

   Gavin Brown
   ICANN
   12025 Waterfront Drive, Suite 300
   Los Angeles, CA 90094-2536
   United States of America
   Email: gavin.brown@icann.org

AI ELI5

On this page
PROBLEMRDAP can already report a domain's NS, DS, A and AAAA data, but not the Time-to-Live values of those RRsets, which makes out-of-band debugging of troublesome domains harder.
MECHANISMServers MAY add a ttl0_data object to domain and nameserver objects. Its values member maps DNS record type mnemonics to TTL numbers, and the response lists ttl0 in rdapConformance.
WHY IT MATTERSOperators and clients can see the TTLs provisioned in the registry database, not the remaining TTL seen in live DNS queries.

§1Why RDAP Needs TTL Values

The Registration Data Access Protocol (RDAP) gives access to information about domain names, autonomous system numbers and IP addresses. RFC 9083 lets servers describe the content of the NS, DS, A and AAAA RRsets published in the DNS for a registry object, but it has no way to include the Time-to-Live (TTL) of those RRsets.

Adding the TTLs, alongside nameservers, glue IP addresses and Delegation Signer (DS) records, allows out-of-band debugging of the DNS configuration of troublesome domain names. As in RFC 2181, TTLs apply to RRsets rather than to individual records.

The registration card already says who answers questions about a website. It did not say how long people may remember the answer. Now it can.

§3The ttl0_data Member

Servers that support the extension MAY include a ttl0_data member in any domain or nameserver object in an RDAP response. Clients that do not implement the extension SHOULD ignore it.

The member is an object with two parts: a values member that maps DNS record type mnemonics to TTL values, and an OPTIONAL remarks member, which is an array of RDAP remarks.

TTL values MUST be JSON numbers with no fractional component and no exponent notation. The values MUST reflect the TTLs as provisioned in the registry database, not the remaining TTL of records seen in live DNS queries.

It is a little box on the card with two parts: a list saying "this kind of record, this many seconds", and an optional note from the registry.

NAMESERVER OBJECT EXAMPLE (ABRIDGED FROM RFC 10037)
ttl0_data in a nameserver object
{
  "objectClassName": "nameserver",
  "rdapConformance": ["rdap_level_0", "ttl0"],
  "ldhName": "ns1.domain.example",
  "ttl0_data": {
    "values": {
      "A": 86400,
      "AAAA": 86400
    }
  }
}

§3.1Record Types and TTL Ranges

The member names in values are DNS record type mnemonics. They MUST be in all capitals and MUST be registered with IANA as resource record types.

A TTL MUST be an unsigned integer from 0 to 2147483647, as RFC 2181 defines. A domain example in the RFC carries NS and DS values, and a nameserver example carries A and AAAA values.

Record names are written in capital letters, and the number of seconds cannot be negative or bigger than the largest allowed number.

§3.2Declaring Conformance

Servers returning responses with TTL values MUST include the string ttl0 in the rdapConformance array. That is how a client knows the extension is in use. IANA has registered ttl0 in the RDAP Extensions registry, with registry operator Any.

A response with TTLs must wave a small flag named ttl0 so the reader knows the extra box is there.

§4Notes for Servers and Clients

Servers. The extension complements the Extensible Provisioning Protocol (EPP) and the EPP mapping for DNS TTL values in RFC 9803, but registry operators do not need to implement that EPP extension to implement this one.

Clients. Many RDAP clients use frameworks that automatically "hydrate" objects from JSON, so they should explicitly carve out the values member of ttl0_data. Because the record types may change over time, clients that implement the extension MUST accept values for all valid DNS record types and SHOULD periodically update their list from the IANA registry to avoid discarding a recently added type.

Servers do not need the matching registration-system feature first. Readers should be ready for new kinds of records to show up, rather than throwing away ones they have not seen before.

§6Security Considerations

Security services for the extension are those described in RFC 7481. The document concerns only how configured TTL values for domain and host objects are represented. How a registry determines, assigns or modifies those values is out of scope, and the RFC points readers to Section 6 of RFC 9803 for that discussion.

This note only describes how to show the numbers. It does not say who may change them, which is covered elsewhere.

§7References