rfc9910v1.txt   rfc9910.txt 
Internet Engineering Task Force (IETF) T. Harrison Internet Engineering Task Force (IETF) T. Harrison
Request for Comments: 9910 APNIC Request for Comments: 9910 APNIC
Category: Standards Track J. Singh Category: Standards Track J. Singh
ISSN: 2070-1721 ARIN ISSN: 2070-1721 ARIN
December 2025 January 2026
Registration Data Access Protocol (RDAP) Regional Internet Registry Registration Data Access Protocol (RDAP) Regional Internet Registry
(RIR) Search (RIR) Search
Abstract Abstract
The Registration Data Access Protocol (RDAP) is used by Regional The Registration Data Access Protocol (RDAP) is used by Regional
Internet Registries (RIRs) and Domain Name Registries (DNRs) to Internet Registries (RIRs) and Domain Name Registries (DNRs) to
provide access to their resource registration information. The core provide access to their resource registration information. The core
specifications for RDAP define basic search functionality, but there specifications for RDAP define basic search functionality, but there
skipping to change at line 39 skipping to change at line 39
received public review and has been approved for publication by the received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841. Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata, Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9910. https://www.rfc-editor.org/info/rfc9910.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2026 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Revised BSD License text as described in Section 4.e of the include Revised BSD License text as described in Section 4.e of the
Trust Legal Provisions and are provided without warranty as described Trust Legal Provisions and are provided without warranty as described
skipping to change at line 132 skipping to change at line 132
1.1. Conventions Used in This Document 1.1. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
Indentation and whitespace in examples are provided only to Indentation and whitespace in examples are provided only to
illustrate element relationships, and they are not a required feature illustrate element relationships and are not required features of
of this protocol. this specification.
"..." in examples is used as shorthand for elements defined outside "..." in examples is used as shorthand for elements defined outside
of this document, as well as to abbreviate elements that are too of this document, as well as to abbreviate elements that are too
long. long.
2. Basic Searches 2. Basic Searches
2.1. Path Segments 2.1. Path Segments
The new resource type path segments for basic search (similar to the The new resource type path segments for basic search (similar to the
skipping to change at line 334 skipping to change at line 334
+--------------+ +----------------+ +----------------+ +--------------+ +----------------+ +----------------+
| 192.0.2.0/28 | | 192.0.2.128/26 | | 192.0.2.192/26 | | 192.0.2.0/28 | | 192.0.2.128/26 | | 192.0.2.192/26 |
+--------------+ +----------------+ +----------------+ +--------------+ +----------------+ +----------------+
/ /
+--------------+ +--------------+
| 192.0.2.0/32 | | 192.0.2.0/32 |
+--------------+ +--------------+
Figure 1: Example Registry Objects Figure 1: Example Registry Objects
The relationships of INR object value to parent object (as well as to For this example registry, the INR object value to parent/child
child objects) are: object relationships are:
+==================+================+ +==================+================+
| INR object value | Parent object | | INR object value | Parent object |
+==================+================+ +==================+================+
| 192.0.2.0/32 | 192.0.2.0/28 | | 192.0.2.0/32 | 192.0.2.0/28 |
+------------------+----------------+ +------------------+----------------+
| 192.0.2.0/28 | 192.0.2.0/25 | | 192.0.2.0/28 | 192.0.2.0/25 |
+------------------+----------------+ +------------------+----------------+
| 192.0.2.64/26 | 192.0.2.0/25 | | 192.0.2.64/26 | 192.0.2.0/25 |
+------------------+----------------+ +------------------+----------------+
skipping to change at line 357 skipping to change at line 357
+------------------+----------------+ +------------------+----------------+
| 192.0.2.192/26 | 192.0.2.128/25 | | 192.0.2.192/26 | 192.0.2.128/25 |
+------------------+----------------+ +------------------+----------------+
| 192.0.2.0/25 | 192.0.2.0/24 | | 192.0.2.0/25 | 192.0.2.0/24 |
+------------------+----------------+ +------------------+----------------+
| 192.0.2.128/25 | 192.0.2.0/24 | | 192.0.2.128/25 | 192.0.2.0/24 |
+------------------+----------------+ +------------------+----------------+
| 192.0.2.0/24 | N/A | | 192.0.2.0/24 | N/A |
+------------------+----------------+ +------------------+----------------+
Table 1: Parent objects Table 1: Parent Objects
+==================+================================+ +==================+================================+
| INR object value | Child objects | | INR object value | Child objects |
+==================+================================+ +==================+================================+
| 192.0.2.0/24 | 192.0.2.0/25, 192.0.2.128/25 | | 192.0.2.0/24 | 192.0.2.0/25, 192.0.2.128/25 |
+------------------+--------------------------------+ +------------------+--------------------------------+
| 192.0.2.0/25 | 192.0.2.0/28 | | 192.0.2.0/25 | 192.0.2.0/28 |
+------------------+--------------------------------+ +------------------+--------------------------------+
| 192.0.2.128/25 | 192.0.2.128/26, 192.0.2.192/26 | | 192.0.2.128/25 | 192.0.2.128/26, 192.0.2.192/26 |
+------------------+--------------------------------+ +------------------+--------------------------------+
skipping to change at line 379 skipping to change at line 379
+------------------+--------------------------------+ +------------------+--------------------------------+
| 192.0.2.128/26 | N/A | | 192.0.2.128/26 | N/A |
+------------------+--------------------------------+ +------------------+--------------------------------+
| 192.0.2.192/26 | N/A | | 192.0.2.192/26 | N/A |
+------------------+--------------------------------+ +------------------+--------------------------------+
| 192.0.2.0/28 | 192.0.2.0/32 | | 192.0.2.0/28 | 192.0.2.0/32 |
+------------------+--------------------------------+ +------------------+--------------------------------+
| 192.0.2.0/32 | N/A | | 192.0.2.0/32 | N/A |
+------------------+--------------------------------+ +------------------+--------------------------------+
Table 2: Child objects Table 2: Child Objects
(INR object values do not necessarily correspond to registry objects, (INR object values do not necessarily correspond to registry objects,
because users can provide arbitrary object values as input to the because users can provide arbitrary object values as input to the
searches defined in this document.) searches defined in this document.)
Similarly to the parent/child object relationships, each INR object Similarly to the parent/child object relationships, each INR object
value may have a "top" object, being the least-specific covering value may have a "top" object, being the least-specific covering
object that exists in the registry, and one or more "bottom" objects, object that exists in the registry, and one or more "bottom" objects,
being the most-specific objects that entirely cover the INR object being the most-specific objects that entirely cover the INR object
value when taken together. Given the registry defined above, the top value when taken together. Given the registry defined above, the top
skipping to change at line 470 skipping to change at line 470
3.2.2. Relations 3.2.2. Relations
3.2.2.1. Single-Result Searches 3.2.2.1. Single-Result Searches
3.2.2.1.1. "rdap-up" 3.2.2.1.1. "rdap-up"
If the server receives a search containing the relation value "rdap- If the server receives a search containing the relation value "rdap-
up", it will return the parent object for the specified INR object up", it will return the parent object for the specified INR object
value as though that object had been requested directly. If no such value as though that object had been requested directly. If no such
object exists, it will respond with an HTTP 404 (Not Found) [RFC9110] object exists, it will respond with an HTTP 404 (Not Found) [RFC9110]
search response. status code.
3.2.2.1.2. "rdap-top" 3.2.2.1.2. "rdap-top"
If the server receives a search containing the relation value "rdap- If the server receives a search containing the relation value "rdap-
top", it will return the top object for the specified INR object top", it will return the top object for the specified INR object
value as though that object had been requested directly. If no such value as though that object had been requested directly. If no such
object exists, it will respond with an HTTP 404 (Not Found) [RFC9110] object exists, it will respond with an HTTP 404 (Not Found) [RFC9110]
search response. status code.
3.2.2.2. Multiple-Result Searches 3.2.2.2. Multiple-Result Searches
3.2.2.2.1. "rdap-down" 3.2.2.2.1. "rdap-down"
If the server receives a search containing the relation value "rdap- If the server receives a search containing the relation value "rdap-
down", it will return the child objects for the specified INR object down", it will return the child objects for the specified INR object
value. If no such objects exist, it will return an empty search value. If no such objects exist, it will return an empty search
response. Per the definitions section, this includes only immediate response. Per the definitions section, this includes only immediate
child objects. child objects.
skipping to change at line 673 skipping to change at line 673
{ {
"startAddress": "2001:db8:a::", "startAddress": "2001:db8:a::",
"endAddress": "2001:db8:a:ffff:ffff:ffff:ffff:ffff", "endAddress": "2001:db8:a:ffff:ffff:ffff:ffff:ffff",
... ...
"links": [ "links": [
..., ...,
{ {
"value": "https://example.com/rdap/ip/2001:db8:a::/48", "value": "https://example.com/rdap/ip/2001:db8:a::/48",
"rel": "rdap-up rdap-active", "rel": "rdap-up rdap-active",
"href": "href":
".../rdap/ips/rirSearch1/rdap-up/2001:db8:a::/48?status=active", ".../rdap/ips/rirSearch1/rdap-up/2001:db8:a::/48?status=active",
"type": "application/rdap+json" "type": "application/rdap+json"
}, },
{ {
"value": "https://example.com/rdap/ip/2001:db8:a::/48", "value": "https://example.com/rdap/ip/2001:db8:a::/48",
"rel": "rdap-top rdap-active", "rel": "rdap-top rdap-active",
"href": "href":
".../rdap/ips/rirSearch1/rdap-top/2001:db8:a::/48?status=active", ".../rdap/ips/rirSearch1/rdap-top/2001:db8:a::/48?status=active",
"type": "application/rdap+json" "type": "application/rdap+json"
} }
] ]
} }
Figure 5: Example Status Links in an IPv6 Response Figure 5: Example Status Links in an IPv6 Response
"rdap-active" is used only as a link relation in a link object. It "rdap-active" is used only as a link relation in a link object. It
cannot be used as a value for <relation> in the relation search URL cannot be used as a value for <relation> in the relation search URL
defined in Section 3.2. Section 3.3 details status filtering for defined in Section 3.2. Section 3.3 details status filtering for
skipping to change at line 734 skipping to change at line 734
..., ...,
{ {
"value": "https://example.com/rdap/ip/2001:db8:a::/48", "value": "https://example.com/rdap/ip/2001:db8:a::/48",
"rel": "rdap-up", "rel": "rdap-up",
"href": "https://example.com/rdap/ip/2001:db8::/32", "href": "https://example.com/rdap/ip/2001:db8::/32",
"type": "application/rdap+json" "type": "application/rdap+json"
} }
] ]
} }
Figure 7: Example single-result links in an IPv6 response Figure 7: Example Single-Result Links in an IPv6 Response
Use of these link relations in responses is OPTIONAL. The absence in Use of these link relations in responses is OPTIONAL. The absence in
a response of a link for a specific relation does not necessarily a response of a link for a specific relation does not necessarily
mean that the corresponding search will return no results. mean that the corresponding search will return no results.
4. Responding to Searches 4. Responding to Searches
4.1. Single-Result Searches 4.1. Single-Result Searches
The "rdap-up" and "rdap-top" relations are single-result searches. The "rdap-up" and "rdap-top" relations are single-result searches.
skipping to change at line 947 skipping to change at line 947
the remaining identifiers defined by this document, partly because the remaining identifiers defined by this document, partly because
such a suffix would reduce consistency with the corresponding such a suffix would reduce consistency with the corresponding
functionality for the other core object classes, and partly because functionality for the other core object classes, and partly because
it is very unlikely that the functionality associated with those it is very unlikely that the functionality associated with those
identifiers will change. identifiers will change.
7. Operational Considerations 7. Operational Considerations
When using a link object for a single-result search, a server may When using a link object for a single-result search, a server may
replace a search URL with a lookup URL, because the behaviour of the replace a search URL with a lookup URL, because the behaviour of the
lookup URL is the same as for the search URL as at the time when the lookup URL is the same as that of the search URL at the time the
response is generated. One difference between these approaches is response is generated. One difference between these approaches is
that when using the lookup URL, the server is effectively performing that when using the lookup URL, the server is effectively performing
the search on behalf of the client as at the time of response the search on behalf of the client as at the time of response
generation. If there is no change to the relevant database state generation. If there is no change to the relevant database state
between the time when the original response is generated and the time between the time when the original response is generated and the time
when the client resolves the link relation target, then the search when the client resolves the link relation target, then the search
URL and the lookup URL will lead to the same result. However, if URL and the lookup URL will lead to the same result. However, if
there is a change to the relevant database state, then the lookup URL there is a change to the relevant database state, then the lookup URL
may lead to a different result from that of the search URL. Server may lead to a different result from that of the search URL. Server
operators should consider which type of URL will be more effective operators should consider which type of URL will be more effective
skipping to change at line 1085 skipping to change at line 1085
10.2.5. rdap-active 10.2.5. rdap-active
Relation Name: rdap-active Relation Name: rdap-active
Description: The target is for an RDAP RIR search that filters for Description: The target is for an RDAP RIR search that filters for
the status "active". the status "active".
Reference: RFC 9910 Reference: RFC 9910
10.3. RDAP Reverse Search Registry 10.3. RDAP Reverse Search Registry
IANA has registered the following entries in the "RDAP Reverse IANA has registered the following entries in the "RDAP Reverse
Search" <https://www.iana.org/assignments/rdap-reverse-search/> Search" registry <https://www.iana.org/assignments/rdap-reverse-
registry. search/>.
10.3.1. fn 10.3.1. fn
Property: fn Property: fn
Description: The server supports the IP/autnum search based on the Description: The server supports the IP/autnum search based on the
full name (a.k.a. formatted name) of an associated entity. full name (a.k.a. formatted name) of an associated entity.
Searchable Resource Type: ips, autnums Searchable Resource Type: ips, autnums
Related Resource Type: entity Related Resource Type: entity
Registrant: IETF Registrant: IETF
Contact Information: iesg@ietf.org Contact Information: iesg@ietf.org
skipping to change at line 1135 skipping to change at line 1135
role of an associated entity. role of an associated entity.
Searchable Resource Type: ips, autnums Searchable Resource Type: ips, autnums
Related Resource Type: entity Related Resource Type: entity
Registrant: IETF Registrant: IETF
Contact Information: iesg@ietf.org Contact Information: iesg@ietf.org
Reference: RFC 9910 Reference: RFC 9910
10.4. RDAP Reverse Search Mapping Registry 10.4. RDAP Reverse Search Mapping Registry
IANA has registered the following entries in the "RDAP Reverse Search IANA has registered the following entries in the "RDAP Reverse Search
Mapping" <https://www.iana.org/assignments/rdap-reverse-search- Mapping" registry <https://www.iana.org/assignments/rdap-reverse-
mapping> registry. search-mapping>.
10.4.1. fn 10.4.1. fn
Property: fn Property: fn
Property Path: $.entities[*].vcardArray[1][?(@[0]=='fn')][3] Property Path: $.entities[*].vcardArray[1][?(@[0]=='fn')][3]
Searchable Resource Type: ips, autnums Searchable Resource Type: ips, autnums
Related Resource Type: entity Related Resource Type: entity
Registrant: IETF Registrant: IETF
Contact Information: iesg@ietf.org Contact Information: iesg@ietf.org
Reference: RFC 9910 Reference: RFC 9910
 End of changes. 14 change blocks. 
18 lines changed or deleted 18 lines changed or added

This html diff was produced by rfcdiff 1.48.