Every mirrored registry at once · refreshed 4-hourly

IRR Validator

NOC Operator Toolkit

Route objects, as-sets, aut-nums and maintainers across every routing registry we mirror, searched together. Free. No API key. No rate limits (be reasonable).

Look something up

A prefix, an AS number, an as-set, a route-set or a maintainer handle. It works out which you meant.

4,656,923 route objects across 16 registries·oldest refreshed 5h 7m ago
Examples: 193.0.0.0/21 AS3333 AS-RIPENCC 8.8.8.0/24 RIPE-NCC-MNT
JSON Response
Enter a prefix, AS, as-set or maintainer above and click Look up.

What is mirrored

Each registry’s published database dump, re-imported every four hours. A registry whose import fails keeps the objects it already had rather than disappearing.

APNIC
886,449 route · 1,057,229 route6
5,866 sets · 26,077 aut-nums
Updated 4h 32m ago
RADB
1,130,544 route · 216,022 route6
19,013 sets · 10,080 aut-nums
Updated 5h 4m ago
RIPE
469,582 route · 112,599 route6
31,238 sets · 39,899 aut-nums
Updated 5h 7m ago
NTTCOM
281,263 route · 6,112 route6
906 sets · 575 aut-nums
Updated 22m 52s ago
ARIN
151,968 route · 46,263 route6
9,155 sets · 4,325 aut-nums
Updated 4h 23m ago
AFRINIC
122,552 route · 5,128 route6
1,672 sets · 2,793 aut-nums
Updated 5h 5m ago
TC
32,976 route · 16,005 route6
16,573 sets · 5,312 aut-nums
Updated 5h 4m ago
ALTDB
28,263 route · 8,064 route6
2,441 sets · 2,042 aut-nums
Updated 5h 4m ago
BELL
29,364 route · 94 route6
51 sets · 108 aut-nums
Updated 5h 4m ago
LACNIC
14,939 route · 5,251 route6
2,416 sets · 2,995 aut-nums
Updated 23m 12s ago
REACH
16,738 route · 1,284 route6
5 sets · 2 aut-nums
Updated 5h 4m ago
JPIRR
14,243 route · 1,383 route6
356 sets · 487 aut-nums
Updated 5h 4m ago
CANARIE
1,218 route · 81 route6
123 sets · 177 aut-nums
Updated 5h 4m ago
BBOI
1,141 route · 157 route6
46 sets · 70 aut-nums
Updated 5h 4m ago
PANIX
8 route · 1 route6
4 sets · 1 aut-nums
Updated 5h 4m ago
NESTEGG
2 route · 0 route6
0 sets · 2 aut-nums
Updated 5h 4m ago

API Documentation

No authentication required. CORS headers are included on all responses.

GET/?irr={query}

Look a prefix, AS number, as-set, route-set or maintainer handle up across every mirrored registry. The response’s kind field says which of those the input was taken to be, and the rest of the body depends on it.

ParameterTypeDescription
irrstringA prefix (193.0.0.0/21), a bare address, an AS number (AS3333), a set name (AS-RIPENCC, RS-EXAMPLE, AS3333:AS-CUSTOMERS) or a maintainer handle.
# what is registered for a prefix, and by whom curl -s "https://notoolkit.com/?irr=193.0.0.0/21" | jq . # every route object an AS has registered curl -s "https://notoolkit.com/?irr=AS3333" | jq '.route_objects' # expand an as-set to the prefix list a filter from it would hold curl -s "https://notoolkit.com/?irr=AS-RIPENCC" | jq -r '.prefixes.ipv4[]' # or just the member ASes curl -s "https://notoolkit.com/?irr=AS-RIPENCC" | jq '.expanded_asns' # everything one maintainer is listed on curl -s "https://notoolkit.com/?irr=RIPE-NCC-MNT" | jq .
POST/

The same lookup with a JSON body.

curl -s -X POST https://notoolkit.com/ \ -H 'Content-Type: application/json' \ -d '{"irr":"AS-RIPENCC"}' | jq .
GETResponse fields
FieldDescription
kindprefix, asn, set, mntner or text — how the input was read.
sourcesThe registries that contributed to this answer.
exact_objectskind=prefix: route objects for exactly this prefix, each with its origin AS, registry, description and maintainers.
covering_objectskind=prefix: route objects for less specifics that cover it. A prefix with none of its own may still be covered by one of these.
registered_originskind=prefix: the origin ASes registered for the exact prefix — what a filter built from the IRR would permit.
route_objectskind=asn: every prefix registered with this AS as its origin. route_count is the true total when the list is truncated.
expanded_asnskind=set: the flat list of AS numbers the set resolves to, following nested sets across every registry.
prefixeskind=set: the prefix list a filter built from the set would hold, deduplicated across registries and split into ipv4 and ipv6. prefix_count gives the per-family totals and prefix_total the sum; prefixes_truncated says whether the cone ran past the response ceiling.
member_ofkind=set: the sets that name this one as a member.

Common Questions

What is the IRR?
A set of databases where operators record what they intend to announce and who may announce it, as RPSL objects: route and route6 for prefixes, as-set for groups of ASes, aut-num for the ASes themselves, and mntner for the handles that maintain them. Most of the prefix filters between networks are still generated from this data, which is why a missing or wrong object shows up as “my route isn’t propagating”.
Why is the same prefix registered twice?
Because the IRR is not one database. The same prefix is routinely registered in several registries, occasionally with different origin ASes, and objects nobody cleaned up outlive the arrangements that justified them. Nothing here picks a winner: every registry’s copy is shown with the registry it came from, because that is part of the answer. A prefix registered in one registry with the right origin and in another with an old one will pass some networks’ filters and fail others.
What does expanding an as-set do?
An as-set lists members, and those members are usually other as-sets — that nesting is how customer cones are written. Expanding one follows it all the way down to the member AS numbers, then takes the second step to the prefix list those ASes have route objects for — the same thing bgpq4 produces, and the thing you actually need when a customer hands you an as-set. Members are followed across registries, because a set defined in RADB routinely names one that only exists in RIPE.
How does this relate to RPKI?
They answer the same question with different authority. A ROA is cryptographically signed and traces to an RIR trust anchor; an IRR route object is an ordinary database record, as trustworthy as the registry it sits in and whoever last touched it. In practice you need both — filters are still built from the IRR, and RPKI is what catches the cases where the IRR is wrong. The looking glass shows both for every path.
How current is the data?
Each registry’s published dump is re-imported every four hours, and most registries regenerate those dumps daily. The cards above say when each one was last loaded. This is a mirror of the dumps rather than a live whois session, so an object created in the last few minutes will not be here yet.
Is there an API?
Yes — see the documentation above. GET /?irr=193.0.0.0/21 returns JSON, and the same endpoint takes an AS number, a set name or a maintainer handle. No key, no sign-up.