Who carries each network, and whom it carries.
Every AS number in ASN with fifteen columns more: its upstreams, peers and downstreams, as counts and as lists of AS numbers; its customer cone, the networks it carries traffic for, in AS numbers, IPv4 addresses and prefixes; its rank by that cone; its transit degree; whether it is a Tier 1 network; and its siblings, the other AS numbers registered to the same organization. Rebuilt daily.
Schema at a glance.
See documentation →The schema and metadata are in the docs. It is published as CSVGZ. Every column but the fifteen it adds is ASN's.
| asn | name | rank | tier1 | customer_cone_asns | num_upstreams | num_peers | num_downstreams | num_siblings | upstreams |
|---|---|---|---|---|---|---|---|---|---|
| 3356 | Level 3 Parent, LLC | 2 | 1 | 43576 | 0 | 155 | 6371 | 39 | |
| 9121 | Turk Telekomunikasyon Anonim Sirketi | 121 | 502 | 5 | 75 | 303 | 0 | 1299|2914|3257|3320|3356 | |
| 5089 | Virgin Media Limited | 714 | 62 | 2 | 14 | 57 | 6 | 6830|12956 | |
| 786 | Jisc Services Limited | 1157 | 32 | 5 | 67 | 25 | 2 | 1299|3356|15412|20965|23764 | |
| 12322 | Free SAS | 4902 | 4 | 2 | 80 | 3 | 1 | 1299|3356 |
Downloading it from code.
Database API reference →One call gets you the current ASN Extended build. Every official client wraps it three ways: straight to disk, a time-limited link you hand to your own runner, or bytes in memory, and checksums() returns the published digests to verify it against.
download()downloadUrl()downloadBytes()metadata()checksums()import osfrom internetdata import InternetDataclient = InternetData(os.environ["INTERNETDATA_API_KEY"])# what is in today's build, without moving the filemeta = client.database.metadata("asn_extended_v1")client.database.download("asn_extended_v1", "csvgz", "./asn_extended_v1.csv.gz")sums = client.database.checksums("asn_extended_v1", "csvgz")print(meta.updated, meta.entries, sums["sha256"])
Getting your hands on it.
Teams join ASN Extended against traffic they already log, inside their own infrastructure, and never send an address anywhere to get an answer.
Transit relationships
See which networks an AS gets transit from, peers with and provides transit to, as AS numbers you can join on.
Network size
Rank networks by their customer cone, the networks they carry traffic for, and pick out the Tier 1s at the top.
One organization's networks
Group an organization's AS numbers by their siblings, so its own networks never read as its neighbors.
An official client for every major language.
All SDKs on GitHub →Twelve official clients for the languages you ship in, each wrapping the database endpoints: list what you're licensed for, poll a build, follow the download redirect and verify what landed. Install commands are in the docs.
What does a row tell us?
One AS number with every column of ASN, and fifteen more: its upstreams, peers and downstreams, its customer cone, its rank, its transit degree, whether it is Tier 1, and its siblings.
What are upstreams, peers and downstreams?
The AS numbers it gets transit from, exchanges its own and its customers' routes with, and provides transit to, pipe-separated in ascending order and counted in num_upstreams, num_peers and num_downstreams. A relationship is how two networks route each other's traffic, which isn't always what either one pays the other.
What is a customer cone?
The AS number itself, its customers, their customers and so on down. customer_cone_asns counts them, and customer_cone_ips, customer_cone_prefixes4 and customer_cone_prefixes6 count the IPv4 addresses they originate and the prefixes they announce.
How are rank and tier1 decided?
rank is an AS number's place among all those in global routing by the size of its customer cone, 1 the largest. tier1 is 1 for the transit-free networks at the top of the hierarchy, which get transit from no one and peer with each other.
What are siblings?
The other AS numbers registered to the same organization, routed or not, counted in num_siblings. They're left out of upstreams, peers and downstreams, so an organization's own networks never show as each other's neighbors.
What about an AS number that announces nothing?
One seen in no AS path keeps its row, with no rank and zeros elsewhere.
How often is it rebuilt?
Daily. The metadata call answers when the current build landed and how many rows it holds, before you fetch it.
Which formats does a build ship in?
Gzipped CSV. It's keyed by AS number, so there is no address lookup to build. Poll the metadata call first and fetch only when the build has changed.
What if a row looks wrong?
Send it to us and we'll tell you what we hold on it, when we last saw it and how. Corrections land in the next build.
Test the real build first.
An evaluation license puts a full current build in your hands, with no sampling, so you can measure it against your own traffic before anyone talks about terms.