Normalised response
One predictable shape for every address: country, region with ISO subdivision code, city, postal code, coordinates and timezone offset.
Country, region, city, postal code, coordinates and timezone from a single authenticated request. Quota and rate limits come back on every response, so you always know where you stand.
curl https://api.geolocate-api.com/v1/ip/8.8.8.8 \
-H "Authorization: Bearer geo_live_xxxxxxxxxxxxxxxxx"What you get
One predictable shape for every address: country, region with ISO subdivision code, city, postal code, coordinates and timezone offset.
X-RateLimit and X-Quota headers travel with each successful call, so your own dashboards never have to guess. Free plans also expose X-Daily headers; paid plans expose X-Monthly.
A geo_live_ key unlocks geolocation and nothing else. Rotate, disable or revoke a key without touching the others.
GET /v1/ip resolves the IP of this HTTP request. In the playground that is the site server, not your browser. To look up a visitor or any other address, use GET /v1/ip/{ip}.
Both families are accepted. A malformed address fails fast with 400 instead of consuming a successful request.
1,000 requests a day at 30 requests a minute, with city, region and timezone on detect, and no payment method required to get started.
The response
Fields are only present when the underlying data supports them, so you can branch on absence instead of parsing placeholder values.
{
"ip": "8.8.8.8",
"country": { "code": "US", "name": "United States" },
"region": { "name": "California", "code": "US-CA" },
"city": "Mountain View",
"postal_code": "94043",
"coordinates": { "latitude": 37.4056, "longitude": -122.0775 },
"timezone": { "id": "America/Los_Angeles", "offset": "-07:00" }
}The free plan activates immediately, without a payment method. Upgrade when your traffic asks for it.