openapi: 3.0.1
info:
title: World Time Geo Ip API
version: '2025-10-01'
description: API to get the current local time details for a given timezone or IP address
servers:
- url: https://public.timeapi.world/api/
tags:
- name: Ip
paths:
/ip:
get:
summary: 'request the current time based on the ip of the request. note: this is a "best guess" obtained from open-source data.'
responses:
'200':
description: the current time for the timezone determined from client IP in JSON format
content:
application/json:
schema:
$ref: '#/components/schemas/DateTimeJsonResponse'
example:
abbreviation: BST
datetime: '2025-09-12T14:28:04.754+01:00'
day_of_week: 5
day_of_year: 255
dst: true
dst_from: '2025-03-30T01:00:00+00:00'
dst_offset: 3600
dst_until: '2025-10-26T01:00:00+00:00'
raw_offset: 0
timezone: Europe/London
unixtime: 1757683684
utc_datetime: '2025-09-12T13:28:04.754+00:00'
utc_offset: +01:00
week_number: 37
client_ip: 127.0.0.1
default:
$ref: '#/components/responses/ErrorJsonResponse'
tags:
- Ip
/ip/{ip}:
get:
summary: 'request the current time based on a specific IPv4 or IPv6 address. note: this is a "best guess" obtained from open-source data.'
parameters:
- name: ip
in: path
required: true
description: IPv4 or IPv6 address
schema:
type: string
examples:
ipv4:
value: 1.1.1.1
summary: IPv4 address
ipv6:
value: 2606:4700:4700::1111
summary: IPv6 address (Cloudflare DNS)
responses:
'200':
description: the current time for the timezone determined from the specified IP in JSON format
content:
application/json:
schema:
$ref: '#/components/schemas/DateTimeJsonResponse'
example:
abbreviation: AEST
datetime: '2025-09-12T22:24:30.887+10:00'
day_of_week: 5
day_of_year: 255
dst: false
dst_from: null
dst_offset: 0
dst_until: null
raw_offset: 36000
timezone: Australia/Sydney
unixtime: 1757679870
utc_datetime: '2025-09-12T12:24:30.887+00:00'
utc_offset: '+10:00'
week_number: 37
client_ip: 127.0.0.1
default:
$ref: '#/components/responses/ErrorJsonResponse'
tags:
- Ip
/ip/{ip}.txt:
get:
summary: 'request the current time based on a specific IPv4 or IPv6 address. note: this is a "best guess" obtained from open-source data.'
parameters:
- name: ip
in: path
required: true
description: IPv4 or IPv6 address
schema:
type: string
examples:
ipv4:
value: 1.1.1.1
summary: IPv4 address
ipv6:
value: 2606:4700:4700::1111
summary: IPv6 address (Cloudflare DNS)
responses:
'200':
description: the current time for the timezone determined from the specified IP in plain text
content:
text/plain:
schema:
$ref: '#/components/schemas/DateTimeTextResponse'
example: 'abbreviation: AEST
datetime: 2025-09-12T22:24:30.887+10:00
day_of_week: 5
day_of_year: 255
dst: false
dst_from:
dst_offset: 0
dst_until:
raw_offset: 36000
timezone: Australia/Sydney
unixtime: 1757679870
utc_datetime: 2025-09-12T12:24:30.887+00:00
utc_offset: +10:00
week_number: 37
client_ip: 127.0.0.1
'
default:
$ref: '#/components/responses/ErrorTextResponse'
tags:
- Ip
components:
schemas:
ErrorTextResponse:
type: string
description: details about the error encountered in plain text
DateTimeJsonResponse:
required:
- abbreviation
- client_ip
- datetime
- day_of_week
- day_of_year
- dst
- dst_offset
- timezone
- unixtime
- utc_datetime
- utc_offset
- week_number
properties:
abbreviation:
type: string
description: the abbreviated name of the timezone
client_ip:
type: string
description: the IP of the client making the request
datetime:
type: string
description: an ISO8601-valid string representing the current, local date/time
day_of_week:
type: integer
description: current day number of the week, where sunday is 0
day_of_year:
type: integer
description: ordinal date of the current year
dst:
type: boolean
description: flag indicating whether the local time is in daylight savings
dst_from:
type: string
nullable: true
description: 'an ISO8601-valid string representing the datetime of a DST transition. When DST is active (dst=true): shows when the current DST period started. When DST is NOT active (dst=false): shows when the next DST period will begin (future date). Returns null if the timezone does not observe DST.'
dst_offset:
type: integer
description: the difference in seconds between the current local time and daylight saving time for the location
dst_until:
type: string
nullable: true
description: 'an ISO8601-valid string representing the datetime of a DST transition. When DST is active (dst=true): shows when the current DST period will end (future date). When DST is NOT active (dst=false): shows when the last DST period ended (past date). Returns null if the timezone does not observe DST.'
raw_offset:
type: integer
description: the difference in seconds between the current local time and the time in UTC, excluding any daylight saving difference (see dst_offset)
timezone:
type: string
description: timezone in `Area/Location` or `Area/Location/Region` format
unixtime:
type: integer
description: number of seconds since the Epoch
utc_datetime:
type: string
description: an ISO8601-valid string representing the current date/time in UTC
utc_offset:
type: string
description: an ISO8601-valid string representing the offset from UTC
week_number:
type: integer
description: the current week number
ErrorJsonResponse:
required:
- error
properties:
error:
type: string
description: details about the error encountered
DateTimeTextResponse:
type: string
description: 'time zone details, as per the DateTimeJsonResponse response, in the format `key: value`, one item per line'
responses:
ErrorTextResponse:
description: an error response in plain text
content:
text/plain:
schema:
$ref: '#/components/schemas/ErrorTextResponse'
ErrorJsonResponse:
description: an error response in JSON format
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorJsonResponse'