← Docs

Point API

Country, state, district, and timezone at a coordinate.

Give it a latitude and longitude to resolve the country, state, district and timezone at that point. Deep adds terrain elevation and a compact nearest-city summary.

Out in the ocean, place fields come back null. Requested deep can still return terrain elevation. Lakes and rivers are not a special case, they belong to whatever country and state surround them. Only need elevation? /elevation stays the focused tool.

Lookup

GET
api.parseapi.com/point?lat={lat}&lon={lon}
Country, state, district and timezone for a point
Explore
Parameters 4
latnumber · query · required

Latitude

lonnumber · query · required

Longitude

langstring · query · optional

Display language as one BCP 47 tag, such as fr or zh-Hant. Changes supported display labels only; IDs, codes, native names, facts, parsing and deep access stay unchanged. Omit for the original response. Unsupported regions use the supported language base; unsupported languages or scripts use English. Missing labels retain their source value. Accept-Language is not read automatically. Available on the current API contract; frozen 1.0.0 is unchanged.

deepboolean · query · optional

Terrain elevation and a compact nearest-city summary. Included on every plan, with no additional charge.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.point(39.77, -104.9);
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "latitude": 39.77,
  "longitude": -104.9,
  "country": "US",
  "country_name": "United States",
  "state": "CO",
  "state_name": "Colorado",
  "district": "08031",
  "district_name": "Denver",
  "timezone": "America/Denver"
}

Response fields

latitude
Input latitude
longitude
Input longitude
country
ISO2 country code (null over open ocean)
country_name
Country name
state
State / ADM1 code
state_name
State / ADM1 name
district
District code (US county FIPS, FR INSEE department, GB GSS, null elsewhere)
district_name
District / ADM2 name
timezone
IANA timezone containing the coordinate; a nautical zone over open ocean, or null when unresolved

Got a district code back? Resolve it at /district/{code}.

Deep

?deep=true adds elevation, resolution and a compact nearest city. Included on every plan. Timezone stays in core.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.point(39.77, -104.9, { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "latitude": 39.77,
  "longitude": -104.9,
  "country": "US",
  "country_name": "United States",
  "state": "CO",
  "state_name": "Colorado",
  "district": "08031",
  "district_name": "Denver",
  "timezone": "America/Denver",
  "deep": {
    "city": {
      "name": "Denver",
      "name_local": null,
      "type": null,
      "state": "CO",
      "state_name": "Colorado",
      "country": "US",
      "country_name": "United States",
      "latitude": 39.76185,
      "longitude": -104.881105,
      "distance": 1.85,
      "distance_mi": 1.15,
      "id": "city_ccvrzq54e65m"
    },
    "elevation": 1610,
    "elevation_ft": 5282,
    "resolution": 30
  }
}

Deep fields

deep.city
Compact nearest-city identity and location, including distance and distance_mi; null when no city is within 200 km
deep.elevation
Elevation in meters (null if unavailable)
deep.elevation_ft
Elevation in feet (null if unavailable)
deep.resolution
Approx elevation grid spacing in meters

In a mobile app

Ship an app key and the Swift or Kotlin SDK. They send your bundle ID as X-App-Id. Coordinates from the device, place and elevation back.

import ParseAPI

let parse = try ParseAPI("parse_app_...")
let point = try await parse.point(lat, lon, deep: true)
import com.parseapi.ParseAPI

val parse = ParseAPI("parse_app_...") {
    appId = BuildConfig.APPLICATION_ID
}
val point = parse.point(lat, lon) { deep = true }

Display language

Pass lang with a language tag such as fr, pt-BR, or zh-Hant. Existing geographic display labels with a stable source identifier, including nested records. Country names are covered; other place names use separately sourced translations when available.

Omitting lang preserves the original response. Codes, IDs, numeric facts and native-name fields stay unchanged. Missing translations keep their existing source value; unknown values stay null. A preserved name_local may equal the translated name.

Send a chosen browser preference explicitly, for example { lang: navigator.language } in your JavaScript SDK options. The API does not read Accept-Language automatically. Unsupported regions fall back to their supported base language; unsupported languages or scripts use English. Empty, invalid or repeated tags return 400.

Content-Language identifies languages used in translated display fields and known English fallbacks. This option follows the current API contract. Requests selecting frozen 1.0.0 retain that contract. Select API 2.0.0 to use display language.

41 display language choices
Language tagLanguage
enAmerican English
zh-Hans简体中文
frfrançais (France)
deDeutsch
ititaliano
ja日本語
ko한국어
esespañol de España
arالعربية
bgбългарски
cacatalà
hrhrvatski
csčeština
dadansk
nlNederlands
fisuomi
elΕλληνικά
heעברית
hiहिन्दी
humagyar
idIndonesia
kkқазақ тілі
msMelayu
nbnorsk bokmål
plpolski
ptportuguês (Brasil)
roromână
ruрусский
skslovenčina
svsvenska
thไทย
trTürkçe
ukукраїнська
viTiếng Việt
zh-Hant繁體中文
en-AUAustralian English
en-GBBritish English
fr-CAfrançais canadien
es-419español latinoamericano
pt-PTportuguês europeu
zh-Hant-HK繁體中文(中國香港特別行政區)

Build with Point

All tutorials →

Questions? Email