BYTETOOLS

ReallyFreeGeoIP API

Free IP geolocation API with no key and no rate limit: country, region, city, timezone and coordinates as JSON, XML or CSV. Tested curl example included.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the ReallyFreeGeoIP API?

ReallyFreeGeoIP is a free IP geolocation API with no API key, no signup and no advertised rate limit. It returns country, region, city, postal code, timezone and approximate coordinates for any IPv4 or IPv6 address, in JSON, XML or CSV.

This is the successor to freegeoip.app, which shut down after being absorbed by a commercial provider. The replacement keeps the original's defining property — genuinely no key and no published cap — which is unusual now that nearly every geolocation service has moved to a freemium model with a daily quota.

The trade-off is depth. The response is a flat, ten-field object built on MaxMind's free GeoLite data: no ASN, no VPN or proxy detection, no currency or calling code. City and region are frequently empty, and the coordinates for a sparse record fall back to a country centroid — the 37.751, -97.822 you will see for many US addresses is the geographic centre of Kansas, not a real location. Know that before you plot anything on a map.

Quick facts

Base URL
https://reallyfreegeoip.org
Authentication
No key, no account and no advertised rate limit — the closest thing to a genuinely unlimited free geolocation API still running.
Rate limit
None published. Reasonable use is expected.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the ReallyFreeGeoIP API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Geolocate 8.8.8.8 as JSON

GET https://reallyfreegeoip.org/json/8.8.8.8

curl
curl 'https://reallyfreegeoip.org/json/8.8.8.8'
JavaScript (fetch)
const res = await fetch("https://reallyfreegeoip.org/json/8.8.8.8");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://reallyfreegeoip.org/json/8.8.8.8", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "ip": "8.8.8.8",
  "country_code": "US",
  "country_name": "United States",
  "region_code": "",
  "region_name": "",
  "city": "",
  "zip_code": "",
  "time_zone": "America/Chicago",
  "latitude": 37.751,
  "longitude": -97.822,
  "metro_code": 0
}

Parameters

ParameterTypeRequiredDescription
formatpath segmentRequiredResponse format: `json`, `xml` or `csv`. json
ippath segmentOptionalThe IPv4 or IPv6 address to look up. Omit it to geolocate the caller's own address. 8.8.8.8
callbackqueryOptionalWraps the JSON response in a JSONP callback. handler

Response fields

ipstring
The address that was looked up, echoed back.
country_code / country_namestring
ISO 3166-1 alpha-2 code and full country name. The most reliable fields in the response.
region_code / region_namestring
State or region. Frequently empty — treat as optional.
city / zip_codestring
City and postal code. Often empty, especially for anycast, hosting and mobile ranges.
time_zonestring
IANA timezone name such as `America/Chicago`.
latitude / longitudefloat
Approximate coordinates. When city data is missing these fall back to a country centroid, so they can be hundreds of kilometres from the real network.
metro_codeinteger
US DMA code for advertising regions. Zero when unknown or outside the US.

What you can build with the ReallyFreeGeoIP API

  • Set a default country or currency for a first-time visitor
  • Add a rough country column to server access logs
  • Show visitors their own IP and country on a network tools page
  • Route users to a regional site without asking them

Common errors and how to fix them

404

The path is not a valid format or IP.

Fix: The format segment comes first: `/json/8.8.8.8`, not the other way round.

Empty city and region

Not an error — the underlying GeoLite database has no fine-grained record.

Fix: Fall back to country level, and check whether the coordinates equal a known country centroid before displaying them.

Unexpected result for a private IP

Reserved ranges are not in the database.

Fix: Validate and exclude private and reserved ranges before calling.

ReallyFreeGeoIP API — frequently asked questions

Is ReallyFreeGeoIP really free with no rate limit?

Yes — no key, no signup and no published cap, which is rare now that most geolocation APIs have moved to freemium quotas. It is a community service, so heavy sustained use should still be cached rather than hammered.

What happened to freegeoip.app?

It was acquired and folded into a commercial offering with a key requirement. ReallyFreeGeoIP is the drop-in replacement that preserves the original key-free behaviour and response shape.

How accurate is the city-level data?

Country accuracy is good; city and region are often blank entirely. When they are missing the latitude and longitude fall back to a country centroid — many US lookups return the centre of Kansas — so check for that before plotting anything on a map.

Does it detect VPNs or proxies?

No. It returns location fields only, with no ASN or privacy data. If you need VPN, proxy or hosting detection, use an API such as IPLocate that exposes a privacy block.

Tools that pair with this API

ReallyFreeGeoIP is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.