Date, Time and Time Zone API


Overview

Time zone API provides current time, date, and time zone related information. It can be consumed with the following input variations:

  • For a Time Zone Name
  • For any Address (preferrably, city address)
  • For Location Coordinates (latitude & longitude)
  • For any IP address
  • For any IATA code
  • For any ICAO code
  • For any UN/LO Code

In each variation of the time zone API, time zone response remains same. Alongside this geolocation information is provided for IP address and location address search, airport details are provided for IATA code and ICAO code search, and city details are provided for UN/LO code search. Here are the details to consume each variation of the time zone API.

Note

For client-side calls to the endpoints mentioned below using the Request Origin (available on paid plans only), the apiKey parameter can be omitted.

Important
Each successful Timezone lookup costs 1 credits per request. The X-Credits-Charged response header shows the total credits charged for the request. For details, please refer to our Credits Usage Guide.

Time Zone Information from a Time Zone Name

You can pass a valid time zone name as a query parameter tz to get the time zone information. Here is an example to get 'America/Los_Angeles' timezone information:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&tz=Australia/Lord_Howe'
Response
1{
2  "time_zone": {
3    "name": "Australia/Lord_Howe",
4    "offset": 10.5,
5    "offset_with_dst": 11,
6    "date": "2026-03-07",
7    "date_time": "2026-03-07 20:37:39",
8    "date_time_txt": "Saturday, March 07, 2026 20:37:39",
9    "date_time_wti": "Sat, 07 Mar 2026 20:37:39 +1100",
10    "date_time_ymd": "2026-03-07T20:37:39+1100",
11    "current_time": "2026-03-07 20:37:39.748+1100",
12    "current_time_unix": 1772876259.748,
13    "time_24": "20:37:39",
14    "time_12": "08:37:39 PM",
15    "week": 10,
16    "month": 3,
17    "year": 2026,
18    "year_abbr": "26",
19    "current_tz_abbreviation": "LHDT",
20    "current_tz_full_name": "Lord Howe Daylight Time",
21    "standard_tz_abbreviation": "LHST",
22    "standard_tz_full_name": "Lord Howe Standard Time",
23    "is_dst": true,
24    "dst_savings": 0.5,
25    "dst_exists": true,
26    "dst_tz_abbreviation": "LHDT",
27    "dst_tz_full_name": "Lord Howe Daylight Time",
28    "dst_start": {
29      "utc_time": "2025-10-04 TIME 15:30",
30      "duration": "+0.50H",
31      "gap": true,
32      "date_time_after": "2025-10-05 TIME 02:30",
33      "date_time_before": "2025-10-05 TIME 02:00",
34      "overlap": false
35    },
36    "dst_end": {
37      "utc_time": "2026-04-04 TIME 15:00",
38      "duration": "-0.50H",
39      "gap": false,
40      "date_time_after": "2026-04-05 TIME 01:30",
41      "date_time_before": "2026-04-05 TIME 02:00",
42      "overlap": true
43    }
44  }
45}

Time Zone Information from any Address

You can pass any address of a location as the query parameter location to get the time zone information. Here is an example to get the time zone information for the address 'London, UK':

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&location=London, UK'
Response
1{
2  "location": {
3    "location_string": "London, UK",
4    "country_name": "United Kingdom",
5    "state_prov": "England",
6    "city": "London",
7    "locality": "",
8    "latitude": "51.50002",
9    "longitude": "-0.19244"
10  },
11  "time_zone": {
12    "name": "Europe/London",
13    "offset": 0,
14    "offset_with_dst": 0,
15    "date": "2026-03-07",
16    "date_time": "2026-03-07 09:37:39",
17    "date_time_txt": "Saturday, March 07, 2026 09:37:39",
18    "date_time_wti": "Sat, 07 Mar 2026 09:37:39 +0000",
19    "date_time_ymd": "2026-03-07T09:37:39+0000",
20    "current_time": "2026-03-07 09:37:39.761+0000",
21    "current_time_unix": 1772876259.761,
22    "time_24": "09:37:39",
23    "time_12": "09:37:39 AM",
24    "week": 10,
25    "month": 3,
26    "year": 2026,
27    "year_abbr": "26",
28    "current_tz_abbreviation": "GMT",
29    "current_tz_full_name": "Greenwich Mean Time",
30    "standard_tz_abbreviation": "GMT",
31    "standard_tz_full_name": "Greenwich Mean Time",
32    "is_dst": false,
33    "dst_savings": 0,
34    "dst_exists": true,
35    "dst_tz_abbreviation": "BST",
36    "dst_tz_full_name": "British Summer Time",
37    "dst_start": {
38      "utc_time": "2026-03-29 TIME 01:00",
39      "duration": "+1.00H",
40      "gap": true,
41      "date_time_after": "2026-03-29 TIME 02:00",
42      "date_time_before": "2026-03-29 TIME 01:00",
43      "overlap": false
44    },
45    "dst_end": {
46      "utc_time": "2026-10-25 TIME 01:00",
47      "duration": "-1.00H",
48      "gap": false,
49      "date_time_after": "2026-10-25 TIME 01:00",
50      "date_time_before": "2026-10-25 TIME 02:00",
51      "overlap": true
52    }
53  }
54}

Time Zone Information from Location Coordinates

You can pass the latitude and longitude of a location as query parameters lat and long to get the time zone information. Here is an example to get time zone information for '-27.4748, 153.017' coordinates:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&lat=40.7128&long=-74.0060'
Response
1{
2  "time_zone": {
3    "name": "America/New_York",
4    "offset": -5,
5    "offset_with_dst": -5,
6    "date": "2026-03-07",
7    "date_time": "2026-03-07 04:37:39",
8    "date_time_txt": "Saturday, March 07, 2026 04:37:39",
9    "date_time_wti": "Sat, 07 Mar 2026 04:37:39 -0500",
10    "date_time_ymd": "2026-03-07T04:37:39-0500",
11    "current_time": "2026-03-07 04:37:39.746-0500",
12    "current_time_unix": 1772876259.746,
13    "time_24": "04:37:39",
14    "time_12": "04:37:39 AM",
15    "week": 10,
16    "month": 3,
17    "year": 2026,
18    "year_abbr": "26",
19    "current_tz_abbreviation": "EST",
20    "current_tz_full_name": "Eastern Standard Time",
21    "standard_tz_abbreviation": "EST",
22    "standard_tz_full_name": "Eastern Standard Time",
23    "is_dst": false,
24    "dst_savings": 0,
25    "dst_exists": true,
26    "dst_tz_abbreviation": "EDT",
27    "dst_tz_full_name": "Eastern Daylight Time",
28    "dst_start": {
29      "utc_time": "2026-03-08 TIME 07:00",
30      "duration": "+1.00H",
31      "gap": true,
32      "date_time_after": "2026-03-08 TIME 03:00",
33      "date_time_before": "2026-03-08 TIME 02:00",
34      "overlap": false
35    },
36    "dst_end": {
37      "utc_time": "2026-11-01 TIME 06:00",
38      "duration": "-1.00H",
39      "gap": false,
40      "date_time_after": "2026-11-01 TIME 01:00",
41      "date_time_before": "2026-11-01 TIME 02:00",
42      "overlap": true
43    }
44  }
45}

IP to Time Zone

You can pass any IPv4 or IPv6 address as a query parameter ip to get the regional timezone information. Here is an example to get the time zone information for the IP address '1.1.1.1':

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&ip=49.12.0.0'
Response
1{
2  "ip": "49.12.0.0",
3  "location": {
4    "continent_code": "EU",
5    "continent_name": "Europe",
6    "country_code2": "DE",
7    "country_code3": "DEU",
8    "country_name": "Germany",
9    "country_name_official": "Federal Republic of Germany",
10    "is_eu": true,
11    "state_prov": "Bavaria",
12    "state_code": "DE-BY",
13    "district": "Cham",
14    "city": "Falkenstein",
15    "zipcode": "93167",
16    "latitude": "49.09745",
17    "longitude": "12.48637"
18  },
19  "time_zone": {
20    "name": "Europe/Berlin",
21    "offset": 1,
22    "offset_with_dst": 1,
23    "date": "2026-03-07",
24    "date_time": "2026-03-07 10:37:39",
25    "date_time_txt": "Saturday, March 07, 2026 10:37:39",
26    "date_time_wti": "Sat, 07 Mar 2026 10:37:39 +0100",
27    "date_time_ymd": "2026-03-07T10:37:39+0100",
28    "current_time": "2026-03-07 10:37:39.744+0100",
29    "current_time_unix": 1772876259.744,
30    "time_24": "10:37:39",
31    "time_12": "10:37:39 AM",
32    "week": 10,
33    "month": 3,
34    "year": 2026,
35    "year_abbr": "26",
36    "current_tz_abbreviation": "CET",
37    "current_tz_full_name": "Central European Standard Time",
38    "standard_tz_abbreviation": "CET",
39    "standard_tz_full_name": "Central European Standard Time",
40    "is_dst": false,
41    "dst_savings": 0,
42    "dst_exists": true,
43    "dst_tz_abbreviation": "CEST",
44    "dst_tz_full_name": "Central European Summer Time",
45    "dst_start": {
46      "utc_time": "2026-03-29 TIME 01:00",
47      "duration": "+1.00H",
48      "gap": true,
49      "date_time_after": "2026-03-29 TIME 03:00",
50      "date_time_before": "2026-03-29 TIME 02:00",
51      "overlap": false
52    },
53    "dst_end": {
54      "utc_time": "2026-10-25 TIME 01:00",
55      "duration": "-1.00H",
56      "gap": false,
57      "date_time_after": "2026-10-25 TIME 02:00",
58      "date_time_before": "2026-10-25 TIME 03:00",
59      "overlap": true
60    }
61  }
62}
Note
When you get the time zone information through an IP address, API will also return the location field along with the time zone information.

Using Client or Machine IP Address

You can call the time zone API without passing any time zone, coordinates, IATA, ICAO, LO code or IP address as well. It will use the calling machine's IP address to return the regional time zone information. Here is an example:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY'
Note

This variation is widely used on embedded hardware and IoT devices to get current time after reboot.


Time Zone and Airport Details from IATA Code

We can pass any 3 letter IATA code as a query parameter iata_code to get the comprehensive airport details along with the time zone information, in which that airport exists. Here is an example to get the airport details about the IATA code 'DXB':

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&iata_code=LHR'
Response
1{
2  "airport_details": {
3    "type": "large_airport",
4    "name": "London Heathrow Airport",
5    "latitude": "51.47060",
6    "longitude": "-0.46194",
7    "elevation_ft": 83,
8    "continent_code": "EU",
9    "country_code": "GB",
10    "state_code": "GB-ENG",
11    "city": "London",
12    "iata_code": "LHR",
13    "icao_code": "EGLL",
14    "faa_code": ""
15  },
16  "time_zone": {
17    "name": "Europe/London",
18    "offset": 0,
19    "offset_with_dst": 0,
20    "date": "2026-03-07",
21    "date_time": "2026-03-07 09:37:39",
22    "date_time_txt": "Saturday, March 07, 2026 09:37:39",
23    "date_time_wti": "Sat, 07 Mar 2026 09:37:39 +0000",
24    "date_time_ymd": "2026-03-07T09:37:39+0000",
25    "current_time": "2026-03-07 09:37:39.762+0000",
26    "current_time_unix": 1772876259.762,
27    "time_24": "09:37:39",
28    "time_12": "09:37:39 AM",
29    "week": 10,
30    "month": 3,
31    "year": 2026,
32    "year_abbr": "26",
33    "current_tz_abbreviation": "GMT",
34    "current_tz_full_name": "Greenwich Mean Time",
35    "standard_tz_abbreviation": "GMT",
36    "standard_tz_full_name": "Greenwich Mean Time",
37    "is_dst": false,
38    "dst_savings": 0,
39    "dst_exists": true,
40    "dst_tz_abbreviation": "BST",
41    "dst_tz_full_name": "British Summer Time",
42    "dst_start": {
43      "utc_time": "2026-03-29 TIME 01:00",
44      "duration": "+1.00H",
45      "gap": true,
46      "date_time_after": "2026-03-29 TIME 02:00",
47      "date_time_before": "2026-03-29 TIME 01:00",
48      "overlap": false
49    },
50    "dst_end": {
51      "utc_time": "2026-10-25 TIME 01:00",
52      "duration": "-1.00H",
53      "gap": false,
54      "date_time_after": "2026-10-25 TIME 01:00",
55      "date_time_before": "2026-10-25 TIME 02:00",
56      "overlap": true
57    }
58  }
59}

Time Zone and Airport Details from ICAO Code

We can pass any 4 letter ICAO code as a query parameter icao_code to get the comprehensive airport details along with the time zone information, in which that airport exists. Here is an example to get the airport details about the ICAO code 'KATL':

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&icao_code=KATL'
Response
1{
2  "airport_details": {
3    "type": "large_airport",
4    "name": "Hartsfield Jackson Atlanta International Airport",
5    "latitude": "33.63670",
6    "longitude": "-84.42810",
7    "elevation_ft": 1026,
8    "continent_code": "NA",
9    "country_code": "US",
10    "state_code": "US-GA",
11    "city": "Atlanta",
12    "iata_code": "ATL",
13    "icao_code": "KATL",
14    "faa_code": ""
15  },
16  "time_zone": {
17    "name": "America/New_York",
18    "offset": -5,
19    "offset_with_dst": -5,
20    "date": "2026-03-07",
21    "date_time": "2026-03-07 04:37:39",
22    "date_time_txt": "Saturday, March 07, 2026 04:37:39",
23    "date_time_wti": "Sat, 07 Mar 2026 04:37:39 -0500",
24    "date_time_ymd": "2026-03-07T04:37:39-0500",
25    "current_time": "2026-03-07 04:37:39.759-0500",
26    "current_time_unix": 1772876259.759,
27    "time_24": "04:37:39",
28    "time_12": "04:37:39 AM",
29    "week": 10,
30    "month": 3,
31    "year": 2026,
32    "year_abbr": "26",
33    "current_tz_abbreviation": "EST",
34    "current_tz_full_name": "Eastern Standard Time",
35    "standard_tz_abbreviation": "EST",
36    "standard_tz_full_name": "Eastern Standard Time",
37    "is_dst": false,
38    "dst_savings": 0,
39    "dst_exists": true,
40    "dst_tz_abbreviation": "EDT",
41    "dst_tz_full_name": "Eastern Daylight Time",
42    "dst_start": {
43      "utc_time": "2026-03-08 TIME 07:00",
44      "duration": "+1.00H",
45      "gap": true,
46      "date_time_after": "2026-03-08 TIME 03:00",
47      "date_time_before": "2026-03-08 TIME 02:00",
48      "overlap": false
49    },
50    "dst_end": {
51      "utc_time": "2026-11-01 TIME 06:00",
52      "duration": "-1.00H",
53      "gap": false,
54      "date_time_after": "2026-11-01 TIME 01:00",
55      "date_time_before": "2026-11-01 TIME 02:00",
56      "overlap": true
57    }
58  }
59}

Time Zone and City Details from UN/LOCODE

We can pass any 5 letter UNLOCODE as a query parameter lo_code to get the comprehensive lo code/city details along with the time zone information of the concerned city. Here is an example to get the Germany city 'Berlin' details using the UNLOCODE code 'DEBER':

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&lo_code=DEBER'
Response
1{
2  "lo_code_details": {
3    "lo_code": "DEBER",
4    "city": "Berlin",
5    "state_code": "BE",
6    "country_code": "DE",
7    "country_name": "",
8    "location_type": "Port, Rail Terminal, Road Terminal, Airport, Postal Exchange",
9    "latitude": "52.51667",
10    "longitude": "13.38333"
11  },
12  "time_zone": {
13    "name": "Europe/Berlin",
14    "offset": 1,
15    "offset_with_dst": 1,
16    "date": "2026-03-07",
17    "date_time": "2026-03-07 10:37:39",
18    "date_time_txt": "Saturday, March 07, 2026 10:37:39",
19    "date_time_wti": "Sat, 07 Mar 2026 10:37:39 +0100",
20    "date_time_ymd": "2026-03-07T10:37:39+0100",
21    "current_time": "2026-03-07 10:37:39.764+0100",
22    "current_time_unix": 1772876259.764,
23    "time_24": "10:37:39",
24    "time_12": "10:37:39 AM",
25    "week": 10,
26    "month": 3,
27    "year": 2026,
28    "year_abbr": "26",
29    "current_tz_abbreviation": "CET",
30    "current_tz_full_name": "Central European Standard Time",
31    "standard_tz_abbreviation": "CET",
32    "standard_tz_full_name": "Central European Standard Time",
33    "is_dst": false,
34    "dst_savings": 0,
35    "dst_exists": true,
36    "dst_tz_abbreviation": "CEST",
37    "dst_tz_full_name": "Central European Summer Time",
38    "dst_start": {
39      "utc_time": "2026-03-29 TIME 01:00",
40      "duration": "+1.00H",
41      "gap": true,
42      "date_time_after": "2026-03-29 TIME 03:00",
43      "date_time_before": "2026-03-29 TIME 02:00",
44      "overlap": false
45    },
46    "dst_end": {
47      "utc_time": "2026-10-25 TIME 01:00",
48      "duration": "-1.00H",
49      "gap": false,
50      "date_time_after": "2026-10-25 TIME 02:00",
51      "date_time_before": "2026-10-25 TIME 03:00",
52      "overlap": true
53    }
54  }
55}
Note

If all available parameters are included in the request, the following preference order will be used for querying time zone information or converting time. The priority is determined based on the presence of these options:

  1. Timezone name
  2. Geo Coordinates
  3. Location Adddress
  4. IP Address
  5. IATA Code
  6. ICAO Code
  7. UN/LO Code

Response in Multiple Languages

The geolocation information in the response from Time zone API when called using an IP address, can be retreived in the following languages:

  • English (en)
  • German (de)
  • Russian (ru)
  • Japanese (ja)
  • French (fr)
  • Chinese Simplified (cn)
  • Spanish (es)
  • Czech (cs)
  • Italian (it)
  • Korean (ko)
  • Persian (fa)
  • Portuguese (pt)

By default, the API responds in English. You can change the response language by passing the language code as a query parameter lang . Here are an example to get time zone and geolocation information for an IPv4 IP Address '1.1.1.1' in Chinese language:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone?apiKey=API_KEY&ip=1.1.1.1&lang=cn'
Note

Multi language feature is available only for paid users.


Convert Time Between Time Zones

You can convert a timestamp provided as a query parameter time from one time zone to another time zone. You can convert the provided timestamp in six ways:


1. Convert Time Using Time Zone Names

We can provide proper time zone names to find the time difference between the given time zones. Here as an example to convert timestamp from 'America/Argentina/Catamarca' to 'Asia/Kabul' providing as query parameters tz_from and tz_to respectively:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone/convert?apiKey=API_KEY&tz_from=America/Argentina/Catamarca&tz_to=Asia/Kabul&time=2024-12-08 11:00'
Response
1{
2  "original_time": "2024-12-08 11:00",
3  "converted_time": "2024-12-08 18:30:00",
4  "diff_hour": 7.5,
5  "diff_min": 450
6}

2. Convert Time Using Location Coordinates

One can also calculate the time difference between the two different locations' geo coordinates. Here is an example to get the time zone difference from latitude '34.0207305', longitude '-118.6919163', to latitude '53.4736827', longitude '-77.3977062', provided as query parameters lat_from , lat_from , and lat_to , long_to respectively:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone/convert?apiKey=API_KEY&lat_from=34.0207305&long_from=-118.6919163&lat_to=53.4736827&long_to=-77.3977062'
Response
1{
2  "original_time": "2026-03-07 01:37:39",
3  "converted_time": "2026-03-07 04:37:39",
4  "diff_hour": 3,
5  "diff_min": 180
6}

3. Convert Time Using Location Addresses

We can calculate the time difference between the two different locations using the city address. Here is an example to find the time difference between the timezones of cities 'New York, USA' and 'Lahore, Pakistan' provided as query parameters location_from and location_to respectively:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone/convert?apiKey=API_KEY&location_from=New York, USA&location_to=Lahore, Pakistan&time=2024-12-08 06:00'
Response
1{
2  "original_time": "2024-12-08 06:00",
3  "converted_time": "2024-12-08 16:00:00",
4  "diff_hour": 10,
5  "diff_min": 600
6}

4. Convert Time Using IATA Codes

We can calculate the time difference of two airports using their IATA codes. Here's an example to calculate the time difference of airport 'Dubai International Airport' (DXB) and 'Heathrow Airport' (LHR) with their IATA codes provided as query parameters iata_from and iata_to respectively:

curl -X GET 'https://api.ipgeolocation.io/v3/timezone/convert?apiKey=API_KEY&iata_from=DXB&iata_to=LHR'
Response
1{
2  "original_time": "2026-03-07 13:37:39",
3  "converted_time": "2026-03-07 09:37:39",
4  "diff_hour": 4,
5  "diff_min": 240
6}

5. Convert Time Using ICAO Codes

Similarly, We can calculate the time difference of two airports using their ICAO codes. Here's an example to calculate the time difference of airport 'Sydney Kingsford Smith Airport' (YSSY) and 'Beijing Capital International Airport' (ZBAA) with their IATA codes provided as query parameters icao_from and icao_to respectively, and the time to convert is provided as query parameter time :

curl -X GET 'https://api.ipgeolocation.io/v3/timezone/convert?apiKey=API_KEY&icao_from=YSSY&icao_to=ZBAA&time=2025-01-30 09:00'
Response
1{
2  "original_time": "2025-01-30 09:00",
3  "converted_time": "2025-01-30 06:00:00",
4  "diff_hour": 3,
5  "diff_min": 180
6}

6. Convert Time Using UN/LOCODE

We can also calculate the time difference between the two cities using their UN/LOCODE with the help of timezone API. Here's an example to calculate the time difference of cities 'Islamabad' (PKISB) and 'New York' (USNYC) with their UN/LOCODE provided as query parameters locode_from and locode_to respectively, and the time to convert is provided as query parameter time :

curl -X GET 'https://api.ipgeolocation.io/v3/timezone/convert?apiKey=API_KEY&locode_from=PKISB&locode_to=USNYC&time=2025-02-28 09:00:00'
Response
1{
2  "original_time": "2025-02-28 09:00:00",
3  "converted_time": "2025-02-27 23:00:00",
4  "diff_hour": 10,
5  "diff_min": 600
6}
Note

The time parameter takes the input in the following two formats: i) 'yyyy-MM-dd HH:mm', and ii) 'yyyy-MM-dd HH:mm:ss'. This parameter is optional and you can omit it to convert the current time between two coordinates, time zones, locations, airports or UN/LOCODEs.


Timezone Details in Main IPGeolocation Endpoint

Timezone data is included by default in the IP Geolocation API ( /v3/ipgeo ) for both Free and Paid plan subscriptions. See the Pricing page for plan details. Additional timezone-related fields and extended metadata are available through the dedicated /v3/timezone endpoint.

Basic timezone details are returned in the /v3/ipgeo endpoint response by default, as shown below.

curl -X GET 'https://api.ipgeolocation.io/v3/ipgeo?apiKey=API_KEY&ip=91.128.103.196'
Response
1{
2  "ip": "91.128.103.196",
3  "time_zone": {
4    "name": "Europe/Stockholm",
5    "offset": 1,
6    "offset_with_dst": 1,
7    "current_time": "2026-03-07 10:37:39.757+0100",
8    "current_time_unix": 1772876259.757,
9    "current_tz_abbreviation": "CET",
10    "current_tz_full_name": "Central European Standard Time",
11    "standard_tz_abbreviation": "CET",
12    "standard_tz_full_name": "Central European Standard Time",
13    "is_dst": false,
14    "dst_savings": 0,
15    "dst_exists": true,
16    "dst_tz_abbreviation": "CEST",
17    "dst_tz_full_name": "Central European Summer Time",
18    "dst_start": {
19      "utc_time": "2026-03-29 TIME 01:00",
20      "duration": "+1.00H",
21      "gap": true,
22      "date_time_after": "2026-03-29 TIME 03:00",
23      "date_time_before": "2026-03-29 TIME 02:00",
24      "overlap": false
25    },
26    "dst_end": {
27      "utc_time": "2026-10-25 TIME 01:00",
28      "duration": "-1.00H",
29      "gap": false,
30      "date_time_after": "2026-10-25 TIME 02:00",
31      "date_time_before": "2026-10-25 TIME 03:00",
32      "overlap": true
33    }
34  },
35  "location": {
36    "continent_code": "EU",
37    "continent_name": "Europe",
38    "country_code2": "SE",
39    "country_code3": "SWE",
40    "country_name": "Sweden",
41    "country_name_official": "Kingdom of Sweden",
42    "country_capital": "Stockholm",
43    "state_prov": "Stockholms län",
44    "state_code": "SE-AB",
45    "district": "Stockholm",
46    "city": "Stockholm",
47    "zipcode": "164 40",
48    "latitude": "59.40510",
49    "longitude": "17.95510",
50    "is_eu": true,
51    "country_flag": "https://ipgeolocation.io/static/flags/se_64.png",
52    "geoname_id": "9972319",
53    "country_emoji": "🇸🇪"
54  },
55  "country_metadata": {
56    "calling_code": "+46",
57    "tld": ".se",
58    "languages": [
59      "sv-SE",
60      "se",
61      "sma",
62      "fi-SE"
63    ]
64  },
65  "network": {
66    "connection_type": "",
67    "route": "91.128.0.0/14",
68    "is_anycast": false
69  },
70  "currency": {
71    "code": "SEK",
72    "name": "Swedish Krona",
73    "symbol": "kr"
74  },
75  "asn": {
76    "as_number": "AS1257",
77    "organization": "Tele2 Sverige AB",
78    "country": "SE",
79    "type": "ISP",
80    "domain": "tele2.com",
81    "date_allocated": "2002-09-19",
82    "rir": "RIPE"
83  },
84  "company": {
85    "name": "Tele2 Sverige AB",
86    "type": "ISP",
87    "domain": "tele2.com"
88  }
89}

1. Timezone Field Availability Comparison

Field/v3/ipgeo/v3/timezone
time_zone.name
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.offset
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.offset_with_dst
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.current_tz_abbreviation
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.current_tz_full_name
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.standard_tz_abbreviation
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.standard_tz_full_name
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.is_dst
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.dst_savings
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.dst_exists
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.dst_tz_abbreviation
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.dst_tz_full_name
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.dst_start
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.dst_end
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.current_time
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.current_time_unix
Available in /v3/ipgeo
Available in /v3/timezone
time_zone.date
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.date_time
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.date_time_txt
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.date_time_wti
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.date_time_ymd
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.time_24
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.time_12
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.week
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.month
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.year
Not available in /v3/ipgeo
Available in /v3/timezone
time_zone.year_abbr
Not available in /v3/ipgeo
Available in /v3/timezone
Important
Each request to /v3/ipgeo and /v3/timezone costs 1 credit per successful lookup.

Basic timezone information is included by default in /v3/ipgeo for both Free and Paid plans.

Use /v3/ipgeo when timezone data is required together with location, ASN, security, abuse contact, company, network, or user-agent information in a single response.

Use /v3/timezone when extended timezone metadata is required beyond the standard fields included in the /v3/ipgeo response.

Reference to Time Zone API Response

Below we have provided separate tables for each JSON object fields that can be returned by Time Zone API.


1. Standalone Fields Reference

FieldTypeDescriptionCan be empty?
ipstring

The IP address used for the timezone lookup. Returned when queried using the ip= parameter or with no parameters.

Yes

2.  time_zone JSON Object Reference

FieldTypeDescriptionCan be empty?
namestring

The IANA timezone name/identifier for the location.

No
offsetnumber

The Standard time zone offset from UTC in hours.

No
offset_with_dstnumber

The time zone offset from UTC in hours, accounting for daylight saving time (DST) if found.

No
current_timestring

The current date and time with timezone offset in 'YYYY-MM-DD HH:mm:ss.SSSZ' format.

No
current_time_unixfloat

The Unix timestamp representing the date and time in seconds (e.g., 1731073466.073).

No
datestring

The current date in 'YYYY-MM-DD' format.

No
date_timestring

The current date and time in 'YYYY-MM-DD HH:mm:ss' format.

No
date_time_txtstring

The current date and time in descriptive format for easy reading, formatted as 'EEEE, MMMM dd, yyyy HH:mm:ss'. (e.g., "Friday, November 08, 2024 08:44:26")

No
date_time_wtistring

The date and time with time zone information in 'EEE, dd MMM yyyy HH:mm:ss Z' format. (e.g., "Fri, 08 Nov 2024 08:44:26 -0500")

No
date_time_ymdstring

The date and time with timezone offset in ISO 8601 format 'YYYY-MM-DDTHH:mm:ss±HHMM'. (e.g., "2024-11-08T08:44:26-0500")

No
time_24string

The current time in 24-hour format 'HH:mm:ss'.

No
time_12string

The current time in 12-hour format with AM/PM notation, formatted as 'HH:mm:ss AM/PM'.

No
weeknumber

The week number of the year (1-52).

No
monthnumber

The current month as a number (1-12).

No
yearnumber

The four-digit current year (e.g., 2024).

No
year_abbrstring

The two-digit abbreviation for the year (e.g., "24").

No
current_tz_abbreviationstring

Abbreviation of the time zone currently in effect for the location (standard or DST). e.g., EST, EDT, CEST.

No
current_tz_full_namestring

Full name of the time zone currently in effect for the location. e.g., Eastern Standard Time, Eastern Daylight Time, Central European Summer Time.

No
standard_tz_abbreviationstring

Abbreviation of the location’s standard (non-DST) time zone. e.g., EST, CET.

No
standard_tz_full_namestring

Full name of the location’s standard (non-DST) time zone. e.g., Eastern Standard Time, Central European Standard Time.

No
is_dstboolean

Is the time zone in daylight savings?

No
dst_tz_abbreviationstring

Abbreviation of the location’s DST time zone (used when DST applies). e.g., EDT, CEST.

Yes
dst_tz_full_namestring

Full name of the location’s DST time zone (used when DST applies). e.g., Eastern Daylight Time, Central European Summer Time.

Yes
dst_savingsnumber

The amount of time added for daylight saving (in hours).

No
dst_existsboolean

Indicates whether Daylight Saving Time (DST) is observed in the region. If true, the dst_start and dst_end objects will include detailed DST transition information.

No
dst_start.utc_timestring

The date and time in UTC when DST begins.

Yes
dst_start.durationstring

The time change that occurs when DST starts.

Yes
dst_start.gapboolean

Is there is a missing hour (DST forward transition)?

Yes
dst_start.date_time_afterstring

The local date and time that immediately follows the start of DST.

Yes
dst_start.date_time_beforestring

The local date and time immediately before DST begins.

Yes
dst_start.overlapboolean

Whether there is an overlap of time due to clocks being set back when DST starts.

Yes
dst_end.utc_timestring

The date and time in UTC when DST ends.

Yes
dst_end.durationstring

The time change that occurs when DST ends.

Yes
dst_end.gapboolean

Is there is no gap (DST backward transition)?

Yes
dst_end.date_time_afterstring

The local date and time that immediately follows the ends of DST.

Yes
dst_end.date_time_beforestring

The local date and time immediately before DST ends.

Yes
dst_end.overlapboolean

Whether there is an overlap of time due to clocks being set back when DST ends.

Yes

3.  location JSON Object Reference

FieldTypeDescriptionCan be empty?
location_stringstring

The provided location parameter as location.

Yes
continent_codestring

The two-letter code of the continent (e.g., "NA").

Yes
continent_namestring

The full name of the continent (e.g., "North America").

Yes
country_code2string

The ISO 3166-1 alpha-2 two-letter country code (e.g., "US").

Yes
country_code3string

The ISO 3166-1 alpha-3 three-letter country code (e.g., "USA").

Yes
country_namestring

The common name of the country (e.g., "United States").

Yes
country_name_officialstring

The official full name of the country (e.g., "United States of America").

Yes
is_euboolean

Is the country belong to European Union?

Yes
state_provstring

Name of the state/province/region.

Yes
state_codestring

Code of the state/province/region.

Yes
districtstring

Name of the district or county.

Yes
citystring

Name of the city.

Yes
localitystring

Smaller area, part or region of a city.

Yes
zipcodestring

ZIP/Postal code of the place.

Yes
latitudestring

The geographic latitude of the location.

Yes
longitudestring

The geographic longitude of the location.

Yes

4.  airport_detail JSON Object Reference

FieldTypeDescriptionCan be empty?
typestring

Classification of the airport based on size and traffic.

Yes
namestring

The full name of the airport.

Yes
latitudestring

The latitude coordinate of the airport.

Yes
longitudestring

The longitude coordinate of the airport.

Yes
elevation_ftnumber

The elevation of the airport above sea level, measured in feet.

Yes
continent_codestring

The two-letter code of the continent.

Yes
country_codestring

The ISO 3166-1 alpha-2 code for the country where the airport is located.

Yes
state_codestring

Code of the state/province/region where the airport is located.

Yes
citystring

The city or administrative region that the airport serves.

Yes
iata_codestring

The three-letter IATA airport code (e.g., "LHR").

Yes
icao_codestring

The four-letter ICAO airport code (e.g., "EGLL").

Yes
faa_codestring

The FAA location identifier, used primarily in the United States. May be empty if not applicable.

Yes

5.  lo_code_details JSON Object Reference

FieldTypeDescriptionCan be empty?
lo_codestring

A unique identifier for the location, often used in logistics and shipping (e.g., "USNYC").

Yes
citystring

The name of the city or location associated with the lo_code.

Yes
state_codestring

The code for the state, province or region.

Yes
country_codestring

The ISO 3166-1 alpha-2 country code (e.g., "US").

Yes
country_namestring

The name of the country in an administrative context.

Yes
location_typestring

The type of the location as comma separated list of facilities (e.g., Port, Rail Terminal, Road Terminal, Airport).

Yes
latitudestring

The latitude coordinate of the location.

Yes
longitudestring

The longitude coordinate of the location.

Yes
Note

lo_code - UN/LOCODE for all the countries and their cities are available at the UNECE website.


Reference to Time Conversion API Response

FieldTypeDescriptionCan be empty?
original_timestring

The original date and time before any conversion, presented in the format 'yyyy-MM-dd HH:mm:ss' (e.g., "2024-03-11 14:47:32").

No
converted_timestring

The date and time after conversion, in the format 'yyyy-MM-dd HH:mm:ss' (e.g., "2024-03-11 02:47:32").

No
diff_hournumber

The difference in hours between the original_time and the converted_time.

No
diff_minnumber

The difference in minutes between the original_time and the converted_time.

No

Error Codes

Time Zone API and Time Conversion API returns HTTP status code 200 for a successful API request along with the response.

In case of a bad or invalid request, Time Zone API and Time Conversion API returns 4xx HTTP status code along with a descriptive message explaining the reason for the error.

Below is a detailed explanation of the specific HTTP status codes and their corresponding error conditions:

HTTP StatusDescription
400
Bad Request

It is returned for one of the following reasons:

  • If the provided IPv4, IPv6 address, or domain name is invalid.

  • If special character(s) ( ) [ ] { } | ^ ` is passed in the API URL either as parameter or its value. Specially in case of API key.

  • If the provided IATA code to the request parameter iata_code is not in the format as three letter code AAA.

  • If the provided ICAO code to the request parameter icao_code is not in the format as four letter code AAAA.

  • If the provided UN/LOCODE to the request parameter lo_code is not in format as first two characters of country code, followed by the three alphanumeric characters of the city/region.

  • If the provided values to the request parameters lat and long are not numbers, or the values fall outside the acceptable latitude and longitude ranges. The valid range for latitude is between -90 and 90, and for longitude, it is between -180 and 180.

  • If the bogon or private IP address is provided to query the Time Zone information.

  • If the provided time zone name to the query parameter tz is wrong or not registered in the IANA time zone database.

  • If one of the query parameters tz_from and tz_to is provided and other is missing, for time conversion.

  • If one of the query parameters location_from and location_to is provided and other is missing, for time conversion.

  • If one of the query parameters lat_from , long_from , lat_to , and long_to is provided and other(s) is/are missing, for time conversion.

  • If the location address provided to one of the parameters location_from and location_to is invalid, for time conversion. City or state level address must be provided.

  • If the geographic coordinates provided to one of the parameters lat_from , long_from , lat_to , and long_to is/are not numbers, or the values fall outside the acceptable latitude and longitude ranges. The valid range for latitude is between -90 and 90, and for longitude, it is between -180 and 180.

  • If the time zone names provided to one of the parameters tz_from and tz_to is/are wrong or not registered in the IANA time zone database.

  • If none of the query parameter combination is provided for time conversion. tz_from and tz_to or location_from and location_to or lat_from , long_from , lat_to , long_to combination must be provided.

401
Unauthorized

It is returned for one of the following reasons:

  • If API key (as apiKey URL parameter) is missing from the request to IP Geolocation API.

  • If an invalid (a random value) API key is provided.

  • If your account has been disabled or locked to use due to abuse or illegal activity.

  • When the request to IP Geolocation API is made using API key for a database subscription

  • When the request to IP Geolocation API is made on the 'paused' subscription.

  • If you’re making API requests after your subscription trial has been expired.

  • If your account’s active-until date has passed and you need to renew or upgrade your subscription.

404
Not Found

It is returned for one of the following reasons:

  • If the IPv4, IPv6, or domain name does not exist in our database.

  • If the IPv4, IPv6, or domain name is passed as a path variable, instead of URL parameter as ip= .

  • If the location address provided to the request parameters location is invalid. City or state level address must be provided.

  • If the provided UN/LOCODE, IATA code or ICAO code to the query parameters lo_code , iata_code , or icao_code does not exists in our database.

  • If the wrong endpoint is called, that does not exists in our API.

405
Method Not Allowed
  • If wrong HTTP request method is used for calling the endpoints. Only GET method is allowed for both endpoints timezone and timezone/convert .

423
Locked
  • If the passed IP address is from a  Bogon ip ranges, or is part of a private network.

429
Too Many Requests

It is returned for one of the following reasons:

  • If the API usage limit has reached for the free subscriptions, or paid subscriptions with the status 'past due', 'deleted' or 'trial expired'.

  • If the surcharge API usage limit has reached against the subscribed plan.

499
Client Closed Request
  • If the client has set the very short request or connection timeout, leading to the server closing the request prematurely.

5XX
Server Side Error
  • If a 500 (Internal Server Error), 502 (Bad Gateway), 503 (Service Unavailable), 504 (Gateway Timeout), or 505 (HTTP Version Not Supported) status code is returned, it indicates an issue on our end. Please contact us with your request at  support@ipgeolocation.io for further assistance.


API SDKs

To facilitate the developers, we have added some SDKs for various programming languages. The detailed documentation on how to use these SDKs is available in the respective SDK's documentation page linked below.

Our SDKs are also available on Github. Feel free to help us improve them. Following are the available SDKs:


Frequently Asked Questions

You can find the time zone of any IP address by using an IP to Time Zone API. Our API instantly detects the time zone based on the IP address you provide. Simply send an API request with the IP, and you'll receive details like the time zone name, current local time, GMT offset, DST status, and the geolocation information of the IP address as well.
The IP Geolocation Time Zone API by ipgeolocation.io is one of the most accurate available. It leverages a comprehensive database of IP address locations and time zones, ensuring precision and real-time updates, including automatic adjustments for daylight saving time.
When you make a request to the Time Zone API without specifying an IP address, it automatically detects your public IP from the request header. It then identifies your approximate geolocation and returns the corresponding time zone, along with local time details.
Yes! By using our Time Zone API, you can retrieve the current local time of any IP address. The API response includes the precise local time, GMT offset, and daylight saving time details if they are in effect in the observed time zone.
Yes, ipgeolocation.io offers a free plan for its Time Zone API. The free tier includes up to 1,000 API requests per day. If you need higher limits, advanced features, or dedicated support, paid plans are available with scalable pricing.
Integration is simple! You can call the Time Zone API via HTTP GET requests. The response is provided in JSON format, making it easy to integrate with most web and mobile applications. SDKs and code examples are available in languages like Java, PHP, JS, TS, and more.
Yes, our Time Zone API automatically detects daylight saving time. The API response includes fields such as is_dst (indicating if DST is active) and dst_savings (showing how much time is added for DST), further details of dst_start and dst_end object if dst_exits is true.
Yes, the Time Zone API works with both desktop and mobile IP addresses and returns the time zone information along with the geolocation information for the queried IP address.
The ipgeolocation.io Time Zone API supports both JSON and XML formats and returns responses in JSON format by default. For getting a response in XML format, specify it as request param output=xml.
Our IP to Time Zone API is highly accurate, thanks to its daily updated IP geolocation database. The accuracy for time zone detection is typically 99%, ensuring you get reliable time zone data, including DST and UTC offset details.
IPGeolocation.io’s time zone API provides multiple ways to query time zone information including search by IP address, geo coordinates of a location, city address, time zone name specified by IANA, LOCODE, IATA code, and ICAO code.
Yes, IPGeolocation.io’s Time Zone API allows you to search for time zone information using either the IATA or ICAO airport codes. This feature is especially useful for building international travel applications that require accurate time zone data along with airport details.
Yes, the Time Zone API supports retrieving time zone information using the 5-character UN/LOCODE of any city worldwide. In addition to time zone data, the API response includes relevant details about the city associated with the provided code.
Our Time Conversion API offers multiple ways to convert time from one source to another. You can perform time conversions using time zone names, geographic coordinates (latitude and longitude), city names, UN/LOCODE, and IATA or ICAO airport codes. This flexibility makes it easy to integrate accurate time conversions into a variety of applications.
Yes, the Time Zone API returns geolocation information along with time zone details. When you query the API using an IP address or city name, a geo object is included in the response containing geolocation details. Similarly, when you query using a UN/LOCODE, the corresponding city information is provided, and for IATA or ICAO codes, the response includes the airport's geolocation details.

Subscribe Our Newsletter

Get the latest in geolocation tech, straight to your inbox.