Publishing and Using Geofeed Files via RDAP (RFC 9877)

We’ve previously covered what is a geofeed file as specified by RFC 8805 specification. If you are not sure what is a geofeed file, please read https://blog.ip2location.com/knowledge-base/what-is-geofeed/ first as it is related to this article.

In this article, we’ll go through the basics of RFC 9877 which specify a method of publishing a geofeed file for each IP range.

Regional Internet Registry (RIR)

RIR is an organization that manages the allocation and registration of Internet number resources within a region of the world. Internet number resources include IP addresses and autonomous system (AS) numbers.

As of 2025, there are five Regional Internet Registries (RIRs):

  • The African Network Information Centre (AFRINIC) is based in Ebene, Mauritius and serves all of Africa.
  • The American Registry for Internet Numbers (ARIN) is based in Chantilly, Virginia and serves Antarctica, Canada, the United States, and some Caribbean countries and territories.
  • The Asia Pacific Network Information Centre (APNIC) is based in Brisbane, Australia and serves East, South and Southeast Asia and Oceania.
  • The Latin America and Caribbean Network Information Centre (LACNIC) is based in Montevideo, Uruguay and serves Latin America as well as some Caribbean countries.
  • Réseaux IP Européens Network Coordination Centre (RIPE NCC) is based in Amsterdam, Netherlands and serves Central and West Asia, Europe, and Russia.

Each RIR operates its own RDAP service and delegated files for the ranges under its management.

RDAP Database

The above registries maintain their own RDAP database for IP ranges under their management. Anyone can query an RDAP database by IP address.

The RDAP database contains metadata for each IP network, including the organization assigned to the range and optional links to geofeed files. While there are a lot of data in the RDAP, the purpose of this article centers on the part where the current user of the IP range can publish a link to a geofeed file for that range.

NOTE: To change RDAP data, you will need to contact your registry or use the tools/websites they provide.

Registration Data Access Protocol (RDAP) Extension for Geofeed Data

An RDAP server that hosts geofeed URLs for its IP network objects may include link objects for those geofeed URLs in IP network objects in its responses. These link objects are added to the “links” member of each object.

In RDAP, the “value”, “rel”, and “href” JSON members are required for any link object. The geofeed-specific components of a link object are like so:

“rel”:  The link relation type is set to “geofeed”.  This is a new link relation type for IP geolocation feed data.

“href”:  The target URL is set to the HTTPS URL of the geofeed file for an IP network.

“type”:  “text/csv” or “application/geofeed+csv”.

NOTE: Make sure your web server hosting the geofeed URL returns the matching “Content-Type” header depending on which “type” you use in your link object.

An IP network object returned by an RDAP server MAY contain zero or more geofeed link objects, though typically an IP network will have either zero or only one. The scenario where more than one geofeed  link object could be returned is when the server is able to represent that data in multiple languages. In such a case, the server SHOULD provide “hreflang” members for the geofeed link objects. Only provide multiple geofeed link objects if the data is available in multiple languages. Otherwise, there should be at most one geofeed link per network.

Example for the geofeed link object

The following is an elided example of an IP network object with a geofeed link object:

{

    “objectClassName”: “ip network”,

    “handle”: “XXXX-RIR”,

    “startAddress”: “2001:db8::”,

    “endAddress”: “2001:db8:0:ffff:ffff:ffff:ffff:ffff”,

    “ipVersion”: “v6”,

    “name”: “NET-RTR-1”,

    “type”: “DIRECT ALLOCATION”,

    “country”: “AU”,

    “parentHandle”: “YYYY-RIR”,

    “status”: [

        “active”

    ],

    “links”: [

        {

            “value”: “https://example.net/ip/2001:db8::/48”,

            “rel”: “self”,

            “href”: “https://example.net/ip/2001:db8::/48”,

            “type”: “application/rdap+json”

        },

        {

            “value”: “https://example.net/ip/2001:db8::/48”,

            “rel”: “geofeed”,

            “href”: “https://example.com/geofeed”,

            “type”: “type”: “application/geofeed+csv”

        },

        [truncated]

    ],

    [truncated]

}

Conclusion

By publishing geofeed links via RDAP, geolocation providers can automatically fetch updates. This ensures that any changes to IP assignments or locations are reflected in geolocation databases without manual submission.

Was this article helpful?

Related Articles