GET/api/v2/asn

ASN lookup API

An autonomous system's holder, registry, prefixes, address space, peers and users, by AS number or from an IP, prefix or domain.

GEThttps://dnsrobot.netBase URL/api/v2Version/asnEndpoint?q=Parameters
200 OKRecorded 2026-10-25. Send it to run the request live.
{
  "query": {
    "q": "AS13335"
  },
  "asn": 13335,
  "resolvedFrom": null,
  "special": null,
  "status": "assigned",
  "name": "CLOUDFLARENET",
  "holder": "Cloudflare, Inc.",
  "brand": {
    "name": "Cloudflare"
  },
  "kind": "cdn",
  "service": null,
  "country": "US",
  "registry": "arin",
  "allocated": "2010-07-14",
  "tier1": false,
  "prefixes": {
    "ipv4Count": 2542,
    "ipv6Count": 2971,
    "ipv4": [
      "1.0.0.0/24",
      "1.1.1.0/24",
      "5.10.214.0/24",
      "5.10.215.0/24",
      "5.83.149.0/24",
      "5.172.33.0/24",
      "5.226.183.0/24",
      "5.252.81.0/24",
      "8.6.112.0/24",
      "8.20.125.0/24",
      "8.21.10.0/24",
      "8.24.87.0/24",
      "8.27.64.0/24",
      "8.27.66.0/24",
      "8.27.67.0/24",
      "8.29.109.0/24",
      "8.29.228.0/24",
      "8.29.230.0/24",
      "8.29.231.0/24",
      "8.31.160.0/24",
      "8.31.161.0/24",
      "8.34.70.0/24",
      "8.34.146.0/24",
      "8.35.211.0/24",
      "8.39.125.0/24",
      "8.39.204.0/24",
      "8.39.214.0/24",
      "8.44.0.0/24",
      "8.44.1.0/24",
      "8.44.2.0/24",
      "8.44.61.0/24",
      "8.44.62.0/24",
      "8.47.69.0/24",
      "16.5.144.0/20",
      "23.131.204.0/24",
      "23.145.136.0/24",
      "23.145.152.0/24",
      "23.145.232.0/24",
      "23.145.248.0/24",
      "23.179.248.0/24",
      "23.180.136.0/24",
      "23.227.37.0/24",
      "23.227.38.0/23",
      "23.227.42.0/23",
      "23.227.48.0/23",
      "23.227.60.0/24",
      "31.185.108.0/24",
      "37.72.109.0/24",
      "37.153.170.0/24",
      "37.153.171.0/24",
      "38.96.28.0/23",
      "42.61.47.0/24",
      "43.229.39.0/24",
      "43.230.144.0/24",
      "45.6.45.0/24",
      "45.6.47.0/24",
      "45.12.44.0/24",
      "45.12.45.0/24",
      "45.43.147.0/24",
      "45.43.158.0/24",
      "45.45.255.0/24",
      "45.128.76.0/24",
      "45.130.106.0/24",
      "45.130.125.0/24",
      "45.134.227.0/24",
      "45.146.130.0/24",
      "45.148.100.0/24",
      "45.152.208.0/24",
      "45.157.17.0/24",
      "45.192.223.0/24",
      "45.192.224.0/24",
      "45.195.153.0/24",
      "45.196.29.0/24",
      "45.196.168.0/24",
      "45.198.114.0/24",
      "45.198.116.0/24",
      "45.198.139.0/24",
      "45.199.183.0/24",
      "45.199.188.0/24",
      "46.38.152.0/24",
      "49.238.236.0/22",
      "49.238.236.0/24",
      "49.238.237.0/24",
      "49.238.238.0/24",
      "49.238.239.0/24",
      "51.194.144.0/22",
      "51.241.128.0/23",
      "57.250.49.0/24",
      "57.250.50.0/24",
      "57.250.51.0/24",
      "57.250.58.0/24",
      "61.8.33.0/24",
      "61.32.240.0/24",
      "61.245.108.0/24",
      "62.144.59.0/24",
      "62.146.255.0/24",
      "64.8.255.0/24",
      "64.40.138.0/24",
      "64.40.140.0/24",
      "64.205.115.0/24"
    ],
    "ipv6": [
      "2001:500:210::/48",
      "2001:501:210::/48",
      "2001:678:19c::/48",
      "2400:cb00:4::/48",
      "2400:cb00:11::/48",
      "2400:cb00:12::/48",
      "2400:cb00:14::/48",
      "2400:cb00:15::/48",
      "2400:cb00:16::/48",
      "2400:cb00:17::/48",
      "2400:cb00:19::/48",
      "2400:cb00:20::/48",
      "2400:cb00:21::/48",
      "2400:cb00:22::/48",
      "2400:cb00:23::/48",
      "2400:cb00:26::/48",
      "2400:cb00:27::/48",
      "2400:cb00:28::/48",
      "2400:cb00:29::/48",
      "2400:cb00:31::/48",
      "2400:cb00:34::/48",
      "2400:cb00:35::/48",
      "2400:cb00:38::/48",
      "2400:cb00:39::/48",
      "2400:cb00:40::/48",
      "2400:cb00:43::/48",
      "2400:cb00:44::/48",
      "2400:cb00:45::/48",
      "2400:cb00:46::/48",
      "2400:cb00:47::/48",
      "2400:cb00:48::/48",
      "2400:cb00:49::/48",
      "2400:cb00:50::/48",
      "2400:cb00:51::/48",
      "2400:cb00:52::/48",
      "2400:cb00:53::/48",
      "2400:cb00:54::/48",
      "2400:cb00:56::/48",
      "2400:cb00:57::/48",
      "2400:cb00:59::/48",
      "2400:cb00:61::/48",
      "2400:cb00:63::/48",
      "2400:cb00:64::/48",
      "2400:cb00:65::/48",
      "2400:cb00:66::/48",
      "2400:cb00:67::/48",
      "2400:cb00:69::/48",
      "2400:cb00:70::/48",
      "2400:cb00:71::/48",
      "2400:cb00:72::/48",
      "2400:cb00:73::/48",
      "2400:cb00:74::/48",
      "2400:cb00:75::/48",
      "2400:cb00:77::/48",
      "2400:cb00:78::/48",
      "2400:cb00:79::/48",
      "2400:cb00:80::/48",
      "2400:cb00:81::/48",
      "2400:cb00:83::/48",
      "2400:cb00:84::/48",
      "2400:cb00:85::/48",
      "2400:cb00:86::/48",
      "2400:cb00:87::/48",
      "2400:cb00:88::/48",
      "2400:cb00:89::/48",
      "2400:cb00:90::/48",
      "2400:cb00:94::/48",
      "2400:cb00:97::/48",
      "2400:cb00:98::/48",
      "2400:cb00:100::/48",
      "2400:cb00:102::/48",
      "2400:cb00:103::/48",
      "2400:cb00:106::/48",
      "2400:cb00:107::/48",
      "2400:cb00:109::/48",
      "2400:cb00:112::/48",
      "2400:cb00:113::/48",
      "2400:cb00:114::/48",
      "2400:cb00:115::/48",
      "2400:cb00:116::/48",
      "2400:cb00:119::/48",
      "2400:cb00:120::/48",
      "2400:cb00:121::/48",
      "2400:cb00:123::/48",
      "2400:cb00:124::/48",
      "2400:cb00:125::/48",
      "2400:cb00:126::/48",
      "2400:cb00:128::/48",
      "2400:cb00:131::/48",
      "2400:cb00:132::/48",
      "2400:cb00:134::/48",
      "2400:cb00:136::/48",
      "2400:cb00:137::/48",
      "2400:cb00:138::/48",
      "2400:cb00:140::/48",
      "2400:cb00:141::/48",
      "2400:cb00:143::/48",
      "2400:cb00:144::/48",
      "2400:cb00:145::/48",
      "2400:cb00:147::/48"
    ],
    "truncated": true
  },
  "addresses": {
    "ipv4": 1415168,
    "ipv6Slash48": 1257893,
    "routedIpv4": 1410560
  },
  "relationships": {
    "providers": 106,
    "peers": 956,
    "customers": 1032
  },
  "users": null,
  "ipv4Geography": {
    "countries": 124,
    "top": [
      {
        "country": "CA",
        "addresses": 806559
      },
      {
        "country": "US",
        "addresses": 149522
      },
      {
        "country": "GB",
        "addresses": 79277
      },
      {
        "country": "JP",
        "addresses": 31234
      },
      {
        "country": "DE",
        "addresses": 31226
      }
    ]
  },
  "siblings": {
    "count": 6,
    "asns": [
      14789,
      395747,
      22061,
      400095,
      402542,
      394536
    ]
  },
  "source": "tables",
  "data": {
    "routes": "2026-10-23T18:13:44.000Z",
    "registrations": "2026-10-23",
    "organisations": "2026-10-01",
    "relationships": "2026-10-01",
    "users": "2026-10-15"
  },
  "tookMs": 448
}

How it works

Reads one AS number from our snapshot of public tables: the RIRs' delegated statistics (registry, country, date), CAIDA AS Organizations (holder) and AS Relationships (providers, peers, customers, the Tier 1 clique), RIPE RIS (prefixes seen by at least 10 of its peers), IPtoASN (routed space) and APNIC Labs (users per country). data gives each table's date.

An IP address, a prefix or a domain is first resolved to the AS announcing it through Team Cymru's IP-to-ASN service (for a domain, its first IPv4 and IPv6 address); resolvedFrom shows how, with every origin when several networks announce it. A number newer than the snapshot gets its name, registry and date from Team Cymru (source: "cymru").

Special-purpose numbers (AS0, AS23456, documentation and private-use ranges) are a 200 with special. Registration contact records (RDAP) are never fetched or served from our server: query your registry's RDAP for them.

Answers kept: 1 hour (`public, max-age=3600`): the tables change with each data refresh, Team Cymru's routing every 4 hours. Answers with `incomplete` aren't cached.

Query parameters

  • qstringrequired
    An AS number (AS13335, 13335, asdot 1.10), an IPv4 or IPv6 address, a prefix (8.8.8.0/24) or a domain.

Response fields

200 with this JSON object, plus tookMs, and incomplete with warnings when a source failed. Fields marked optional appear only when they apply.

  • queryobjectalways
    What was looked up, normalised (lower case, no trailing dot, IDNs as Punycode).
    • qstringalways
      What was looked up: AS<number>, the address, the prefix with its network address, or the domain in lower case.
  • asninteger or nullalways
    The AS number described, or null when the IP, prefix or domain led to none (see resolvedFrom.finding).
  • resolvedFromobject or nullalways
    How an IP, prefix or domain led to the AS (Team Cymru); null for an AS number.
    Show 6 fields
    • kindstringalways
      What q was.

      one of "ip", "prefix", "domain"

    • targetstringalways
      The address, prefix or domain resolved.
    • addressesarray of stringsalways
      The addresses asked about (a domain's first IPv4 and IPv6).
    • originsarray of objectsalways
      Every origin Team Cymru lists, most specific prefix first.
      Show 6 fields
      • asnintegeralways
        The announcing AS.
      • prefixstringalways
        The announced prefix.
      • countrystring or nullalways
        The block's registered country.
      • registrystring or nullalways
        The block's registry.
      • allocatedstring or nullalways
        When the registry handed out the block (YYYY-MM-DD), never the AS's age.
      • ipstringalways
        The address it answers for.
    • moasbooleanalways
      Whether one prefix is announced by several networks (multi-origin AS).
    • findingstring or nullalways
      Why there is no AS: nxdomain (no such domain), no_address (the domain has no A or AAAA record), unrouted (no network announces it); null when one does.

      one of "nxdomain", "no_address", "unrouted", null

  • specialobject or nullalways
    The IANA special-purpose range the number is in, or null.
    • kindstringalways
      reserved (AS0, RFC 7607), as_trans (AS23456, RFC 6793), documentation (RFC 5398), private_use (RFC 6996), last (RFC 7300) or iana_reserved.

      one of "reserved", "as_trans", "documentation", "private_use", "last", "iana_reserved"

    • rangeobjectalways
      The range.
      Show 2 fields
      • fromintegeralways
        First number.
      • tointegeralways
        Last number.
    • rfcstringalways
      The RFC that defines it, or IANA.
  • statusstring or nullalways
    assigned, available or reserved (the registry's pool), unassigned (announced, but in no registry's statistics), special, unknown (not in our tables); null with no AS.

    one of "assigned", "available", "reserved", "unassigned", "special", "unknown", null

  • namestring or nullalways
    The AS name ("CLOUDFLARENET").
  • holderstring or nullalways
    The organization holding it (CAIDA AS Organizations: "Cloudflare, Inc.").
  • brandobject or nullalways
    The brand people know, where our tables have one.
    • namestringalways
      The brand.
  • kindstring or nullalways
    What kind of network: cdn, content, cloud, hosting, relay, transit, isp, satellite, edu, gov or other.

    one of "cdn", "content", "cloud", "hosting", "relay", "transit", "isp", "satellite", "edu", "gov", "other", null

  • servicestring or nullalways
    An ISP's service: fixed, mobile or both.

    one of "fixed", "mobile", "both", null

  • countrystring or nullalways
    The country it is registered in.
  • registrystring or nullalways
    The regional registry: arin, ripencc, apnic, lacnic or afrinic.
  • allocatedstring or nullalways
    When the registry assigned the number (YYYY-MM-DD).
  • tier1boolean or nullalways
    Whether it is in CAIDA's Tier 1 clique.
  • prefixesobject or nullalways
    Prefixes RIPE RIS sees it announce (at least 10 of RIS's peers), or null when it announces none.
    Show 5 fields
    • ipv4Countintegeralways
      IPv4 prefixes.
    • ipv6Countintegeralways
      IPv6 prefixes.
    • ipv4array of stringsalways
      The IPv4 prefixes, sorted by address, the first 100.
    • ipv6array of stringsalways
      The IPv6 prefixes, sorted by address, the first 100.
    • truncatedbooleanalways
      Whether a list stops at 100.
  • addressesobject or nullalways
    Address space it originates, overlaps counted once.
    • ipv4integer or nullalways
      Unique IPv4 addresses.
    • ipv6Slash48integer or nullalways
      Unique IPv6 /48 blocks.
    • routedIpv4integer or nullalways
      IPv4 addresses whose most specific route ends at it (IPtoASN).
  • relationshipsobject or nullalways
    CAIDA's inferred relationships, or null when it has none.
    • providersintegeralways
      Networks it buys transit from.
    • peersintegeralways
      Networks it peers with.
    • customersintegeralways
      Networks it sells transit to.
  • usersobject or nullalways
    APNIC Labs' user estimates (at least 1,000 users in a country), or null.
    • estimateintegeralways
      Users in every country counted, added up.
    • countriesintegeralways
      Countries where it has users.
    • toparray of objectsalways
      The largest countries, at most 6.
      Show 4 fields
      • countrystringalways
        ISO 3166-1 alpha-2 code.
      • usersintegeralways
        Estimated users there.
      • sharenumberalways
        Percent of the country's users.
      • rankintegeralways
        Rank among the country's networks.
  • ipv4Geographyobject or nullalways
    Where its IPv4 space is (its unique addresses placed by DB-IP), or null.
    • countriesintegeralways
      Countries in all.
    • toparray of objectsalways
      The largest, at most 5.
      Show 2 fields
      • countrystringalways
        ISO 3166-1 alpha-2 code.
      • addressesintegeralways
        IPv4 addresses there.
  • siblingsobject or nullalways
    Other numbers in the same registry record (one holder at one RIR), or null (none, or a national registry's record shared by many holders).
    • countintegeralways
      How many in all.
    • asnsarray of integersalways
      The first 12, announcing ones first.
  • sourcestring or nullalways
    Where the record came from: tables (our snapshot) or cymru (a number newer than it).

    one of "tables", "cymru", null

  • dataobjectalways
    The date of each table.
    Show 5 fields
    • routesstringalways
      RIPE RIS routes.
    • registrationsstringalways
      RIR delegated statistics.
    • organisationsstringalways
      CAIDA AS Organizations.
    • relationshipsstringalways
      CAIDA AS Relationships.
    • usersstringalways
      APNIC Labs' user estimates.

Errors

  • 422 target_not_allowed q is (or a domain resolves to) a private or special-purpose address: no network announces it.
  • 503 unavailable Team Cymru or DNS didn't answer for an IP, prefix or domain, or the tables couldn't be read.

Plus the errors every endpoint can return: 400 for a missing or unreadable parameter, 429 past the limit, 503 when every source failed.

Code samples

curl "https://dnsrobot.net/api/v2/asn?q=AS13335"
const params = new URLSearchParams({ q: "AS13335" });
const res = await fetch(`https://dnsrobot.net/api/v2/asn?${params}`);
const data = await res.json();
if (!res.ok) throw new Error(data.error.message);
console.log(data.holder);
import requests

r = requests.get(
    "https://dnsrobot.net/api/v2/asn",
    params={"q": "AS13335"},
    timeout=30,
)
data = r.json()
if not r.ok:
    raise RuntimeError(data["error"]["message"])
print(data["holder"])
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"net/url"
)

func main() {
	q := url.Values{"q": {"AS13335"}}
	res, err := http.Get("https://dnsrobot.net/api/v2/asn?" + q.Encode())
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	var data map[string]any
	if err := json.NewDecoder(res.Body).Decode(&data); err != nil {
		panic(err)
	}
	if res.StatusCode != http.StatusOK {
		panic(data["error"])
	}
	fmt.Println(data["holder"])
}
<?php
$query = http_build_query(["q" => "AS13335"]);
$context = stream_context_create(["http" => ["ignore_errors" => true, "timeout" => 30]]);
$data = json_decode(file_get_contents("https://dnsrobot.net/api/v2/asn?" . $query, false, $context), true);
if (isset($data["error"])) {
    throw new RuntimeException($data["error"]["message"]);
}
print_r($data["holder"]);
require "net/http"
require "json"

uri = URI("https://dnsrobot.net/api/v2/asn")
uri.query = URI.encode_www_form(q: "AS13335")
data = JSON.parse(Net::HTTP.get(uri))
raise data["error"]["message"] if data["error"]
puts data["holder"]
// Cargo.toml: reqwest = { version = "0.13", features = ["blocking", "json"] }, serde_json = "1"
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let res = reqwest::blocking::get("https://dnsrobot.net/api/v2/asn?q=AS13335")?;
    let ok = res.status().is_success();
    let data: serde_json::Value = res.json()?;
    if !ok {
        return Err(data["error"]["message"].to_string().into());
    }
    println!("{}", data["holder"]);
    Ok(())
}
using System.Text.Json;

using var http = new HttpClient();
var res = await http.GetAsync("https://dnsrobot.net/api/v2/asn?q=AS13335");
var data = JsonDocument.Parse(await res.Content.ReadAsStringAsync()).RootElement;
if (!res.IsSuccessStatusCode)
    throw new Exception(data.GetProperty("error").GetProperty("message").GetString());
Console.WriteLine(data.GetProperty("holder"));

Cloudflare's AS13335

GET /api/v2/asn?q=AS13335
200 OKRecorded 2026-10-25
{
  "query": {
    "q": "AS13335"
  },
  "asn": 13335,
  "resolvedFrom": null,
  "special": null,
  "status": "assigned",
  "name": "CLOUDFLARENET",
  "holder": "Cloudflare, Inc.",
  "brand": {
    "name": "Cloudflare"
  },
  "kind": "cdn",
  "service": null,
  "country": "US",
  "registry": "arin",
  "allocated": "2010-07-14",
  "tier1": false,
  "prefixes": {
    "ipv4Count": 2542,
    "ipv6Count": 2971,
    "ipv4": [
      "1.0.0.0/24",
      "1.1.1.0/24",
      "5.10.214.0/24",
      // … 97 more items
    ],
    "ipv6": [
      "2001:500:210::/48",
      "2001:501:210::/48",
      "2001:678:19c::/48",
      // … 97 more items
    ],
    "truncated": true
  },
  "addresses": {
    "ipv4": 1415168,
    "ipv6Slash48": 1257893,
    "routedIpv4": 1410560
  },
  "relationships": {
    "providers": 106,
    "peers": 956,
    "customers": 1032
  },
  "users": null,
  "ipv4Geography": {
    "countries": 124,
    "top": [
      {
        "country": "CA",
        "addresses": 806559
      },
      {
        "country": "US",
        "addresses": 149522
      },
      {
        "country": "GB",
        "addresses": 79277
      },
      // … 2 more items
    ]
  },
  "siblings": {
    "count": 6,
    "asns": [
      14789,
      395747,
      22061,
      // … 3 more items
    ]
  },
  "source": "tables",
  "data": {
    "routes": "2026-10-23T18:13:44.000Z",
    "registrations": "2026-10-23",
    "organisations": "2026-10-01",
    "relationships": "2026-10-01",
    "users": "2026-10-15"
  },
  "tookMs": 448
}

Shortened for the page: long lists show their first items.

The AS behind 8.8.8.8

GET /api/v2/asn?q=8.8.8.8
200 OKRecorded 2026-10-25
{
  "query": {
    "q": "8.8.8.8"
  },
  "asn": 15169,
  "resolvedFrom": {
    "kind": "ip",
    "target": "8.8.8.8",
    "addresses": [
      "8.8.8.8"
    ],
    "origins": [
      {
        "asn": 15169,
        "prefix": "8.8.8.0/24",
        "country": "US",
        "registry": "arin",
        "allocated": "2023-12-28",
        "ip": "8.8.8.8"
      }
    ],
    "moas": false,
    "finding": null
  },
  "special": null,
  "status": "assigned",
  "name": "GOOGLE",
  "holder": "Google LLC",
  "brand": {
    "name": "Google"
  },
  "kind": "content",
  "service": null,
  "country": "US",
  "registry": "arin",
  "allocated": "2000-03-30",
  "tier1": false,
  "prefixes": {
    "ipv4Count": 1247,
    "ipv6Count": 176,
    "ipv4": [
      "8.8.4.0/24",
      "8.8.8.0/24",
      "34.0.0.0/15",
      // … 97 more items
    ],
    "ipv6": [
      "2001:4860::/32",
      "2001:4860:4820::/48",
      "2001:4860:4821::/48",
      // … 97 more items
    ],
    "truncated": true
  },
  "addresses": {
    "ipv4": 2615808,
    "ipv6Slash48": 721152,
    "routedIpv4": 1376768
  },
  "relationships": {
    "providers": 12,
    "peers": 292,
    "customers": 20
  },
  "users": null,
  "ipv4Geography": {
    "countries": 50,
    "top": [
      {
        "country": "US",
        "addresses": 1757772
      },
      {
        "country": "BE",
        "addresses": 86304
      },
      {
        "country": "JP",
        "addresses": 81248
      },
      // … 2 more items
    ]
  },
  "siblings": {
    "count": 8,
    "asns": [
      36040,
      22577,
      13949,
      // … 5 more items
    ]
  },
  "source": "tables",
  "data": {
    "routes": "2026-10-23T18:13:44.000Z",
    "registrations": "2026-10-23",
    "organisations": "2026-10-01",
    "relationships": "2026-10-01",
    "users": "2026-10-15"
  },
  "tookMs": 755
}

Shortened for the page: long lists show their first items.

The AS behind wikipedia.org

GET /api/v2/asn?q=wikipedia.org
200 OKRecorded 2026-10-25
{
  "query": {
    "q": "wikipedia.org"
  },
  "asn": 14907,
  "resolvedFrom": {
    "kind": "domain",
    "target": "wikipedia.org",
    "addresses": [
      "208.80.154.224",
      "2620:0:861:ed1a::1"
    ],
    "origins": [
      {
        "asn": 14907,
        "prefix": "208.80.154.0/23",
        "country": "US",
        "registry": "arin",
        "allocated": "2007-07-23",
        "ip": "208.80.154.224"
      },
      {
        "asn": 14907,
        "prefix": "2620:0:861::/48",
        "country": "US",
        "registry": "arin",
        "allocated": "2007-10-02",
        "ip": "2620:0:861:ed1a::1"
      }
    ],
    "moas": false,
    "finding": null
  },
  "special": null,
  "status": "assigned",
  "name": "WIKIMEDIA",
  "holder": "Wikimedia Foundation Inc.",
  "brand": null,
  "kind": "other",
  "service": null,
  "country": "US",
  "registry": "arin",
  "allocated": "2006-09-27",
  "tier1": false,
  "prefixes": {
    "ipv4Count": 11,
    "ipv6Count": 11,
    "ipv4": [
      "103.102.166.0/24",
      "185.15.56.0/24",
      "185.15.57.0/24",
      // … 8 more items
    ],
    "ipv6": [
      "2001:67c:930::/48",
      "2001:df2:e500::/48",
      "2620:0:860::/48",
      // … 8 more items
    ],
    "truncated": false
  },
  "addresses": {
    "ipv4": 3328,
    "ipv6Slash48": 11,
    "routedIpv4": 3328
  },
  "relationships": {
    "providers": 14,
    "peers": 1177,
    "customers": 0
  },
  "users": null,
  "ipv4Geography": {
    "countries": 3,
    "top": [
      {
        "country": "US",
        "addresses": 2304
      },
      {
        "country": "NL",
        "addresses": 768
      },
      {
        "country": "BR",
        "addresses": 256
      }
    ]
  },
  "siblings": null,
  "source": "tables",
  "data": {
    "routes": "2026-10-23T18:13:44.000Z",
    "registrations": "2026-10-23",
    "organisations": "2026-10-01",
    "relationships": "2026-10-01",
    "users": "2026-10-15"
  },
  "tookMs": 1101
}

Shortened for the page: long lists show their first items.