Geocoding — entry 037 of 80
ip-api
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.
GreatAPIs Score
Auth quickstart
- No API key required. The docs state: "There is no API key required."
- 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/"}. - 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."
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
{"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
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) andX-Ttl: 60(seconds until the window resets) — checkX-Rlbefore 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 amessagefield, rather than a 4xx status. Check thestatusfield in the body, not the HTTP status code, to detect a failed lookup.