Coordinates · Place · Timezone
Point API
Turn coordinates
into a place.
Get the country, state, district and timezone for a map click, GPS reading or geotagged photo. Add a nearby city and terrain with Deep.
Core on every plan. Deep on paid plans.
Try it
GeoJSON output
From the response
onto the map.
Choose a location and switch between JSON and GeoJSON. The map draws the returned coordinate; the response keeps its country, state, district and timezone.
GET /point?lat=39.77&lon=-104.9&format=geojson
Looking up the point…
The pin uses the coordinates in the response. No area boundaries are returned.
Loading the response…
GeoJSON puts longitude first, then latitude, inside geometry.coordinates. Place details move into properties. Ocean coordinates stay on the map with null place details.
From your map to your app
A point in.
A place out.
Start with the place and its timezone. Choose a scenario to see the request and complete JSON together.
A coordinate becomes a place.
One point in Denver returns its country, state, county and timezone. Keep the codes for your app and the names for your interface.
Request
curl "https://api.parseapi.com/point?lat=39.77&lon=-104.9&deep=true" \
-H "X-API-Key: YOUR_API_KEY"Example response
Optional Deep
Add the city.
Read the terrain.
Add terrain height and a nearby city for a photo caption, a map panel or a location record. Deep keeps the place and timezone from the ordinary response.
/point?lat=39.77&lon=-104.9&deep=true
- Nearby city
- Denver
- Elevation
- 1,610 m / 5,282 ft
- Timezone
- America/Denver
- The timezone at your point
- Use the IANA identifier to display time in your application. The timezone is part of the ordinary response.
- Terrain in meters and feet
- Read elevation in both units. Ocean depths use negative values.
U.S. representation
Put the point
in its district.
Read the electoral area at the supplied coordinate. Deep returns the district code, its literal Census name and the Congress number alongside the location.
U.S., D.C. and territories. 119th Congress.
38.8977, -77.0365
Washington, D.C.
- Electoral area name
- Delegate District (at Large)
- Electoral area code
- 1198
- Congress number
- 119
Point → State · Time · Weather
Use the place behind the pin.
Point gives your coordinate its place names and codes. Use its state code for a state lookup, its timezone for local time, or its coordinates for nearby weather.
Look up the coordinate
/point?lat=39.77&lon=-104.9
Fields from the response
{
"latitude": 39.77,
"longitude": -104.9,
"state": "CO",
"country": "US",
"timezone": "America/Denver"
}This Denver point returns state CO, country US and timezone America/Denver. The location names are already included.
Use
state+countryExplore the state
/state/CO?country=US
Use CO with US to look up the state and its timezones. Keep Point's timezone for the coordinate itself.
Use
timezoneUse the timezone at the pin
/time/America/Denver
Pass Point’s timezone to Time. Keep the timezone from the coordinate when a state spans several zones.
Use
latitude+longitudeGet weather near the pin
/weather?lat=39.77&lon=-104.9
Reuse the coordinate for the nearest supported station's observation, with its reading time and distance from the pin.
Use this in your app
// Run on your server with PARSEAPI_KEY in the environment.
const key = process.env.PARSEAPI_KEY;
if (!key) throw new Error('Set PARSEAPI_KEY on your server.');
const segment = value => encodeURIComponent(value);
const timezonePath = zone => zone.split('/').map(segment).join('/');
async function lookup(path, query = {}) {
const url = new URL(path, 'https://api.parseapi.com');
url.search = new URLSearchParams(query).toString();
const response = await fetch(url, {
headers: { 'X-API-Key': key, 'Parse-Version': '2.0.0' },
signal: AbortSignal.timeout(10000),
});
if (!response.ok) {
const error = await response.json().catch(() => null);
throw new Error(error?.message ?? 'ParseAPI returned HTTP ' + response.status);
}
return response.json();
}
const point = await lookup('/point', { lat: '39.77', lon: '-104.9' });
const [state, time, weather] = await Promise.all([
point.state && point.country
? lookup('/state/' + segment(point.state), { country: point.country })
: null,
point.timezone ? lookup('/time/' + timezonePath(point.timezone)) : null,
Number.isFinite(point.latitude) && Number.isFinite(point.longitude)
? lookup('/weather', { lat: String(point.latitude), lon: String(point.longitude) })
: null,
]);
console.log({ point, state, time, weather });Location data
Ready for a
world of coordinates.
Use the same latitude and longitude input for a local map pin, an international photo or a point at sea.
- Country and timezone
- Worldwide geography and IANA timezone identifiers. Open-ocean points use a nautical timezone.
- State and district
- Administrative divisions where mapped. District coverage includes the U.S., France and Great Britain.
- Terrain
- Land elevation and ocean depth, with measurement units in the response.
From your first request to your application
Build it into
your app.
Send latitude and longitude over HTTP or from your SDK. Use the same key for Point and the other ParseAPI products in your application.
HTTP, SDKs and MCP
Copy a request above, or use the Point method in your language. MCP brings the same lookup to your agent.
Continue with Time for local clocks and conversions, or Elevation for terrain along a path.
Before you build.
What does a coordinate return?
Send latitude and longitude to get the country, state, administrative district and IANA timezone where available. The response keeps your coordinates. Missing names and codes stay null.
Does the nearest city contain my point?
Deep compares your coordinate with recorded city centers. It returns the closest center within 200 km, with straight-line distance in kilometers and miles. It does not test municipal boundaries. If no eligible center is nearby, city stays null.
Can I use the timezone for local time?
Yes. Point returns an IANA timezone ID, such as America/Denver, for use with a date and time library. Use the Time API for local clock time, UTC offsets, daylight saving changes or a conversion between places.
How do electoral and district differ?
district is the administrative area, such as a county. The electoral object identifies the area for the national lower-house or sole legislative chamber. On paid plans, deep.electoral.code is the country-specific code at your exact coordinate. Keep it as a string; letters and leading zeros depend on the country, and codes belong to the current boundary edition. Current coverage is US congressional districts and territories for the 119th Congress. deep.electoral.congress is the US Congress number, currently 119; it is null for other national legislatures. deep.electoral.name is the literal Census name for the matched district, or null when unavailable. Unsupported locations, exact boundary points and unavailable data return null. Deep is included on paid plans; existing accounts keep their current Deep access.
Which countries are covered?
Country and timezone lookup work worldwide. State coverage varies by country. The district layer covers the US, France and Great Britain, using a county or equivalent administrative area. Missing boundaries stay null. Open ocean returns a nautical timezone with null administrative fields.
How is Point priced?
Core is available on every plan. Deep is included on paid plans; existing accounts keep their current Deep access. Each lookup uses one API request from your shared plan allowance, with no additional unit or charge for Deep.
Point API pricing
Start with a point.
Core on every plan. Deep on paid plans. Your API request allowance is shared across ParseAPI products.
Free
Start free
Try Point with a free API key.
Room to grow
See plans
Choose the volume your app needs.