FREE Client Side Reverse Geocoding to City API

Introduction

The Free Client-Side Reverse Geocode to City API converts a user’s current latitude and longitude into structured locality data (for example, country, state, city) in the browser. If coordinates aren’t available—such as when the user declines permission—the same endpoint can be called without coordinates to return a best-effort locality via IP geolocation. In both cases you receive the same JSON schema, simplifying integration.

This endpoint is client-side only and free to use with no API key. To ensure reliability for everyone, usage must follow our Fair Use Policy: calls originate directly from the client environment, use the device’s current location (not pre-stored or third-party coordinates), and employ platform-appropriate methods (e.g., the HTML5 Geolocation API on the web). If your use case requires server-side processing or batch inputs, use the Server-side Reverse Geocoding API, which provides equivalent functionality with API-key authentication and a monthly free allocation.

  • Endpoint. GET /data/reverse-geocode-client for both “with coordinates” and “no coordinates” flows.
  • Consistent fields. Typical properties include countryName, principalSubdivision, city/locality, postcode, and lookupSource (reverseGeocoding or ipGeolocation).
  • Language control. Use localityLanguage to return labels in your preferred language.

Why is it free?

There’s no trick. When you call the client-side endpoint with permission, the browser supplies accurate coordinates; we observe the IP address used for that call. This anonymous pairing of “current GPS” and “observed IP” helps us continuously validate and improve our IP geolocation accuracy, including inputs to the Daily IP Geolocation Accuracy Report. We do not require an API key for the free client endpoint and we do not link the location data to identifiable individuals—see Why is the Reverse Geocoding API free? for details.

Policy compliance and misuse handling

Requests that breach the Fair Use Policy (for example, server-side calls to the client endpoint or processing pre-stored coordinates) may trigger a temporary IP-level ban. In such cases, the endpoint returns HTTP 402 with guidance to switch to the Server-side Reverse Geocoding API. If your application now complies, contact support to review and lift the ban.

For a high-level explanation of permission handling and the unified response, see Client-Side Reverse Geocoding with IP Fallback . To explore the broader product family, visit Reverse Geocoding and IP Geolocation.

Get Started

This API is part of the FREE API Package and is available in free and paid plans. Please visit the FREE API Package package page for limits and pricing information.

Endpoint

GET
/data/reverse-geocode-client

Request

Parameter
latitude
Type
string
Required
Yes
Description
Latitude value as per WGS 84 reference system (GPS system). Expected values are in [-90, 90] range
Parameter
longitude
Type
string
Required
Yes
Description
Longitude value as per WGS 84 reference system (GPS system). Expected values are in [-180, 180] range
Parameter
localityLanguage
Type
string
Required
Optional, default value: en
Description
Preferred language for locality names in ISO 639-1 format, such as 'en' for English, 'es' for Spanish etc. If the requested language is unavailable for a requested location, it will default to English. If no English variant is available, will provide the native, local names. Use 'default' as the requested value to automatically adjust the language to the first administrative language in the Country.

Responses

200
OK

Sample Query

GET
https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=37.42159&longitude=-122.0837&localityLanguage=en

Schema

application/json
latitudenumber
Requested Latitude
lookupSourcestring
Indicates whether the results are based on reverse geocoding or IP Geolocation
longitudenumber
Requested Longitude
localityLanguageRequestedstring
localityLanguage input parameter received
continentstring
Localised Continent name in the requested language, if available
continentCodestring
Continent code
countryNamestring
Localised Country name in the requested language, if available
countryCodestring
Country code as defined by ISO 3166-1 standard
principalSubdivisionstring
Localised principal subdivision name in the requested language, if available
principalSubdivisionCodestring
Principal subdivision code as defined by ISO 3166-2 standard
citystring
The most significant populated place this location belongs. It will likely be the City name in the language requested. If unavailable, use the locality name field as a failover
localitystring
Represents the smallest geographic area recognised to which the target belongs. The language, if available, is as defined by 'localityLanguage' request parameter
postcodestring
Postcode, if available
plusCodestring
Open Location Code
fips
FIPS code object, omitted if unavailable. FIPS (Federal Information Processing Standards) Codes are codes used by the Census Bureau to uniquely identify places in the US. Visit FIPS FAQ page for more information.
statestring
State-level FIPS codes have two digits
countystring
A three digits County-level FIPS code.
countySubdivisionstring
FIPS five digits County Subdivision Code
placestring
FIPS five digits place code, omitted if unavailable
csdCodestring
CSD (Census Subdivision) code, omitted if unavailable. Canadian Geographic Codes. Visit CSD FAQ page for more information.
localityInfo
localityInfo object
administrativearray
Administrative authorities as ordered by area (most significant first). Omitted if no administrative boundaries are available
namestring
Localised name of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
descriptionstring
Localised description of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
isoNamestring
ISO 3166-2 standard name, if available
orderinteger
Order value consistent across all entities in the Locality Info parent object. Ordered by geographic area (most significant first)
adminLevelinteger
An administrative level as defined by OpenStreetMaps project
isoCodestring
ISO 3166-2 standard code, if available
wikidataIdstring
Wikidata item identifier, if available
geonameIdinteger
Unique identifier given by GeoNames.org, if available
chinaAdminCodestring
China Administrative division code. Only available for locations based in China and omitted for others
informativearray
Non-administrative boundaries as ordered by area (most significant first). Omitted if unavailable
namestring
Localised name of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
descriptionstring
Localised description of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
isoNamestring
ISO 3166-2 standard name, if available
orderinteger
Order value consistent across all entities in the Locality Info parent object. Ordered by geographic area (most significant first)
adminLevelinteger
An administrative level as defined by OpenStreetMaps project
isoCodestring
ISO 3166-2 standard code, if available
wikidataIdstring
Wikidata item identifier, if available
geonameIdinteger
Unique identifier given by GeoNames.org, if available
chinaAdminCodestring
China Administrative division code. Only available for locations based in China and omitted for others

Sample Response

JSON View
400
Bad request

Sample Response

JSON View
401
Invalid coordinates

Sample Response

JSON View
402
This endpoint does not support server-side operations

Sample Response

JSON View
500
An error has occurred and did not complete your request. Please try again

Sample Response

JSON View
Was this page helpful?