GET
/v1/ip/{ip}
Look up a single IP
Returns the full intelligence report for one IPv4 or IPv6 address.
Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
ip |
string | required | The IPv4 or IPv6 address to look up. | 8.8.8.8 |
fields |
string | optional | Comma-separated sections to include, so you only pay for the parsing you need. Valid sections: location, network, flags, risk, type, usage_type, address_type, anonymized, sources, reasons. ip, version and the bogon fields are always returned. Omit for the full report. | location,flags,risk |
Code samples
# Keep the key in the environment, not in your shell history:
# export GEOVERIO_API_KEY="gv_live_…"
curl --fail-with-body "https://ip.geoverio.com/v1/ip/8.8.8.8?fields=location%2Cflags%2Crisk" \
-H "Authorization: Bearer $GEOVERIO_API_KEY"// Call this from your server, never from the browser:
// front-end JavaScript ships your key to every visitor.
const KEY = process.env.GEOVERIO_API_KEY;
async function main() {
const res = await fetch("https://ip.geoverio.com/v1/ip/8.8.8.8?fields=location%2Cflags%2Crisk", {
headers: {
Authorization: `Bearer ${KEY}`
}
});
// Never parse the body before checking the status: an expired key answers
// 401 with a perfectly valid JSON envelope.
if (!res.ok) {
throw new Error(`HTTP ${res.status} — ${await res.text()}`);
}
console.log(await res.json());
}
main().catch((err) => {
console.error(err);
process.exitCode = 1;
});# pip install requests
import os, requests
url = "https://ip.geoverio.com/v1/ip/8.8.8.8?fields=location%2Cflags%2Crisk"
headers = {"Authorization": "Bearer " + os.environ["GEOVERIO_API_KEY"]}
r = requests.get(url, headers=headers)
r.raise_for_status() # turns 4xx / 5xx into an exception instead of silent bad data
print(r.json())<?php
// Read the key from the server environment — never commit it.
$key = getenv('GEOVERIO_API_KEY');
$ch = curl_init("https://ip.geoverio.com/v1/ip/8.8.8.8?fields=location%2Cflags%2Crisk");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $key",
"Accept: application/json",
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($status < 200 || $status >= 300) {
fwrite(STDERR, "Request failed — HTTP $status: $body\n");
exit(1);
}
print_r(json_decode($body, true));See a sample response
{
"ip": "8.8.8.8",
"version": 4,
"bogon": false,
"bogon_reason": null,
"bogon_name": null,
"location": {
"country": "US",
"region": null,
"district": null,
"city": null,
"postal": null,
"latitude": 38,
"longitude": -97,
"timezone": "America\/Chicago",
"calling_code": "1",
"idd_code": "1",
"area_code": "316",
"coordinate_source": "country_centroid",
"source": "rir-allocation",
"confidence": 0.6
},
"network": {
"asn": 15169,
"as_name": "GOOGLE - Google LLC",
"as_country": "US",
"as_registry": "arin",
"org": "Google LLC",
"isp": "Google LLC",
"as_domain": "about.google",
"prefix": "8.8.8.0\/24",
"netname": "GOGL",
"assignment_cidr": "8.8.8.0\/24",
"routed": true,
"registry": "arin",
"allocated": "2023-12-28",
"allocation_status": "allocated",
"net_speed": "T1",
"rdns": "dns.google"
},
"continent": {
"code": "NA",
"name": "North America",
"hemisphere": [
"north",
"west"
]
},
"country_info": {
"name": "United States",
"official_name": "United States of America",
"alpha2_code": "US",
"alpha3_code": "USA",
"numeric_code": 840,
"demonym": "American",
"flag_emoji": "\ud83c\uddfa\ud83c\uddf8",
"capital": "Washington D.C.",
"total_area": 9372610,
"population": 326687501,
"currency": {
"code": "USD",
"name": "United States dollar",
"symbol": "$"
},
"language": {
"code": "eng",
"name": "English"
},
"tld": ".us"
},
"time_zone_info": {
"olson": "America\/Chicago",
"current_time": "2026-07-30T00:46:18-05:00",
"gmt_offset": -18000,
"utc_offset": "-05:00",
"is_dst": true,
"abbreviation": "CDT",
"dst_start_date": "2026-03-08",
"dst_end_date": "2026-11-01",
"sunrise": "06:28",
"sunset": "20:40"
},
"elevation": null,
"weather_station": null,
"mobile": null,
"ads_category": {
"code": "IAB19-11",
"name": "Data Centers"
},
"type": "hosting",
"usage_type": "Data Center \/ Hosting \/ Transit",
"address_type": "anycast",
"anonymized": false,
"flags": {
"vpn": false,
"vpn_provider": null,
"proxy": false,
"tor": false,
"icloud_relay": false,
"hosting": true,
"mobile": false,
"crawler": false,
"crawler_name": null,
"abuser": false,
"anycast": true,
"bogon": false,
"is_spammer": false,
"is_scanner": false,
"is_botnet": false,
"is_ai_crawler": false
},
"risk": {
"score": 15,
"level": "low",
"reasons": [
"hosting: +15"
]
},
"reasons": [
{
"flag": "hosting",
"source": "x4b_datacenter",
"detail": "listed datacenter range"
},
{
"flag": "anycast",
"source": "measurement_anycast",
"detail": "latency from distant probes is physically impossible for one host"
}
],
"sources": {
"snapshot_id": 74,
"snapshot_created_at": "2026-07-30T01:33:59.279660+00:00",
"engine_version": "0.9.3",
"layers": [
"rir",
"bgp",
"classification"
],
"enrichment": []
}
}