Best IP geolocation API for your use case: how to choose in 2026

There's no single best IP geolocation API, only the best one for the job. This guide compares providers on what decides the choice: which fields each plan returns, what accuracy you can expect, IPv6 and domain input, bot and crawler signals, and how pleasant the API is to build on. Prices have their own article.

On this page The short answer

There's no single best IP geolocation API. There's a best one for what you're building: country rules for a pricing page, city-level personalisation, fraud screening, log enrichment or bot filtering all need different data, different input types and different behaviour when something goes wrong.

Most "best API" lists rank providers on price alone. Price matters, but it rarely decides the choice on its own: the cheapest plan is useless if it doesn't return the field you need, or if its terms don't allow your use. This guide covers the criteria that do decide it. For the money side (cost per lookup at 100k, 1M and 10M requests a month, free tiers and overage) see the separate IP geolocation API pricing comparison.

On 12 November 2026 we read each provider's official documentation and plan pages and wrote down what they say. Where a page was ambiguous, we quote it rather than guess.

Note

Disclosure: we run IPAPI.GR, which is in this comparison. We've held our own entry to the same standard as the others: what our docs say, including what we don't do. Where a competitor is the better choice, we say so.

The short answer

If you need…Look first atWhy
Country only, at no costipinfo LiteUnlimited country-level requests on the free plan, with attribution
VPN, proxy and Tor detectionipinfo Core, ipdata Business, IP2Location.io, MaxMind InsightsPrivacy and anonymiser data is their product; IPAPI.GR doesn't offer it
No network call at allMaxMind GeoIP databasesHost the data yourself and query it locally
One price with no request capip-api.com ProUnlimited commercial requests on a flat plan
AI crawler, search bot and scanner flagsIPAPI.GR, any paid planrisk.is_ai, is_crawler, is_scanner for known AI crawlers, crawlers and scanners
A free tier you may use commerciallyipgeolocation.io, ipapi.is, IPAPI.GRTheir terms don't restrict the free tier to non-commercial use
A contractual uptime SLAip-api.com Pro, ipdata BusinessBoth publish one; IPAPI.GR doesn't

The rest of this article explains how we got there.

Five criteria that decide the choice

Run every shortlisted API through these five questions, in this order. The first one rules out most of the market.

  1. Fields: does the plan you'd buy return what you'll use? Many providers gate city, ASN, time zone or security data by tier.
  2. Accuracy: is the granularity you need realistic at all? Country is dependable almost everywhere; city is approximate everywhere.
  3. Input: IPv4, IPv6, domain names, and how many items per request.
  4. Signals beyond location: privacy detection, threat data, bot and crawler identification, and whether you can explain them.
  5. Developer experience: HTTPS on every plan, clear errors, predictable behaviour at the limit, and commercial terms you can live with.

Cost comes after these, once you know which plans actually qualify. The pricing comparison picks up from there.

Accuracy: what you can and can't compare

Accuracy is the first thing everyone asks about and the hardest to compare honestly. Most providers are close at country level and all of them are approximate at city level. Without a large set of addresses with known true locations, an accuracy ranking is guesswork, and every vendor-run benchmark favours the vendor. We don't publish one.

What you can check:

  • Granularity per plan. Some providers return city only on paid tiers (ipinfo Core and up, MaxMind City Plus and up). If city is what you need, compare only those tiers.
  • How unknown values are reported. An API that says "unknown" is easier to build on than one that silently returns a capital city or the centre of a country. IPAPI.GR returns the string "No Data" for fields it can't fill, so your code can tell a gap from an answer.
  • Accuracy radius or confidence. MaxMind Insights adds confidence factors and an accuracy radius. Most other APIs, including IPAPI.GR, don't.
  • Mobile, IPv6 and cloud traffic. These are where answers drift most. If your users are mostly on mobile networks, weight your own test (below) towards those addresses.

For background on why city-level answers vary, see how accurate IP geolocation is.

Data fields and features, side by side

What each provider's docs or plan pages say is included, at some paid tier. "Tier" notes where a feature is only on higher plans.

ProviderCity-levelASNIPv6Domain inputBatch per requestVPN/proxy/TorBot or crawler flag
ipinfoCore and upYes (Lite: name and domain only)YesNot listedLite bulk endpoint: up to 1.000 per callCore and upNot listed
MaxMind web servicesCity Plus and upYesYesNot listedOne IP per request in the docsInsightsNot listed
ipstackYesConnection module, Basic and upYesNot listedUp to 50, Professional+ onlyProfessional+is_crawler + crawler_name, Professional+
ip-api.comYesYesYesYesUp to 100proxy flag (proxy, VPN or Tor)Not listed
ipdataYesYesYesNot listedUp to 100, paid plansVPN on Business; anonymity productNot listed
ipgeolocation.ioYesYesYesPaid plansPaid plansSecurity module"Bot" listed in security module
IP2Location.ioYesYesYesNot listedPaid plans ("Bulk Query")Plus and SecuritySearch engine spider and AI crawler detection, Security plan
IPAPI.GRYes, every planYes, every planYesYes, every planUp to 100, every planNorisk.is_ai, is_crawler, is_scanner, paid plans

A few honest notes on this table:

  • Privacy detection is where IPAPI.GR is weakest. We don't detect VPNs, proxies, Tor or residential proxies, and we don't return a fraud or threat score. If that's the job, ipinfo, ipdata, IP2Location.io or MaxMind Insights are built for it.
  • Domain input means you can send example.com instead of an IP. IPAPI.GR resolves the domain to its first IPv4 (A) record and returns that address's data, with the domain echoed back in a domain field.
  • Batch size matters for log enrichment and back-office jobs, much less for per-visitor lookups.

Bot and crawler signals

Flags that say "this address belongs to a known bot" are rarer than location data, and they differ in what they cover. That's the question to ask: which bots does a true cover, and can you test it on your own traffic?

  • ipstack has is_crawler and crawler_name in its security module, on Professional+.
  • IP2Location.io lists search engine spider and AI crawler detection on its Security plan.
  • ipgeolocation.io lists bot detection in its security module.
  • IPAPI.GR returns three booleans on every paid plan: risk.is_ai (AI crawlers, search fetchers and agents), risk.is_crawler (search and SEO crawlers) and risk.is_scanner (internet scanners). IPAPI.GR's risk flags tell you whether an address belongs to a known AI crawler, crawler or scanner, so you don't have to maintain the lists yourself. The full list of covered bots is public on the bot signals coverage page.

Two things to check for any provider: what false means (with IPAPI.GR it means "not a known bot", not "human"), and whether you can test an address yourself. You can check any address for free with the bot verification tool. If you'd rather build the check in-house, verifying AI crawler IP addresses walks through it.

Developer experience

The things that cost you time after you've chosen:

CheckWhy it mattersWhat to look for
HTTPS on every planA free tier over plain HTTP can't be called from an HTTPS page and leaks the visitor's IP in transitip-api.com's free endpoint is HTTP-only. IPAPI.GR serves HTTPS on every plan, including free. Check the free plan of anything else on your shortlist
Behaviour at the limitYour code has to handle it either wayA documented status code (IPAPI.GR returns 429 until midnight UTC) versus automatic overage. The money side is in the pricing comparison
Usage visibilityYou want to see a limit coming, not hit itIPAPI.GR has GET /api/status, which doesn't count as a lookup, and usage alerts by email or webhook
Stable response shapeCode that parses the response shouldn't break on a releaseSame fields on every plan, explicit "unknown" values, documented error bodies
Commercial terms on the free tierAttribution, "non-commercial" and "not for production" clauses differRead them before you ship on a free key. Our free tier comparison lists them
Local optionSome workloads can't afford a network callMaxMind, ipgeolocation.io, ipapi.is and ipregistry sell downloadable databases; IPAPI.GR doesn't

Price, in one line

Price has its own article. On list prices checked 12 November 2026, ip-api.com Pro's flat, unlimited plan is the cheapest at high volume, IPAPI.GR's plans (from 9,00 € a month for 10.000 requests a day, VAT included) are among the cheapest at low and mid volume, and pay-per-query and overage plans cost the most. The pricing comparison has the full table with cost per 1.000 lookups.

Provider notes: where each one is the better choice

ipinfo

The best-known name in the space, with the broadest data set at the top end: privacy detection with service names, residential proxies, carrier, company, hosted domains, abuse contacts and WHOIS. Core adds city-level data and VPN, Tor, proxy and relay detection.

Better choice when you need privacy detection or company data, or when country-level on the free Lite plan is enough. Watch out for the monthly cap and overage billing on Core, and attribution on Lite. More detail: ipinfo alternative.

MaxMind GeoIP

MaxMind created GeoIP and sells it two ways: downloadable databases you query locally, and web services billed per query. The databases are unbeatable when you can't afford a network call on the hot path. Insights adds anonymiser detection, user type and confidence factors.

Better choice when you need local lookups or MaxMind's anonymiser data. Watch out for the free GeoLite tier: attribution required, and MaxMind itself says GeoLite City is "not recommended for commercial use cases". More detail: MaxMind GeoIP alternative.

ip-api.com

The no-cap option. Pro has unlimited requests, HTTPS, commercial use, a 99,9% SLA, batch and domain queries. The free endpoint is HTTP-only, non-commercial and limited to 45 requests per minute per source IP.

Better choice when you want unlimited volume, a published SLA and a proxy flag on one plan. More detail: ip-api alternative.

ipstack

A long-running API from apilayer with modules unlocked by tier: time zone, currency and connection data from Basic, and security data plus bulk lookups only on Professional+. The free plan doesn't allow commercial use.

Better choice when you want currency and time zone modules in the same response and you're comfortable with monthly quotas. More detail: ipstack alternative.

ipdata

A free tier with city-level lookups, and threat intelligence on paid plans: OSINT blocklists on Startup, commercial blocklists, VPN detection and reputation scores on Business. Business lists a 99,999% uptime SLA.

Better choice when threat blocklists and reputation scores matter more than anything else.

ipgeolocation.io

A broad API family (geolocation, security, ASN, abuse contact, time zone, user agent) on a credit model, with production and commercial use allowed on the free plan. Security data costs extra credits per lookup.

Better choice when you want many related APIs from one account, or downloadable databases alongside the API.

IP2Location.io and ipregistry

IP2Location.io has the most granular proxy categories in this list on its higher plans, including AI crawler detection on the Security plan. ipregistry returns the full response, including VPN/proxy detection and carrier data, on every plan.

IPAPI.GR

One GET for an IPv4 address, IPv6 address or domain, returning country, region, city, postcode, coordinates, time zone, ISP, organization and ASN on every plan, including the free one. Every paid plan, from Developer at 9,00 € to Scale at 199,00 € a month (VAT included), adds the three bot flags. Batch lookups of up to 100 items work on every plan, limits reset at midnight UTC, and going over returns 429 rather than a bill.

Better choice when you want IPv6 and domain input on every plan, and AI crawler, search crawler and scanner flags you can test on any address for free. Not the right choice when you need VPN/proxy/Tor detection, a fraud score, an SLA, a hosted database download, accuracy radius, carrier or company data. We don't offer those.

How to choose in ten minutes

  1. Write down the fields you'll actually use. If it's country only, half the market is overkill.
  2. Cross out providers whose plan doesn't return them, using the feature table above.
  3. Decide what should happen at the limit: an error you handle, or a bill you pay.
  4. Check commercial terms on the free tier if you plan to start there.
  5. Run your own sample. Take 200 addresses from your real logs, call two or three shortlisted APIs, and compare the answers where you know the truth (your own office, your staff's home cities, known cloud servers).
  6. Then compare cost for the survivors in the pricing comparison.

Here's a minimal script for step 5. It calls IPAPI.GR and prints one line per address. Add a second function for any other provider with the same output shape.

js
// compare.mjs : node compare.mjs ips.txt
import { readFile } from 'node:fs/promises';

const known = (v) => (v === undefined || v === null || v === '' || v === 'No Data' ? null : v);

async function ipapigr(ip) {
  const r = await fetch(`https://ipapi.gr/api/lookup/${encodeURIComponent(ip)}?key=${process.env.IPAPI_KEY}`,
    { signal: AbortSignal.timeout(5000) });
  const d = await r.json();
  if (!r.ok) throw new Error(d.message || r.status);
  return { country: known(d.country_code), city: known(d.city), asn: known(d.asn) };
}

const ips = (await readFile(process.argv[2], 'utf8')).split('\n').map((s) => s.trim()).filter(Boolean);
for (const ip of ips) {
  try {
    const a = await ipapigr(ip);
    console.log([ip, a.country, a.city, a.asn].join('\t'));
  } catch (e) {
    console.log([ip, 'error', e.message].join('\t'));
  }
}

With more than a handful of addresses, the batch endpoint sends up to 100 in one request:

bash
curl -X POST "https://ipapi.gr/api/lookup/batch?key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ips": ["8.8.8.8", "2001:4860:4860::8888", "example.com"]}'

What an "IP intelligence API" should include

"IP intelligence" is used loosely. In practice it means geolocation plus one or more of these layers:

LayerExample fieldsWho offers it
NetworkASN, ISP, organizationNearly everyone
Connection typehosting, mobile, businessipinfo, ip-api.com (hosting, mobile), MaxMind, ipgeolocation.io
PrivacyVPN, proxy, Tor, relay, residential proxyipinfo, ipdata, IP2Location.io, MaxMind, ipregistry, ipstack
Reputationthreat score, blocklistsipdata, ipgeolocation.io, IP2Location.io, ipstack
Verified botsAI crawlers, search crawlers, scannersIPAPI.GR, IP2Location.io (Security plan), ipstack (is_crawler)

Be wary of any single "risk score" you can't explain to a customer you've blocked. Whichever provider you choose, prefer signals with a clear meaning. IPAPI.GR's flags name a category (AI crawler, crawler, scanner) rather than a score, and false means "not a known bot", not "human".

FAQ

Which IP geolocation API is the most accurate?

Nobody can answer that honestly without a large ground-truth data set, and every vendor-run benchmark favours the vendor. Country-level answers are close across major providers; city-level answers vary. Test with addresses from your own traffic where you know the true location.

Where can I compare prices?

In the IP geolocation API pricing comparison. It converts ten providers' list prices into cost at 100k, 1M and 10M requests a month and explains free tiers and overage. This article covers everything except price.

Which IP API is best for startups?

One with a free tier you're allowed to use in production, HTTPS on that tier, and a cheap first paid step. ipgeolocation.io, ipapi.is and IPAPI.GR all offer a daily free allowance without a non-commercial restriction (IPAPI.GR's conditions are in its terms). ipinfo Lite allows it with attribution at country level. Compare the conditions in our free tier comparison.

Does IPAPI.GR detect VPNs or proxies?

No. IPAPI.GR returns geolocation, network data and, on any paid plan, flags for AI crawlers, search and SEO crawlers and internet scanners. It doesn't return VPN, proxy or Tor signals or a fraud score.

Can I look up an IPv6 address or a domain?

Yes on IPAPI.GR, on every plan: GET /api/lookup/2001:4860:4860::8888 or GET /api/lookup/example.com. Most providers above also accept IPv6. Domain input is less common: ip-api.com and ipgeolocation.io (paid plans) list it.

How did you check these features?

By reading each provider's documentation and plan pages on 12 November 2026. We didn't benchmark accuracy or speed. Where a page was ambiguous, we quoted it rather than guessing.

Look up an IP address now

Free IP lookup: location, network and bot flags, no account needed.