IPv6 is a first-class citizen across IPScope. Every API endpoint and every downloadable .mmdb, .csv.gz, and .parquet snapshot contains both IPv4 and IPv6 routing trees in a single unified dataset.
# Formatting IPv6 addresses
The REST API accepts any valid RFC 4291 / RFC 5952 representation (compressed or full) and returns the canonical compressed form in ip:
{
"ip": "2606:4700:4700::1111",
"ip_version": 6,
"matched_network": "2606:4700:4700::/48",
"geo": {
"country_code": "US",
"declared_country_code": "US",
"physical_country_code": "US",
"is_virtual_location": false,
"location_type": "anycast",
"confidence": 0.89
},
"network": {
"asn": 13335,
"organization": "Cloudflare, Inc."
}
}# Prefix aggregation
- End-user residential allocations are typically indexed at
/48or/56; mobile carrier pools at/48or/64. - Lookups always match the most specific routed prefix (
matched_network) in the radix tree. - In
.mmdb,.csv.gz, and.parqueteditions, IPv4 and IPv6 share the exact same schema and file, with no separate-ipv6files to manage.