BYTETOOLS

FreeIPAPI

Free IP geolocation API with no key: country, city, coordinates, every timezone in the country, currencies, languages, ASN and a proxy flag. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the FreeIPAPI?

FreeIPAPI is a free, key-free IP geolocation API returning country, region, city, coordinates, postal code, ASN and organisation, plus country-level context such as capital, currencies, languages and calling codes, and a boolean flag marking known proxy addresses.

The `isProxy` flag is the field that earns this API a place next to the many alternatives. Most free IP services tell you where an address claims to be and stop; a boolean saying the address is a known proxy or VPN exit is precisely the signal a fraud check or an abuse filter actually wants, and it is rarely free.

Some fields are country attributes rather than address attributes, and conflating the two causes real bugs. `timeZones` for a United States IP lists roughly thirty zones — every zone in the country, not the one the address is in — and `currencies` similarly returns USD, USN and USS. Take the first element only if you understand you are choosing a default, not reading a fact. Note also that the free tier lives at `free.freeipapi.com`; the apex domain redirects there.

Quick facts

Base URL
https://free.freeipapi.com/api
Authentication
No key on the free tier. An optional token raises the rate limit and enables the higher-volume endpoints.
Rate limit
60 requests per minute per IP on the free tier, reported in the `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers.
Pricing
Free below the per-minute limit; paid tiers raise it.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the FreeIPAPI

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

1. Look up an IP address with country and proxy details

GET https://free.freeipapi.com/api/json/8.8.8.8

curl
curl 'https://free.freeipapi.com/api/json/8.8.8.8'
JavaScript (fetch)
const res = await fetch("https://free.freeipapi.com/api/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://free.freeipapi.com/api/json/8.8.8.8", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "ipVersion": 4,
  "ipAddress": "8.8.8.8",
  "latitude": 37.422,
  "longitude": -122.085,
  "countryName": "United States",
  "countryCode": "US",
  "capital": "Washington D.C.",
  "phoneCodes": [
    1
  ],
  "timeZones": [
    "America/Adak",
    "America/Anchorage",
    "America/Boise",
    "America/Chicago",
    "America/Denver",
    "America/Detroit",
    "America/Indiana/Indianapolis",
    "America/Indiana/Knox",
    "America/Indiana/Marengo",
    "America/Indiana/Petersburg",
    "America/Indiana/Tell_City",
    "America/Indiana/Vevay",
    "America/Indiana/Vincennes",
    "America/Indiana/Winamac",
    "America/Juneau",
    "America/Kentucky/Louisville",
    "America/Kentucky/Monticello",
    "America/Los_Angeles",
    "America/Menominee",
    "America/Metlakatla",
    "America/New_York",
    "America/Nome",
    "America/North_Dakota/Beulah",
    "America/North_Dakota/Center",
    "America/North_Dakota/New_Salem",
    "America/Phoenix",
    "America/Sitka",
    "America/Yakutat",
    "Pacific/Honolulu"
  ],
  "zipCode": "94035",
  "cityName": "Mountain View",
  "regionName": "California",
  "regionCode": "CA",
  "continent": "Americas",
  "continentCode": "AM",
  "currencies": [
    "USD",
    "USN",
    "USS"
  ],
  "languages": [
    "en"
  ],
  "asn": "15169",
  "asnOrganization": "Google LLC",
  "isProxy": false
}

Parameters

ParameterTypeRequiredDescription
ippathOptionalIPv4 or IPv6 address to look up. Omit it to resolve the caller's own address. 8.8.8.8
formatpathRequired`json` for the full object; other formats return a subset. json
(own IP)pathOptional`/api/json` with no address returns details for the requesting address. json

Response fields

ipVersion / ipAddressinteger / string
4 or 6, and the address that was resolved.
latitude / longitudefloat
Representative point for the network block, not a device location.
countryName / countryCodestring
Country in full and as an ISO alpha-2 code.
cityName / regionName / regionCodestring
Best-guess city and subdivision. Accuracy varies sharply by network type.
zipCodestring
Postal code associated with the block's registration, often approximate.
capital / continent / continentCodestring
Country-level context rather than address-level data.
timeZonesarray
Every IANA zone in the country — about thirty for the United States. Not the zone of this address.
currencies / languages / phoneCodesarray
Country attributes, again plural. USD, USN and USS are all returned for the US.
asn / asnOrganizationstring
Autonomous system number and the operator, here 15169 and Google LLC.
isProxyboolean
True when the address is a known proxy, VPN or hosting exit. The most operationally useful field here.

What you can build with the FreeIPAPI

  • Flag VPN and proxy traffic during signup or checkout
  • Set a default country, currency and dialling code for a new visitor
  • Add ASN and organisation context to abuse or security logs
  • Choose a regional endpoint or CDN origin by country
  • Enrich analytics with coarse geography without a paid provider

Common errors and how to fix them

429 Too Many Requests

The 60-per-minute free-tier quota is exhausted.

Fix: Read `X-RateLimit-Remaining` and cache results per address. Repeated lookups of the same IP within a session are pure waste.

timeZones has thirty entries

It lists every zone in the country, not the zone of the address.

Fix: Never take the first element as the user's timezone. Ask the browser instead, and use this only to seed a country-appropriate default.

isProxy is false for a VPN you know about

The flag covers known proxy and hosting ranges, and no list is complete.

Fix: Treat it as a positive signal when true and as no evidence when false. Combine it with the ASN, which exposes hosting providers directly.

Requests to freeipapi.com redirect

The free tier is served from the `free.` subdomain.

Fix: Call `https://free.freeipapi.com/api/json/{ip}` directly to avoid the extra hop, particularly from a client that does not follow redirects.

FreeIPAPI — frequently asked questions

Is FreeIPAPI free without a key?

Yes, the free tier needs no key or account, at 60 requests per minute per IP. An optional token raises the limit and unlocks higher-volume endpoints.

Can it detect VPNs and proxies?

It returns an `isProxy` boolean covering known proxy, VPN and hosting exit ranges. A true value is meaningful; a false value only means the address is not on the list, so pair it with the ASN for a fuller picture.

Why does it return so many timezones and currencies?

Because those fields describe the country, not the address. The United States has around thirty IANA zones and three ISO currency codes, and the API returns all of them rather than picking one for you.

How reliable are the coordinates?

They describe where a network block is registered, not where a person is. Country is dependable, city much less so, and for mobile networks the point can be a regional gateway hundreds of kilometres from the user.

Tools that pair with this API

Alternatives to FreeIPAPI

If FreeIPAPI does not fit, these geolocation & ip apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
ipifyipify is a free, unlimited API that returns your public IP address as text, JSON or JSONP. No key, no rate limit, IPv4 and IPv6 endpoints. Live curl example.No keyYes19 Aug 2026
ip-api.comFree IP geolocation API returning country, city, coordinates, timezone and ISP for any IP. No key on the free tier, 45 requests per minute. Tested curl example.No keyYes19 Aug 2026
ipwho.isFree IP geolocation API with HTTPS and no API key. Returns country, city, coordinates, timezone, currency and connection data. 10,000 requests/month free.No keyYes19 Aug 2026
Nominatim (OpenStreetMap)Free OpenStreetMap geocoding API: convert addresses to coordinates and back. No API key, open data, 1 request per second. Tested curl example and usage policy.No keyNo19 Aug 2026
geo.admin.ch SearchServerFree official Swiss geodata API with no key: search places, addresses, cantons and cadastral parcels, and query hundreds of federal map layers. Tested example and live response.No keyYes21 Aug 2026
GeoAPI.ptFree Portuguese geography API with no key: districts, municipalities, parishes, postcodes and reverse geocoding, with census figures and boundary GeoJSON. Tested example included.No keyYes21 Aug 2026
All Geolocation & IP APIs

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