Country, city, timezone, currency and language for the visitor on the page right now. No SDK, no database.
const geo = await fetch( "https://api.instantgeo.info/v1/geo?key=ig_pk_yourkey" ).then(r => r.json()) document.documentElement.lang = geo.languages[0]
const geo = await fetch("https://api.instantgeo.info/v1/geo", {
headers: { authorization: `Bearer ${process.env.INSTANTGEO_KEY}` }
}).then(r => r.json())import os, requests
geo = requests.get(
"https://api.instantgeo.info/v1/geo",
headers={"authorization": f"Bearer {os.environ['INSTANTGEO_KEY']}"},
).json()$geo = json_decode(file_get_contents(
'https://api.instantgeo.info/v1/geo',
false,
stream_context_create(['http' => ['header' =>
'authorization: Bearer ' . getenv('INSTANTGEO_KEY')]])
), true);curl https://api.instantgeo.info/v1/geo \ -H "authorization: Bearer $INSTANTGEO_KEY"
Every one of these is a few lines. Read the field, branch on it, ship.
The whole response. No premium fields held back, no add-on tier for city-level data.
Usage-based billing means finding out what you owe once the month is already over. There is nothing to find out here. You pick a plan, and that is the bill — the same number every month, whatever your traffic does.
Pick a plan and pay that price. No overage, no usage charges, nothing on the invoice you did not choose.
Billed monthly through PayPal, cancel any time. Changing plan takes effect immediately.
What the fields mean in practice, and what happens to the address they came from.
city and the coordinates as describing the network the visitor is on, not the person. Make an account, copy your publishable key, paste the call. The free tier doesn’t ask for a card.