Quickstart
From zero to your first API response in about two minutes. By the end of this page you will have a token, a working request, and the local time in Tokyo.
1. Get a token
- Create a free account and verify your email address.
- Open API tokens in your settings and create a token.
- Copy it now — it is shown once.
That token is the only credential you need; it can read every v1 endpoint. The Authentication page covers the details.
2. Make your first request
Ask the API what time it is in Tokyo right now:
curl https://api.timezone.io/v1/timezones/Asia/Tokyo \
-H "Authorization: Bearer YOUR_API_TOKEN"
3. Read the response
{
"data": {
"iana": "Asia/Tokyo",
"display_name": "Tokyo",
"observes_dst": false,
"country": { "code": "JP", "name": "Japan" },
"current": {
"datetime": "2026-06-12T18:00:00+09:00",
"utc_datetime": "2026-06-12T09:00:00Z",
"utc_offset": "+09:00",
"utc_offset_seconds": 32400,
"abbreviation": "JST",
"name": "Japan Standard Time",
"is_dst": false
},
"standard": {
"utc_offset": "+09:00",
"utc_offset_seconds": 32400,
"abbreviation": "JST",
"name": "Japan Standard Time"
},
"dst": { "savings_seconds": 0, "next_transition": null },
"links": {
"self": "https://api.timezone.io/v1/timezones/Asia/Tokyo",
"country": "https://api.timezone.io/v1/countries/JP",
"web": "https://timezone.io/iana/Asia/Tokyo"
}
},
"meta": {
"tzdb_version": "2025.2",
"generated_at": "2026-06-12T09:00:00+00:00"
}
}
Three things to notice:
- Everything lives under
data— every endpoint wraps its payload the same way, with request metadata inmeta. currentis computed live for the moment of your request: the localdatetime(offset included), the equivalent UTC instant, and the zone's friendly name.linksare URLs you can follow — related API resources plusweb, the human-readable page on timezone.io.
In your language
The same request in JavaScript and Python — it is plain HTTPS + JSON, so any HTTP client works:
const response = await fetch('https://api.timezone.io/v1/timezones/Asia/Tokyo', {
headers: { Authorization: `Bearer ${process.env.TIMEZONE_API_TOKEN}` },
});
const { data } = await response.json();
console.log(`It is ${data.current.datetime} in ${data.display_name}`);
import os
import requests
response = requests.get(
"https://api.timezone.io/v1/timezones/Asia/Tokyo",
headers={"Authorization": f"Bearer {os.environ['TIMEZONE_API_TOKEN']}"},
)
data = response.json()["data"]
print(f"It is {data['current']['datetime']} in {data['display_name']}")
Keep the token in an environment variable rather than in code — it is a password.
Where to go next
- Convert a meeting time across offices — Convert.
- List a country's zones for a picker — Timezones.
- Decode "EST" from a calendar invite — Abbreviations.
- Sunrise and sunset for any city — Cities.
- Skim the Overview for the response envelope and conventions, and Rate limits before you ship anything that loops.