If you only need a visitor's country from their IP, the popular options make you work for it:
- ipinfo.io — free, but you need an access token, which means an account.
- ipapi.co — about 1,000 lookups a day on the free trial, then a key.
- ip-api.com — no key, but it's HTTP-only on the free plan, capped at 45 requests a minute, and non-commercial only.
They're all fine for what they are — and they do city, ISP, and ASN, which is more than "what country is this." But if country is all you're after, that's a lot of signup for a two-letter code.
The keyless option
curl https://countries.dev/ip/8.8.8.8No token, no account, HTTPS — and you get the full country record, not just "US":
{ "ip": "8.8.8.8", "countryCode": "US",
"country": { "name": "United States of America", "flag": "🇺🇸",
"currencies": [{ "code": "USD", "symbol": "$" }] } }Omit the IP to geolocate the caller, or POST an array to look up to 100 at once. It's all in the docs.
Where it stops
countries.dev is country-level only — no city, no ISP, no ASN. That's the trade for keyless and free. Need street-level accuracy or network data? Use one of the above. Need the visitor's country and everything about it? You're set.
Try it live on the IP geolocation API page, or read the docs.
Written by
Dov Azencot
At
Sun Jun 21 2026