IPGeolocation.io Timezone API

API endpoints for retrieving current date, time, and timezone information for a given input such as an IANA timezone identifier, geographic coordinates, location address, IPv4 or IPv6 address, airport codes (IATA or ICAO), or UN/LOCODE. The API can also convert timestamps between different timezones, locations, coordinates, airports, or UN/LOCODE identifiers. Responses include detailed timezone metadata such as UTC offset, daylight saving time (DST) status, formatted timestamps, and upcoming DST transition information. Depending on the lookup method used, the response may also include geolocation data, airport details, or city information.

Operations 2

GET /v3/timezone IPGeolocation.io Timezone Lookup #
GET /v3/timezone/convert IPGeolocation.io Timezone Time Conversion #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ipgeolocation-timezone-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ipgeolocation-timezone-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 'IPGeolocation.io: Abuse Contact ASN Lookup Timezone API'
  version: '3.0'
  description: "Retrieve abuse contact information associated with an IPv4 address or IPv6 address.\nThe API returns the organization responsible for handling abuse complaints related\nto the queried IP address, including the abuse contact role, organization name,\nregistered address, email contacts, and phone numbers.\n\nThe abuse contact data helps organizations report malicious activities such as\nspam, phishing, DDoS attacks, IP spoofing, and other network abuse to the\nresponsible network operator.\n\nOne endpoint is available:\n\n- **Abuse lookup** (`GET /v3/abuse`) returns abuse contact information for a\n  single IPv4 or IPv6 address per request.\n\nUse query parameters to control which fields are returned and which fields are\nexcluded from the response to reduce payload size when only specific data\nis required.\n\n## Authentication\n\nTwo authentication methods are supported:\n\n### API Key\n\nPass your API key as the `apiKey` query parameter on every request. You can find your\nkey in the [IPGeolocation dashboard](https://app.ipgeolocation.io/). Store it in\nserver-side environment variables. Avoid exposing it in client-side JavaScript.\n\n### Request Origin (CORS)\n\nAvailable on paid plans only. Whitelist your domain in the dashboard under the\n\"API Keys\" section. Once configured, requests from that domain (and all its subdomains)\nare accepted without passing `apiKey`. Enter your root domain (e.g. `example.com`),\nnot the full URL.\n\nEach plan has a limit on the number of extra API keys and request origins:\n\n| Plan | Extra API Keys + Request Origins |\n|---|---|\n| Starter (150K requests) | 1 |\n| Core (250K requests) | 1 |\n| Plus (500K requests) | 2 |\n| Pro (1M requests) | 2 |\n| Business (2M requests) | 3 |\n| Premium (5M requests) | 3 |\n\nAdditional keys or origins can be added for $2.50 per month each.\n\n## Response Formats\n\nThe API supports JSON (default) and XML output.\n\n- Set the `output` query parameter to `json` or `xml`.\n- Alternatively, set the `Accept` header to `application/json`, `application/xml`,\n  or `text/xml`.\n\nIf neither is specified, the response is returned as JSON. XML responses use a\n`LinkedHashMap` root element.\n\n## Credit Usage\n\nCredits are charged only for successful **HTTP 200** responses. The exact number of\ncredits consumed by a request is returned in the `X-Credits-Charged` response header.\n\nA **single IP abuse contact lookup** (`GET /v3/abuse`) consumes **1 credit** per request.\n\n\n## Field Filtering\n\nUse `fields` to cherry-pick specific fields, or `excludes` to drop fields you do not\nneed. Both accept dot-notation for nested fields (e.g. `abuse.route`,\n`abuse.organization`). The `ip` field is always present regardless of filters.\n\n## Parameter Name Casing\n\nQuery parameter names are case-sensitive. Use exact names such as\n`apiKey`, `ip`, `fields`, `excludes`, and `output`.\n\n## Plan Availability and Usage Limits\n\nThe IP Abuse Contact API is available **only on paid plans**.\n\nPaid subscriptions do not have fixed daily, hourly, or monthly rate limits.  \nIf the monthly quota is exceeded, requests continue and a surcharge may be applied according to the subscribed plan.\n\nFree plans cannot access the IP Abuse Contact API. Requests made with a free plan API key return **HTTP 401 Unauthorized**.\n"
  contact:
    name: IPGeolocation Support
    url: https://ipgeolocation.io/contact.html
    email: support@ipgeolocation.io
  termsOfService: https://ipgeolocation.io/tos.html
  license:
    name: Proprietary
    url: https://ipgeolocation.io/tos.html
servers:
- url: https://api.ipgeolocation.io
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Timezone
  description: 'API endpoints for retrieving current date, time, and timezone

    information for a given input such as an IANA timezone identifier,

    geographic coordinates, location address, IPv4 or IPv6 address,

    airport codes (IATA or ICAO), or UN/LOCODE.


    The API can also convert timestamps between different timezones,

    locations, coordinates, airports, or UN/LOCODE identifiers.


    Responses include detailed timezone metadata such as UTC offset,

    daylight saving time (DST) status, formatted timestamps, and

    upcoming DST transition information. Depending on the lookup

    method used, the response may also include geolocation data,

    airport details, or city information.

    '
  externalDocs:
    description: IPGeolocation Date, Time & Timezone API documentation
    url: https://ipgeolocation.io/documentation/timezone-api.html
paths:
  /v3/timezone:
    get:
      operationId: lookupTimezone
      summary: IPGeolocation.io Timezone Lookup
      description: 'Returns current date, time, and timezone information for a

        specific location or identifier.


        The timezone can be resolved using one of several inputs,

        including an IANA timezone name (`tz`), geographic coordinates

        (`lat` and `long`), location address (`location`), IPv4 or IPv6

        address (`ip`), airport codes (`iata_code` or `icao_code`), or

        a UN/LOCODE (`lo_code`).


        Depending on the lookup method used, additional contextual

        information may also be returned in the response:


        - `location` object for IP address or location queries

        - `airport_details` object for IATA or ICAO code queries

        - `lo_code_details` object for UN/LOCODE queries


        If multiple lookup parameters are provided in the same request,

        the API resolves the timezone using the following priority order:


        1. `tz`

        2. `lat` and `long`

        3. `location`

        4. `ip`

        5. `iata_code`

        6. `icao_code`

        7. `lo_code`


        If none of the lookup parameters are provided, the API resolves

        the timezone using the public IP address of the requesting client.


        Each successful lookup consumes **1 credit**.

        '
      tags:
      - Timezone
      parameters:
      - $ref: '#/components/parameters/Tz'
      - $ref: '#/components/parameters/Location'
      - $ref: '#/components/parameters/Lat'
      - $ref: '#/components/parameters/Long'
      - $ref: '#/components/parameters/Ip'
      - $ref: '#/components/parameters/IataCode'
      - $ref: '#/components/parameters/IcaoCode'
      - $ref: '#/components/parameters/LoCode'
      - $ref: '#/components/parameters/Lang'
      - $ref: '#/components/parameters/Output'
      responses:
        '200':
          description: Successful response
          headers:
            X-Credits-Charged:
              description: Number of API credits consumed by this request.
              schema:
                type: number
                example: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimezoneLookupResponse'
              example:
                ip: 49.12.0.0
                location:
                  continent_code: EU
                  continent_name: Europe
                  country_code2: DE
                  country_code3: DEU
                  country_name: Germany
                  country_name_official: Federal Republic of Germany
                  is_eu: true
                  state_prov: Bavaria
                  state_code: DE-BY
                  district: Cham
                  city: Falkenstein
                  zipcode: '93167'
                  latitude: '49.09745'
                  longitude: '12.48637'
                time_zone:
                  name: Europe/Berlin
                  offset: 1
                  offset_with_dst: 1
                  date: '2026-03-07'
                  date_time: '2026-03-07 10:37:39'
                  date_time_txt: Saturday, March 07, 2026 10:37:39
                  date_time_wti: Sat, 07 Mar 2026 10:37:39 +0100
                  date_time_ymd: 2026-03-07T10:37:39+0100
                  current_time: 2026-03-07 10:37:39.744+0100
                  current_time_unix: 1772876259.744
                  time_24: '10:37:39'
                  time_12: 10:37:39 AM
                  week: 10
                  month: 3
                  year: 2026
                  year_abbr: '26'
                  current_tz_abbreviation: CET
                  current_tz_full_name: Central European Standard Time
                  standard_tz_abbreviation: CET
                  standard_tz_full_name: Central European Standard Time
                  is_dst: false
                  dst_savings: 0
                  dst_exists: true
                  dst_tz_abbreviation: CEST
                  dst_tz_full_name: Central European Summer Time
                  dst_start:
                    utc_time: 2026-03-29 TIME 01:00
                    duration: +1.00H
                    gap: true
                    date_time_after: 2026-03-29 TIME 03:00
                    date_time_before: 2026-03-29 TIME 02:00
                    overlap: false
                  dst_end:
                    utc_time: 2026-10-25 TIME 01:00
                    duration: -1.00H
                    gap: false
                    date_time_after: 2026-10-25 TIME 02:00
                    date_time_before: 2026-10-25 TIME 03:00
                    overlap: true
            application/xml:
              schema:
                $ref: '#/components/schemas/TimezoneLookupResponse'
              example: "<LinkedHashMap>\n  <ip>49.12.0.0</ip>\n  <location>\n      <continent_code>EU</continent_code>\n      <continent_name>Europe</continent_name>\n      <country_code2>DE</country_code2>\n      <country_code3>DEU</country_code3>\n      <country_name>Germany</country_name>\n      <country_name_official>Federal Republic of Germany</country_name_official>\n      <is_eu>true</is_eu>\n      <state_prov>Bavaria</state_prov>\n      <state_code>DE-BY</state_code>\n      <district>Cham</district>\n      <city>Falkenstein</city>\n      <zipcode>93167</zipcode>\n      <latitude>49.09745</latitude>\n      <longitude>12.48637</longitude>\n  </location>\n  <time_zone>\n      <name>Europe/Berlin</name>\n      <offset>1</offset>\n      <offset_with_dst>1</offset_with_dst>\n      <date>2026-03-16</date>\n      <date_time>2026-03-16 21:01:46</date_time>\n      <date_time_txt>Monday, March 16, 2026 21:01:46</date_time_txt>\n      <date_time_wti>Mon, 16 Mar 2026 21:01:46 +0100</date_time_wti>\n      <date_time_ymd>2026-03-16T21:01:46+0100</date_time_ymd>\n      <current_time>2026-03-16 21:01:46.907+0100</current_time>\n      <current_time_unix>1773691306.907</current_time_unix>\n      <time_24>21:01:46</time_24>\n      <time_12>09:01:46 PM</time_12>\n      <week>12</week>\n      <month>3</month>\n      <year>2026</year>\n      <year_abbr>26</year_abbr>\n      <current_tz_abbreviation>CET</current_tz_abbreviation>\n      <current_tz_full_name>Central European Standard Time</current_tz_full_name>\n      <standard_tz_abbreviation>CET</standard_tz_abbreviation>\n      <standard_tz_full_name>Central European Standard Time</standard_tz_full_name>\n      <is_dst>false</is_dst>\n      <dst_savings>0</dst_savings>\n      <dst_exists>true</dst_exists>\n      <dst_tz_abbreviation>CEST</dst_tz_abbreviation>\n      <dst_tz_full_name>Central European Summer Time</dst_tz_full_name>\n      <dst_start>\n          <utc_time>2026-03-29 TIME 01:00</utc_time>\n          <duration>+1.00H</duration>\n          <gap>true</gap>\n          <date_time_after>2026-03-29 TIME 03:00</date_time_after>\n          <date_time_before>2026-03-29 TIME 02:00</date_time_before>\n          <overlap>false</overlap>\n      </dst_start>\n      <dst_end>\n          <utc_time>2026-10-25 TIME 01:00</utc_time>\n          <duration>-1.00H</duration>\n          <gap>false</gap>\n          <date_time_after>2026-10-25 TIME 02:00</date_time_after>\n          <date_time_before>2026-10-25 TIME 03:00</date_time_before>\n          <overlap>true</overlap>\n      </dst_end>\n  </time_zone>\n</LinkedHashMap>\n"
        '400':
          description: "Bad Request – Possible reasons include:\n  - If the provided IPv4 or IPv6 address is invalid.\n\n  - If special character(s) ( ) [ ] { } | ^ ` is passed in the API URL either as parameter or its value. Specially in case of API key.\n  \n  - If the provided IATA code to the request parameter `iata_code` is not in the format as three letter code AAA.\n  \n  - If the provided ICAO code to the request parameter `icao_code` is not in the format as four letter code AAAA.\n\n  - 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.\n  \n  - 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.\n                \n  - If the provided time zone name to the query parameter `tz` is wrong or not registered in the IANA time zone database.\n\n  - An invalid or unsupported `lang` parameter is provided.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalidIp:
                  summary: Invalid IPv4 or IPv6 address
                  value:
                    message: Provided name, service or IP address '999.999.999.999' is not valid.
                specialCharacters:
                  summary: Invalid characters in request
                  value:
                    message: Invalid character found in the request target.
                invalidIata:
                  summary: Invalid IATA code format
                  value:
                    message: 'Invalid IATA code: LH. IATA code must be in the format of AAA.'
                invalidIcao:
                  summary: Invalid ICAO code format
                  value:
                    message: 'Invalid ICAO code: ATL. ICAO code must be in the format of AAAA.'
                invalidLocode:
                  summary: Invalid UN/LOCODE format
                  value:
                    message: 'Invalid LOCode: DER. LOCode must start with the first two characters as alphabets followed by three alphanumeric characters.'
                invalidCoordinates:
                  summary: Coordinates out of range
                  value:
                    message: '''latitude'' (40.7128) or ''longitude'' (-700.0060) is not valid. ''latitude'' must be between -90.0 and +90.0 and ''longitude'' must be between -180.0 and +180.0.'
                invalidTimezone:
                  summary: Invalid timezone identifier
                  value:
                    message: Check whether your input values are correct; time_zone_name = Europe/InvalidCity
                invalidLang:
                  summary: Unsupported language parameter
                  value:
                    message: This 'xx' lang is not valid. Please use 'en' as the default language
        '401':
          description: "Unauthorized – Possible reasons include:\n  - Missing or invalid API key\n  - If your account has been disabled or locked to use by the admin due to abuse or illegal activity.\n  - When the request to Timezone API is made using API key for a database subscription\n  - When the request to Timezone API is made on the 'paused' subscription.\n  - If you’re making API requests after your subscription trial has been expired.\n  - If your active until date has passed and you need to upgrade your account.\n  - A language other than English is specified in the `lang` parameter\n    while using a Free/Developer plan API key.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                missingApiKey:
                  summary: Missing API key
                  value:
                    message: Please provide an API key (as 'apiKey=YOUR_API_KEY' URL parameter) to use IPGeolocation API. To get your free API Key, sign up at https://app.ipgeolocation.io/login
                invalidApiKey:
                  summary: Invalid API key
                  value:
                    message: Provided API key is not valid. Contact technical support for assistance at support@ipgeolocation.io
                lockedAccount:
                  summary: Account locked
                  value:
                    message: Your account has been locked to use IPGeolocation API. Contact technical support for assistance at support@ipgeolocation.io
                databaseSubscription:
                  summary: Database subscription key used
                  value:
                    message: You cannot query IPGeolocation API on a database plan subscription.
                pausedSubscription:
                  summary: Subscription paused
                  value:
                    message: Your subscription has been paused. Please resume your subscription to use IPGeolocation API.
                expiredSubscription:
                  summary: Subscription expired
                  value:
                    message: Your subscription has expired at DATE. Please subscribe to a paid plan to continue using IPGeolocation API without interruption or contact technical support for assistance at support@ipgeolocation.io
                freePlanLang:
                  summary: Non-English language requested on Free plan
                  value:
                    message: This 'de' lang is not supported for your current subscription. Please use 'en' as the default language or upgrade your subscription to use this feature.
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '423':
          $ref: '#/components/responses/Locked'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '499':
          $ref: '#/components/responses/ClientClosedRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
        '505':
          $ref: '#/components/responses/HttpVersionNotSupported'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /v3/timezone/convert:
    get:
      operationId: convertTimezone
      summary: IPGeolocation.io Timezone Time Conversion
      description: 'Converts a given time between two timezones, locations,

        coordinates, airports, or UN/LOCODE identifiers.


        The conversion can be performed using one of the following

        parameter combinations:


        - `tz_from` and `tz_to`

        - `location_from` and `location_to`

        - `lat_from`, `long_from`, `lat_to`, `long_to`

        - `iata_from` and `iata_to`

        - `icao_from` and `icao_to`

        - `locode_from` and `locode_to`


        The optional `time` parameter specifies the time to convert.


        Supported formats:


        - `yyyy-MM-dd HH:mm`

        - `yyyy-MM-dd HH:mm:ss`


        If the `time` parameter is omitted, the current time is used

        for conversion.


        Each successful conversion request consumes **1 credit**.

        '
      tags:
      - Timezone
      parameters:
      - $ref: '#/components/parameters/TzFrom'
      - $ref: '#/components/parameters/TzTo'
      - $ref: '#/components/parameters/LocationFrom'
      - $ref: '#/components/parameters/LocationTo'
      - $ref: '#/components/parameters/LatFrom'
      - $ref: '#/components/parameters/LatTo'
      - $ref: '#/components/parameters/LongFrom'
      - $ref: '#/components/parameters/LongTo'
      - $ref: '#/components/parameters/IataFrom'
      - $ref: '#/components/parameters/IataTo'
      - $ref: '#/components/parameters/IcaoFrom'
      - $ref: '#/components/parameters/IcaoTo'
      - $ref: '#/components/parameters/LocodeFrom'
      - $ref: '#/components/parameters/LocodeTo'
      - $ref: '#/components/parameters/Time'
      - $ref: '#/components/parameters/Output'
      responses:
        '200':
          description: Successful response
          headers:
            X-Credits-Charged:
              description: Number of API credits consumed by this request.
              schema:
                type: number
                example: 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeConversionResponse'
              example:
                original_time: '2026-03-16 21:42:10'
                converted_time: '2026-03-16 22:42:10'
                diff_hour: 1
                diff_min: 60
            application/xml:
              schema:
                $ref: '#/components/schemas/TimeConversionResponse'
              example: "<LinkedHashMap>\n  <original_time>2026-03-16 21:43:44</original_time>\n  <converted_time>2026-03-16 22:43:44</converted_time>\n  <diff_hour>1</diff_hour>\n  <diff_min>60</diff_min>\n</LinkedHashMap>\n"
        '400':
          description: "Bad Request – Possible reasons include:\n  - If one of the query parameters `tz_from` and `tz_to` is provided and the other is missing, for time conversion.\n\n  - If one of the query parameters `location_from` and `location_to` is provided and the other is missing, for time conversion.\n  \n  - 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.\n                \n  - 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.\n  \n  - 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.\n  \n  - 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.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                tzPairMissing:
                  summary: Missing tz_to parameter
                  value:
                    message: To convert time by time zone names , both the tz_from and tz_to parameter must be provided. For more detail, you can read about it in the documentation at ipgeolocation.io or contact us at support@ipgeolocation.io.
                locationPairMissing:
                  summary: Missing location_to parameter
                  value:
                    message: To convert time by Location , both the location_from and location_to parameter must be provided. For more detail, you can read about it in the documentation at ipgeolocation.io or contact us at support@ipgeolocation.io.
                coordinatePairMissing:
                  summary: Missing coordinate parameters
                  value:
                    message: To convert time by coordinates , both the lat_from and long_from parameter must be provided. For more detail, you can read about it in the documentation at ipgeolocation.io or contact us at support@ipgeolocation.io.
                invalidCoordinates:
                  summary: Coordinates out of range
                  value:
                    message: Provided  lat_to (450) or long_to (45) is not valid. Latitude must be between -90.0 and +90.0 and longitude must be between -180.0 and +180.0.
                invalidTimezone:
                  summary: Invalid timezone identifier
                  value:
                    message: Check whether your input values are correct; time_zone_name = Europe/InvalidCity
                noConversionParams:
                  summary: Missing conversion parameters
                  value:
                    message: Parameters' combination is not complete. 'tz_from' and 'tz_to' or 'location_from' and 'location_to' or 'lat_from' and 'long_from' and 'lat_to' and 'long_to' or 'locode_from' and 'locode_to' or 'iata_from' and 'iata_to' or 'icao_from' and 'icao_to' combinations must be provided.
        '401':
          description: "Unauthorized – Possible reasons include:\n  - Missing or invalid API key\n  - If your account has been disabled or locked to use by the admin due to abuse or illegal activity.\n  - When the request to Timezone API is made using API key for a database subscription\n  - When the request to Timezone API is made on the 'paused' subscription.\n  - If you’re making API requests after your subscription trial has been expired.\n  - If your active until date has passed and you need to upgrade your account.\n"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                missingApiKey:
                  summary: Missing API key
                  value:
                    message: Please provide an API key (as 'apiKey=YOUR_API_KEY' URL parameter) to use IPGeolocation API. To get your free API Key, sign up at https://app.ipgeolocation.io/login
                invalidApiKey:
                  summary: Invalid API key
                  value:
                    message: Provided API key is not valid. Contact technical support for assistance at support@ipgeolocation.io
                lockedAccount:
                  summary: Account locked
                  value:
                    message: Your account has been locked to use IPGeolocation API. Contact technical support for assistance at support@ipgeolocation.io
                pausedSubscription:
                  summary: Subscription paused
                  value:
                    message: Your subscription has been paused. Please resume your subscription to use IPGeolocation API.
                expiredSubscription:
                  summary: Subscription expired
                  value:
                    message: Your subscription has expired at DATE. Please subscribe to a paid plan to continue using IPGeolocation API without interruption or contact technical support for assistance at support@ipgeolocation.io
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '423':
          $ref: '#/components/responses/Locked'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '499':
          $ref: '#/components/responses/ClientClosedRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
        '505':
          $ref: '#/components/responses/HttpVersionNotSupported'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Timezone:
      type: object
      description: 'Detailed timezone information for the requested location or identifier.


        Contains timezone metadata such as UTC offset, daylight saving time (DST)

        status, formatted timestamps, and DST transition information.

        '
      properties:
        name:
          type: string
          description: IANA timezone identifier for the location.
          example: America/Los_Angeles
        offset:
          format: float
          description: Standard timezone offset from UTC in hours.
          example: -8
        offset_with_dst:
          format: float
          description: Timezone offset from UTC including daylight saving time.
          example: -7
        date:
          type: string
          description: Current date in `YYYY-MM-DD` format.
          example: '2025-04-24'
        date_time:
          type: string
          description: Current date and time in `YYYY-MM-DD HH:mm:ss` format.
          example: '2025-04-24 11:30:12'
        date_time_txt:
          type: string
          description: Human-readable date and time string.
          example: Thursday, April 24, 2025 11:30:12
        date_time_wti:
          type: string
          description: Date and time with timezone information.
          example: Thu, 24 Apr 2025 11:30:12 -0700
        date_time_ymd:
          type: string
          description: ISO-8601 formatted date and time with timezone offset.
          example: 2025-04-24T11:30:12-0700
        current_time_unix:
          type: number
          format: float
          description: Unix timestamp representing the current date and time.
          example: 1745519412.353
        time_24:
          type: string
          description: Current local time in 24-hour format.
          example: '11:30:12'
        time_12:
          type: string
          description: Current local time in 12-hour format.
          example: 11:30:12 AM
        week:
          type: number
          description: Week number of the current year.
          example: 17
        month:
          type: number
          description: Current month number.
          example: 4
        year:
          type: number
          description: Four-digit year.
          example: 2025
        year_abbr:
          type: string
          description: Two-digit abbreviated year.
          example: '25'
        current_tz_abbreviation:
          type: string
          description: Abbreviation of the timezone currently in effect.
          example: AEST
        current_tz_full_name:
          type: string
          description: Full name of the timezone currently in effect.
          example: Australian Eastern Standard Time
        standard_tz_abbreviation:
          type: string
          description: Standard (non-DST) timezone abbreviation.
          example: AEST
        standard_tz_full_name:
          type: string
          description: Full name of the standard timezone.
          example: Australian Eastern Standard Time
        is_dst:
          type: boolean
          description: Indicates whether daylight saving time is currently active.
          example: false
        dst_savings:
          type: number
          format: float
          description: Number of hours added during daylight saving time.
          example: 37.42
        dst_exists:
          type: boolean
          description: Indicates whether the region observes daylight saving time.
          example: false
        dst_tz_abbreviation:
          type: string
          description: Abbreviation used during daylight saving time.
          example: PDT
        dst_tz_full_name:
          type: string
          description: Full name used during daylight saving time.
          example: Pacific Daylight Time
        dst_start:
          $ref: '#/components/schemas/DSTTransition'
        dst_end:
          $ref: '#/components/schemas/DSTTransition'
    LocodeDetails:
      type: object
      description: 'City or logistics location information returned when the timezone

        lookup is performed using a UN/LOCODE.


        UN/LOCODE is a five-character identifier consisting of a two-letter

        country code followed by a three-character location identifier.

        '
      properties:
        lo_code:
          type: string
          description: UN/LOCODE representing the city or logistics location.
          example: DEBER
        city:
          type: string
          description: Name of the city associated with the UN/LOCODE.
          example: Berlin
        state_code:
          type: string
          description: State or region code of the location.
          example: BE
        country_code:
          type: string
          description: ISO 3166-1 alpha-2 country code.
          example: DE
        country_name:
          type: string
          description: Name of the country where the location exists.
          example: Germany
        location_type:
          type: string
          description: 'Type of facilities available at the location such as port,


# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ipgeolocation/refs/heads/main/openapi/ipgeolocation-timezone-api-openapi.yml