Timezone API for coordinates

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

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 example Europe/Amsterdam
  • type: standard, daylightSaving, or other
  • utc_offset and offset_seconds: the exact offset at the requested instant, for example +02:00 and 7200
  • abbreviation: the local abbreviation, for example CEST
  • local_time: the local date and time with its offset
  • next_transition: the next known offset change with the state before and after it, or null when no change is known within the supported date range
  • tzdb_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 GET request to https://api.geoapify.com/v1/timezone with lat, lon, and your apiKey.
  • Add the optional at parameter to ask about a specific moment. Without it, the API uses the current time.
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 objectTimezone API
InputAn address or coordinatesCoordinates and an optional instant
Time zone nameYesYes
OffsetsBoth standard and daylight offsets (offset_STD, offset_DST)The one offset that applies at the instant
Local timeNoYes
Daylight saving changesNoNext transition, or all transitions in a period
Best forAddress results that need time zone contextShowing 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.

ResponseMeaning
HTTP 200Time zone information for the location.
HTTP 400Invalid coordinates, an at value without a time or offset, an instant outside the supported range, or a transitions interval longer than 366 days.
HTTP 401Missing or invalid API key.
HTTP 429Quota 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:

World timezone map with geographic boundaries

Timezone Dataset: IANA-Based Timezone Metadata and GeoJSON Boundaries

Download timezone JSON and GeoJSON files and use them in web apps, BI dashboards, GIS tools, or spatial databases.
Reverse geocoding on a Hildesheim map: point 52.152066, 9.952231 returns Stadtbibliothek, Judenstraße 1, 31134

Reverse Geocoding API - Convert Lat/Long to Address

Turn latitude and longitude into an address, city, postcode or locality name. Free plan, code samples and a live demo.
Geoapify MCP Server connecting AI tools with maps and location APIs

Geoapify MCP Server

Use 12 Geoapify MCP tools to find places, calculate routes, and analyze GeoJSON geometries with AI assistants.

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.