Reverse Geocoding to City API

GPS and device location APIs give you coordinates. This API turns those coordinates into something useful: the country, state, city, suburb, and postal code the user is actually in.

Most reverse geocoding services are built around street addresses — they try to resolve coordinates to the nearest building. That works well in dense urban areas but degrades quickly for mobile users, regional locations, and anywhere the street data is sparse. BigDataCloud's approach is different: we resolve to administrative and non-administrative boundaries instead, which means consistent results regardless of how populated the area is.

Key characteristics of this API:

  • Sub-millisecond response times — no external network hops, pure boundary lookup
  • Results in over 100 languages
  • Full postal code accuracy for the US, Great Britain, and Australia; partial for other countries
  • Works reliably in rural, regional, and less-populated areas where street-level geocoding struggles

For background on how reverse geocoding works and where different approaches break down, see How reliable are reverse geocoding APIs for location-based services?

GEThttps://api-bdc.net/data/reverse-geocode

Parameters

ParameterTypeRequiredDescription
latitudenumber (double)OptionalLatitude value as per WGS 84 reference system (GPS system). Expected values are in [-90, 90] range
longitudenumber (double)OptionalLongitude value as per WGS 84 reference system (GPS system). Expected values are in [-180, 180] range
localityLanguagestringOptionalPreferred 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.
keystringOptionalYour API key

Responses

200OK

Sample Request

https://api-bdc.net/data/reverse-geocode?latitude=-34.93129&longitude=138.59669&localityLanguage=en&key=[YOUR API KEY]

Sample Response

JSON View

Response Schema

latitudenumberRequested Latitude
longitudenumberRequested Longitude
localityLanguageRequestedstringThe locality language that was used for this response, as requested via the `localityLanguage` parameter (ISO 639-1 code, e.g. "en").
continentstringLocalised Continent name in the requested language, if available
continentCodestringThe ISO continent code for the location (e.g. "EU" for Europe, "AS" for Asia, "OC" for Oceania)
countryNamestringLocalised Country name in the requested language, if available
countryCodestringCountry code as defined by ISO 3166-1 standard
principalSubdivisionstringLocalised principal subdivision name in the requested language, if available
principalSubdivisionCodestringPrincipal subdivision code as defined by ISO 3166-2 standard
citystringThe 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
localitystringThe most granular named locality (suburb, village, or town) that the coordinates fall within. Localised to the requested language where available.
postcodestringPostcode, if available
plusCodestringThe Open Location Code (Plus Code) for this location (e.g. "4RRH46J6+22"). A compact, address-independent encoding of coordinates.
fipsobjectFIPS 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.
statestringState-level FIPS codes have two digits
countystringA three digits County-level FIPS code.
countySubdivisionstringFIPS five digits County Subdivision Code
placestringFIPS five digits place code, omitted if unavailable
csdCodestringCSD (Census Subdivision) code, omitted if unavailable. Canadian Geographic Codes. Visit CSD FAQ page for more information.
localityInfoobjectlocalityInfo object
administrativearrayAdministrative authorities as ordered by area (most significant first). Omitted if no administrative boundaries are available
namestringLocalised name of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
descriptionstringLocalised description of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
isoNamestringISO 3166-2 standard name, if available
orderintegerOrder value consistent across all entities in the Locality Info parent object. Ordered by geographic area (most significant first)
adminLevelintegerAn administrative level as defined by OpenStreetMaps project
isoCodestringISO 3166-2 standard code, if available
wikidataIdstringWikidata item identifier, if available
geonameIdintegerUnique identifier given by GeoNames.org, if available
chinaAdminCodestringChina Administrative division code. Only available for locations based in China and omitted for others
informativearrayNon-administrative boundaries as ordered by area (most significant first). Omitted if unavailable
namestringLocalised name of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
descriptionstringLocalised description of the place in the requested language, if available. The language is as defined by the 'localityLanguage' request parameter
isoNamestringISO 3166-2 standard name, if available
orderintegerOrder value consistent across all entities in the Locality Info parent object. Ordered by geographic area (most significant first)
adminLevelintegerAn administrative level as defined by OpenStreetMaps project
isoCodestringISO 3166-2 standard code, if available
wikidataIdstringWikidata item identifier, if available
geonameIdintegerUnique identifier given by GeoNames.org, if available
chinaAdminCodestringChina Administrative division code. Only available for locations based in China and omitted for others
400Bad request

Sample Response

JSON View
401Invalid coordinates

Sample Response

JSON View
403Access denied, or your quota limit has exceeded

Sample Response

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

Sample Response

JSON View