
Timezone API
Get the time zone and exact UTC offset for coordinates
Send a latitude and longitude, and Geoapify Timezone API returns the IANA time zone, the UTC offset that applies at that moment, the local time, and the next daylight saving change.
Ask about any instant from 2025 to 2031, or list all offset changes in a period. Use it for:
- scheduling and appointment booking
- delivery windows
- meetings across time zones
- logs and reports in local time
On this page
What the Timezone API Returns
A time zone name alone is not enough to show the correct local time. Europe/Amsterdam is UTC+1 in winter and UTC+2 in summer, and America/Phoenix stays at UTC−7 all year while the rest of the US Mountain time zone moves its clocks. The Timezone API resolves this for you: for a point and an instant, it returns the rules that actually apply.
For each location, the response includes:
name: the IANA time zone identifier, for exampleEurope/Amsterdamtype:standard,daylightSaving, orotherutc_offsetandoffset_seconds: the exact offset at the requested instant, for example+02:00and7200abbreviation: the local abbreviation, for exampleCESTlocal_time: the local date and time with its offsetnext_transition: the next known offset change with the state before and after it, ornullwhen no change is known within the supported date rangetzdb_version: the version of the IANA Time Zone Database used for the answer
The API covers fractional offsets such as Asia/Kathmandu (+05:45) and the open ocean, where it returns nautical zones such as Etc/GMT+10. A disputed boundary can return more than one time zone, so timezones is an array.
Quick Start with Timezone API
- Create an API key in Geoapify MyProjects.
- Send an HTTP
GETrequest tohttps://api.geoapify.com/v1/timezonewithlat,lon, and yourapiKey. - Add the optional
atparameter to ask about a specific moment. Without it, the API uses the current time.
- cURL
- JavaScript
- Python
curl "https://api.geoapify.com/v1/timezone?lat=52.3772&lon=4.9066&at=2026-10-23T12:00:00Z&apiKey=YOUR_API_KEY"The response for Amsterdam on 23 October 2026 shows daylight saving time (CEST, UTC+2) and the switch back to standard time two days later:
{
"lat": 52.3772,
"lon": 4.9066,
"at": "2026-10-23T12:00:00.000Z",
"tzdb_version": "2026e",
"timezones": [
{
"name": "Europe/Amsterdam",
"type": "daylightSaving",
"utc_offset": "+02:00",
"offset_seconds": 7200,
"abbreviation": "CEST",
"local_time": "2026-10-23T14:00:00.000+02:00",
"next_transition": {
"at": "2026-10-25T01:00:00.000Z",
"before": {
"type": "daylightSaving",
"utc_offset": "+02:00",
"offset_seconds": 7200,
"abbreviation": "CEST"
},
"after": {
"type": "standard",
"utc_offset": "+01:00",
"offset_seconds": 3600,
"abbreviation": "CET"
},
"offset_change_seconds": -3600,
"kind": "daylight-end"
}
}
]
}The at value must be a full RFC 3339 timestamp with a time and an offset, such as 2026-10-23T12:00:00Z or 2026-10-23T14:00:00+02:00. A date alone, such as 2026-10-23, is rejected.
Daylight Saving Transitions in a Period
To plan ahead, use GET /v1/timezone/transitions with from and to. It lists every offset change at the location in the interval: daylight saving starts and ends, permanent offset changes, and abbreviation changes. from is inclusive, to is exclusive, and the interval can be up to 366 days.
curl "https://api.geoapify.com/v1/timezone/transitions?lat=40.7484&lon=-73.9857&from=2026-01-01T00:00:00Z&to=2027-01-01T00:00:00Z&apiKey=YOUR_API_KEY"For New York in 2026, the API returns two transitions: daylight saving time starts on 8 March and ends on 1 November. A shortened response:
{
"lat": 40.7484,
"lon": -73.9857,
"from": "2026-01-01T00:00:00.000Z",
"to": "2027-01-01T00:00:00.000Z",
"tzdb_version": "2026e",
"timezones": [
{
"name": "America/New_York",
"transitions": [
{
"at": "2026-03-08T07:00:00.000Z",
"before": { "type": "standard", "utc_offset": "-05:00", "abbreviation": "EST" },
"after": { "type": "daylightSaving", "utc_offset": "-04:00", "abbreviation": "EDT" },
"offset_change_seconds": 3600,
"kind": "daylight-start"
},
{
"at": "2026-11-01T06:00:00.000Z",
"before": { "type": "daylightSaving", "utc_offset": "-04:00", "abbreviation": "EDT" },
"after": { "type": "standard", "utc_offset": "-05:00", "abbreviation": "EST" },
"offset_change_seconds": -3600,
"kind": "daylight-end"
}
]
}
]
}The kind field is one of daylight-start, daylight-end, offset-change, or designation-change. Use it to warn users before clocks change, to check recurring meetings, or to plan shifts that span the change.
Timezone API vs the Geocoding timezone Object
The Geocoding API and Reverse Geocoding API already return a timezone object with every address. It describes the time zone in general, not a specific moment:
Geocoding timezone object | Timezone API | |
|---|---|---|
| Input | An address or coordinates | Coordinates and an optional instant |
| Time zone name | Yes | Yes |
| Offsets | Both standard and daylight offsets (offset_STD, offset_DST) | The one offset that applies at the instant |
| Local time | No | Yes |
| Daylight saving changes | No | Next transition, or all transitions in a period |
| Best for | Address results that need time zone context | Showing or computing the correct local time |
If you already geocode the address, use its timezone.name for display. When you need to know whether daylight saving time applies on a given date, or what the local time is right now, call the Timezone API with the coordinates.
Supported Dates and Errors
The API answers for instants from 2025-01-01 through 2031-12-31 UTC, using the time zone rules bundled from the IANA database. The tzdb_version field shows which release was used.
| Response | Meaning |
|---|---|
| HTTP 200 | Time zone information for the location. |
| HTTP 400 | Invalid coordinates, an at value without a time or offset, an instant outside the supported range, or a transitions interval longer than 366 days. |
| HTTP 401 | Missing or invalid API key. |
| HTTP 429 | Quota exceeded. |
next_transition: null is a normal answer. It means no offset change is known within the supported range, for example in America/Phoenix or Asia/Kathmandu, where clocks do not change.
Timezone for AI Agents (MCP)
The same lookup is available to AI assistants as the get_timezone tool on Geoapify MCP Server. An assistant can geocode a place, then ask for its local time or the next daylight saving change. The tool takes lat, lon, and an optional at_unix_seconds:
{
"jsonrpc": "2.0",
"id": 5,
"method": "tools/call",
"params": {
"name": "get_timezone",
"arguments": {
"lat": 40.7484,
"lon": -73.9857,
"at_unix_seconds": 1792756800
}
}
}For this instant (23 October 2026, 12:00 UTC), the tool returns America/New_York, EDT, offset -04:00, local time 2026-10-23T08:00:00.000-04:00, and the next transition to EST on 1 November. Example prompts: "What time is it now at 35.6762, 139.6503?" or "When do clocks change next in Sydney?"
Pricing
Each Timezone API request costs 1 credit. This applies to both /v1/timezone and /v1/timezone/transitions, and to get_timezone calls through MCP. Add billing_details=credits to a request to see the billed credits in the response as billing.credits.
To have Geoapify process requests on EU infrastructure, send the same requests to https://api-eu.geoapify.com/v1/timezone. For plan limits and commercial pricing, see Geoapify Pricing.
Learn More
Need time zone boundaries for offline use, the time zone of an address, or location tools for AI agents? These pages cover them:

Timezone Dataset: IANA-Based Timezone Metadata and GeoJSON Boundaries

Reverse Geocoding API - Convert Lat/Long to Address

Geoapify MCP Server
FAQ
How do I get the time zone for latitude and longitude?
Send a GET request to https://api.geoapify.com/v1/timezone?lat=LAT&lon=LON&apiKey=YOUR_API_KEY. The response contains the IANA time zone name, the current UTC offset, the abbreviation, the local time, and the next transition. See the Timezone API documentation.
Does the Timezone API handle daylight saving time?
Yes. The type field shows whether standard or daylightSaving time applies at the requested instant, and utc_offset is the offset in effect at that moment. next_transition shows when the offset changes next.
Can I get the time zone for a past or future date?
Yes. Pass the at parameter as an RFC 3339 timestamp, for example 2026-12-24T18:00:00+01:00. Supported instants are from 2025-01-01 through 2031-12-31 UTC.
How do I find when clocks change at a location?
Use /v1/timezone/transitions with lat, lon, from, and to. It returns every offset change in an interval of up to 366 days.
Why is next_transition null?
No offset change is known for that location within the supported date range. This is normal for time zones without daylight saving time, such as America/Phoenix or Asia/Kathmandu.
Why can the response contain more than one time zone?
At a disputed boundary, more than one time zone can apply to the same point, so timezones is an array. Most locations return one entry.
How is it different from the timezone in Geocoding API results?
The Geocoding API timezone object gives the zone name and both standard and daylight offsets. The Timezone API tells you which offset applies at a specific moment, the local time, and the next transition.
Can AI assistants use the Timezone API?
Yes. Geoapify MCP Server provides the get_timezone tool, which takes lat, lon, and an optional at_unix_seconds and returns the same information.
How much does the Timezone API cost?
Each request costs 1 credit, for both the timezone and transitions endpoints. See the pricing page for plans and limits.
Can I download time zone data instead?
Yes. The timezone dataset contains IANA time zone metadata and GeoJSON boundaries for offline use, GIS tools, and databases.