Geocoding — entry 037 of 80

ip-api

Verified Jul 2026

ip-api.com's free tier works over plain HTTP with no API key, rate-limited to 45 requests/minute for non-commercial use, and returns JSON, XML, or CSV. Requesting the same endpoint over HTTPS returns a 403 with "SSL unavailable for this endpoint, order a key" — both HTTPS and commercial use require a paid Pro plan starting around €13.3/month billed annually.

ip-api.com's free tier looks up an IP address or domain name. It returns country, region, city, coordinates, timezone, and network details as JSON, XML, or CSV. No API key or sign-up is needed, but the free tier works over HTTP only and limits you to 45 requests a minute.

ip-geolocationfree-tierhttp-onlyrate-limitedno-auth
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSNot supportedPlain HTTP only — avoid sending anything sensitive.
CORSEnabledCallable directly from browser JavaScript.
PricingFreemiumA usable free tier exists, with paid plans for more volume.
FormatsJSON, XML, CSVResponses can be requested as JSON or XML or CSV.

GreatAPIs Score

Score77out of 100
Authentication25/25No authentication required
Pricing17/20Freemium tier available
Docs0/20No docs or spec available
Formats15/15Supports 3 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 77 on greatapis.com
<a href="https://greatapis.com/api/ip-api/"><img src="https://greatapis.com/badge/ip-api.svg" alt="Scored 77 on greatapis.com"></a>

Auth quickstart

  1. No API key required. The docs state: "There is no API key required."
  2. The free tier only works over plain HTTP. The docs state: "256-bit SSL encryption is not available for this free API. Please see our pro service." A live HTTPS probe of the same endpoint returned HTTP 403 with body {"status":"fail","message":"SSL unavailable for this endpoint, order a key at https://members.ip-api.com/"}.
  3. The docs state: "We do not allow commercial use of this endpoint. Please see our pro service for SSL access, unlimited queries and commercial support."
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Look up an IP address

GEThttp://ip-api.com/json/8.8.8.8

200 application/json; charset=utf-8

{"status":"success","country":"United States","countryCode":"US","region":"VA","regionName":"Virginia","city":"Ashburn","zip":"20149","lat":39.03,"lon":-77.5,"timezone":"America/New_York","isp":"Google LLC","org":"Google Public DNS","as":"AS15169 Google LLC","query":"8.8.8.8"}

Developer reference

Rate limit

45 requests per minute (free unauthenticated tier)

Gotchas & limits

  • The docs state: "This endpoint is limited to 45 requests per minute from an IP address." A live probe returned the headers X-Rl: 44 (requests remaining) and X-Ttl: 60 (seconds until the window resets) — check X-Rl before every call, since the docs add: "if its is 0 you must not send any more requests for the duration of X-Ttl in seconds."
  • The docs warn: "If you go over the limit your requests will be throttled (HTTP 429) until your rate limit window is reset. If you constantly go over the limit your IP address will be banned for 1 hour."
  • Errors still return HTTP 200 with "status":"fail" and a message field, rather than a 4xx status. Check the status field in the body, not the HTTP status code, to detect a failed lookup.