BigDataCloud Reverse Geocode API
Free client-side reverse geocoding API with no key: turn latitude and longitude into locality, city, country and administrative areas. Unlimited. Tested.
Endpoint tested and returned HTTP 200 on 19 Aug 2026
What is the BigDataCloud Reverse Geocode API?
BigDataCloud's client-side reverse geocoding API is a free, key-free endpoint that converts latitude and longitude into a structured address — locality, city, principal subdivision and country — with unlimited use.
This endpoint is designed specifically to be called from the browser after the Geolocation API returns coordinates, which is why it is free and unlimited: it is meant to run client-side at scale.
The administrative hierarchy it returns is more thoughtfully structured than most reverse geocoders, with `localityInfo` breaking down every level from continent to neighbourhood. It resolves coordinates to areas rather than street addresses, which suits privacy-conscious applications.
Quick facts
- Base URL
https://api.bigdatacloud.net/data- Authentication
- The client-side reverse geocode endpoint needs no key. Other BigDataCloud APIs require one.
- Rate limit
- Unlimited on this specific free endpoint.
- Pricing
- Free and unlimited for the client-side reverse geocoding endpoint.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the BigDataCloud Reverse Geocode API
Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Reverse geocode coordinates to a place
GET https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=31.52&longitude=74.35&localityLanguage=en
curl 'https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=31.52&longitude=74.35&localityLanguage=en'const res = await fetch("https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=31.52&longitude=74.35&localityLanguage=en");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=31.52&longitude=74.35&localityLanguage=en", timeout=20)
res.raise_for_status()
print(res.json()){
"latitude": 31.52,
"lookupSource": "coordinates",
"longitude": 74.35,
"localityLanguageRequested": "en",
"continent": "Asia",
"continentCode": "AS",
"countryName": "Pakistan",
"countryCode": "PK",
"principalSubdivision": "Punjab",
"principalSubdivisionCode": "PK-PB",
"city": "Lahore",
"locality": "Lahore",
"postcode": "",
"plusCode": "8J3PG9C2+22",
"localityInfo": {
"administrative": [
{
"name": "Pakistan",
"description": "republic in Asia",
"isoName": "Pakistan",
"order": 4,
"adminLevel": 2,
"isoCode": "PK",
"wikidataId": "Q843",
"geonameId": 1168579
},
{
"name": "Punjab",
"description": "province of Pakistan",
"isoName": "Punjab",
"order": 5,
"adminLevel": 4,
"isoCode": "PK-PB",
"wikidataId": "Q4478",
"geonameId": 1167710
},
{
"name": "Lahore Division",
"description": "division of Punjab, Pakistan",
"order": 6,
"adminLevel": 5,
"wikidataId": "Q3308170",
"geonameId": 1172448
},
{
"name": "Lahore",
"description": "capital of the Punjab province, Pakistan",
"order": 7,
"adminLevel": 6,
"wikidataId": "Q11739",
"geonameId": 1172451
},
{
"name": "Lahore District",
"description": "district of Punjab, Pakistan",
"order": 8,
"adminLevel": 6,
"wikidataId": "Q2315527",
"geonameId": 1172449
},
{
"name": "LahoParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
latitude | float | Required | Latitude in decimal degrees. 31.52 |
longitude | float | Required | Longitude in decimal degrees. 74.35 |
localityLanguage | string | Optional | Two-letter language code for place names. en |
Response fields
countryName / countryCodestring- Country name and ISO code.
principalSubdivisionstring- State, province or region.
city / localitystring- City and more specific locality.
postcodestring- Postal code where determinable.
localityInfoobject- Full administrative hierarchy from continent down to neighbourhood.
continentstring- Continent name.
What you can build with the BigDataCloud Reverse Geocode API
- Turn browser Geolocation coordinates into a readable place name
- Show a user's detected city without a backend
- Set regional defaults from device location
- Add area-level location to user-generated content without exact addresses
Common errors and how to fix them
Empty city for remote coordinates
Sparse areas and open ocean have no locality.
Fix: Fall back to principalSubdivision or countryName.
Confusing city vs locality
The two fields differ subtly by region.
Fix: Prefer `city` for display, falling back to `locality` when city is empty.
BigDataCloud Reverse Geocode API — frequently asked questions
Is BigDataCloud reverse geocoding free?
The client-side reverse-geocode-to-city endpoint is free and unlimited with no API key. Their other APIs require a key and have quotas.
Can I call it directly from the browser?
Yes — it is designed for exactly that, to be paired with the browser Geolocation API, which is why it is unlimited and key-free.
Does it return street addresses?
No, it resolves to city and locality level rather than a street address. For full address geocoding use Nominatim.
What is localityInfo?
A structured breakdown of every administrative level from continent down to neighbourhood, which is useful when you need a specific tier rather than a formatted string.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
Alternatives to BigDataCloud Reverse Geocode API
If BigDataCloud Reverse Geocode 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.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| ipify | ipify 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 key | Yes | 19 Aug 2026 |
| ip-api.com | Free 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 key | Yes | 19 Aug 2026 |
| ipwho.is | Free IP geolocation API with HTTPS and no API key. Returns country, city, coordinates, timezone, currency and connection data. 10,000 requests/month free. | No key | Yes | 19 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 key | No | 19 Aug 2026 |
| Cartes.io | Free collaborative mapping API with no key: read public maps and their markers, or create maps anyone can pin to. Tested read-only example and live response included. | No key | Yes | 21 Aug 2026 |
| CountriesNow | Free countries API with no key: every country with capitals, currencies, flags, dial codes, states and cities. A working RestCountries alternative. Tested. | No key | Yes | 20 Aug 2026 |
BigDataCloud Reverse Geocode is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.