Skip to content
IP IPBot
Get Started

Free IP Geolocation APIs

There are several free IP geolocation APIs available. This comparison helps you understand the trade-offs and choose the right one for your project.

ServiceFree RequestsNo API KeyRisk ScoreSelf-Host
IPBotFair useYesYesYes
IP-API.com45/minNo (paid)NoNo
ipapi.co1,000/dayNo (paid)NoNo
ipwhois.io10,000/monthNo (paid)YesNo
ipgeolocation.io1,000/monthNo (paid)NoNo
Cloudflare (-workers)UnlimitedYesNoNo

URL: https://api.ipbot.com

Free Tier:

  • Fair-use policy (no hard cap)
  • No API key required
  • Full feature access

Features:

  • Geolocation (country, region, city, postal, coordinates, timezone)
  • ASN and organization data
  • Risk scoring (0-100)
  • Proxy/VPN detection
  • Datacenter identification
  • Tor exit node detection

Response Time: <50ms

Best For: Production applications needing security features without cost

URL: http://ip-api.com/json/{ip}

Free Tier:

  • 45 requests per minute
  • 1,000 requests per day (with key)
  • HTTP only (no SSL on free tier)

Features:

  • Geolocation
  • ASN data
  • Timezone
  • Mobile/carrier detection
  • Proxy detection (paid only)

Response Time: ~100ms

Best For: Low-volume, non-critical applications

URL: https://ipapi.co/{ip}/json/

Free Tier:

  • 1,000 requests per day
  • 30,000 requests per month
  • Rate limited after free tier

Features:

  • Geolocation
  • ASN data
  • Timezone
  • Currency data
  • User agent parsing

Response Time: ~150ms

Best For: Applications needing currency or extended data

URL: https://ipwhois.app/json/{ip}

Free Tier:

  • 10,000 requests per month
  • Requires API key

Features:

  • Geolocation
  • Basic security information
  • Currency data

Response Time: ~100ms

Best For: Mid-volume applications with moderate accuracy needs

URL: https://api.ipgeolocation.io/ipgeo?ip={ip}

Free Tier:

  • 1,000 requests per month
  • Requires API key
  • IP-based rate limiting

Features:

  • Geolocation
  • Timezone
  • Currency
  • User agent details
  • Android device info

Response Time: ~120ms

Best For: Applications needing timezone or currency data

URL: https://1.1.1.1/cdn-cgi/trace

Free Tier:

  • Unlimited (when using Cloudflare Workers)

Features:

  • Basic country code
  • No detailed geolocation
  • No risk assessment

Response Time: <10ms (Cloudflare edge)

Best For: Cloudflare Workers users needing simple country detection

FeatureIPBotIP-APIipapi.coipwhois.ioipgeolocation
CountryYesYesYesYesYes
RegionYesYesYesYesYes
CityYesYesYesYesYes
PostalYesYesYesYesYes
CoordinatesYesYesYesYesYes
TimezoneYesYesYesYesYes
ASNYesYesYesNoYes
Risk ScoreYesNoNoYesNo
Proxy DetectionYesNoNoYesYes
HTTPSYesNoYesYesYes
No API KeyYesNoNoNoNo

Benchmarks from US East region (average of 100 requests):

ServiceP50 LatencyP95 LatencySuccess Rate
IPBot28ms45ms99.9%
IP-API.com95ms180ms98.5%
ipapi.co140ms250ms97%
ipwhois.io88ms160ms99%
ipgeolocation.io110ms200ms98%

Based on testing against known IP locations:

ServiceCity AccuracyCountry AccuracyNotes
IPBot85%99%IP2Location DB
IP-API.com80%99%Proprietary
ipapi.co82%99%Multiple sources
ipwhois.io78%98%WHOIS-based
ipgeolocation.io81%99%Mixed sources
  • Need a production-ready free API
  • Want security features (risk scoring, proxy detection)
  • Prefer HTTPS without API keys
  • Need consistent, reliable responses
  • Want the option to self-host
  • Have very low volume requirements
  • Don’t need HTTPS (development/testing)
  • Want simple JSON responses
  • Can tolerate rate limits
  • Need currency data alongside geolocation
  • Require user agent parsing
  • Have moderate monthly volume (<30k requests)
  • Need basic risk assessment
  • Require API key-based authentication
  • Have moderate monthly volume (<10k requests)
  • Need timezone conversions
  • Require Android device detection
  • Have low monthly volume (<1k requests)
  • Are already using Cloudflare Workers
  • Only need country-level detection
  • Want absolute lowest latency
  • Don’t need detailed location data

For most production applications, IPBot offers the best combination of:

  • No API key required
  • HTTPS support
  • Included security features
  • High accuracy
  • Fast response times
  • Option to self-host

The self-hosting option is particularly valuable for applications that need:

  • Unlimited requests
  • Data privacy (no external API calls)
  • Custom rate limiting
  • Integration with internal threat intelligence

Here’s a pattern for using multiple free APIs with fallback:

async function getIPInfo(ip) {
const services = [
{ name: "IPBot", url: `https://api.ipbot.com/${ip}` },
{ name: "IP-API", url: `http://ip-api.com/json/${ip}` },
{ name: "ipapi.co", url: `https://ipapi.co/${ip}/json/` },
];
for (const service of services) {
try {
const response = await fetch(service.url);
if (response.ok) {
const data = await response.json();
// Normalize response format
return normalizeData(data, service.name);
}
} catch (error) {
console.warn(`${service.name} failed, trying next...`);
continue;
}
}
throw new Error("All IP services failed");
}

This pattern provides resilience by falling back to alternative services if the primary one fails.