Declared vs. physical IP geolocation built on routing reality
Standard registration-only databases report the country where a block was registered years ago. ipscope separates declared registration country from physical BGP and RTT-triangulated location across 35.3M+ routed IPv4 and IPv6 prefixes.
Three country fields on every lookup: effective, declared, and physical
Cloud operators and cross-border ISPs frequently lease IPv4/IPv6 ranges registered in one jurisdiction and announce them from a completely different continent. Every ipscope response exposes both the declared paperwork country and the physical routing country.
- country_code: Effective ISO 3166-1 alpha-2 country code for localization, tax, and compliance.
- declared_country_code: Country recorded in network allocation records or RFC 8805 geofeed.
- physical_country_code: Country where active BGP announcements and multi-vantage RTT probes place the router.
- is_virtual_location: Boolean flag set to true whenever declared and physical countries diverge.
{
"ip": "198.51.100.7",
"matched_network": "198.51.100.0/24",
"geo": {
"country_code": "DE",
"declared_country_code": "US",
"physical_country_code": "DE",
"is_virtual_location": true,
"location_type": "virtual",
"confidence": 0.96
}
}City, subdivision, coordinates, timezone, and calibrated accuracy radius
When geo_city is licensed on your API plan or custom database SKU, lookups include first-level administrative subdivisions, city names, postal codes, WGS84 coordinates, IANA timezones, and a realistic accuracy radius in kilometers.
- Honest accuracy_radius_km: 5 to 25 km for fixed FTTH/cable broadband, 50 to 250 km for cellular CGNAT pools.
- IANA timezone identifier (such as America/New_York or Europe/Berlin) for zero-friction scheduling.
- Reverse DNS IATA/UNLOCODE router PoP hints cross-checked against speed-of-light RTT constraints.
{
"geo": {
"country_code": "US",
"subdivision": "Virginia",
"city": "Ashburn",
"postal_code": "20147",
"latitude": 39.0438,
"longitude": -77.4874,
"accuracy_radius_km": 10,
"timezone": "America/New_York",
"confidence": 0.94
}
}Geolocation field catalog
Fields returned in the geo object across the REST API and downloadable MMDB/CSV/Parquet databases.
| Field | Type | Family | Description |
|---|---|---|---|
| geo.country_code | string | null | geo_country | Effective ISO 3166-1 alpha-2 country code. |
| geo.declared_country_code | string | null | geo_country | Country registered in network allocation records or operator geofeed. |
| geo.physical_country_code | string | null | geo_country | Country verified by BGP routing and RTT triangulation. |
| geo.is_virtual_location | boolean | geo_country | True when declared_country_code differs from physical_country_code. |
| geo.location_type | string | geo_country | Resolution mode: physical, declared, virtual, anycast, or unknown. |
| geo.subdivision | string | null | geo_city | First-level state, province, or region name. |
| geo.city | string | null | geo_city | Resolved city name. |
| geo.accuracy_radius_km | integer | null | geo_city | Estimated radius in kilometers around the city centroid. |
| geo.timezone | string | null | geo_city | IANA time zone identifier. |
Start with 30K free lookups a month.
No card, no trial clock. Upgrade when your traffic does, or download the database when you would rather keep it in-house.