Abbreviations
Abbreviations are the friendly, named layer over IANA time zones — "Eastern Standard Time" (EST), "Central European Time" (CET), and so on. Each entry represents one specific time standard; the standard and daylight variants (EST / EDT) are separate, linked entries.
Unlike a time zone, an abbreviation's offset is fixed by definition — EST is always
-05:00, EDT always -04:00 — so these endpoints take no at parameter.
At a glance
| Endpoint | What you get |
|---|---|
GET /v1/abbreviations |
Paginated list of named standards: code, name, defining offset. |
GET /v1/abbreviations/{code|slug} |
One standard with its DST counterpart and member zone/country counts. |
List abbreviations
GET /v1/abbreviations
Returns a paginated list. Each row is lean: code, name, slug, the defining offset, and whether the standard takes part in DST.
Example — build an abbreviation glossary
A documentation site wants a cheat sheet of every named standard used in the Americas, A → Z:
curl "https://api.timezone.io/v1/abbreviations?continent=Americas&sort=code" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"data": [
{
"code": "ADT",
"name": "Atlantic Daylight Time",
"slug": "atlantic-daylight-time",
"current": { "utc_offset": "-03:00", "is_dst": true },
"observes_dst": true,
"links": {
"self": "https://api.timezone.io/v1/abbreviations/atlantic-daylight-time"
}
},
{
"code": "AKDT",
"name": "Alaska Daylight Time",
"slug": "alaska-daylight-time",
"current": { "utc_offset": "-08:00", "is_dst": true },
"observes_dst": true,
"links": {
"self": "https://api.timezone.io/v1/abbreviations/alaska-daylight-time"
}
}
],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 52,
"tzdb_version": "2025.2",
"generated_at": "2026-06-12T09:00:00+00:00"
},
"links": {
"first": "https://api.timezone.io/v1/abbreviations?continent=Americas&sort=code&page=1",
"last": "https://api.timezone.io/v1/abbreviations?continent=Americas&sort=code&page=3",
"prev": null,
"next": "https://api.timezone.io/v1/abbreviations?continent=Americas&sort=code&page=2"
}
}
(Remaining rows trimmed.)
Query parameters
| Parameter | Type | Description |
|---|---|---|
q |
string | Search across code, name, and slug. Max 100 characters. |
offset |
string | Filter by the standard's UTC offset, within ±14:00. Accepts +01:00 or bare minutes like 60. |
observes_dst |
boolean | true/false (also 1/0). Keep only standards that do or don't take part in DST. |
continent |
string | Keep standards used in a given ISO region (Europe, Americas, Asia, Africa, Oceania). Case-insensitive. |
sort |
string | code, name, or offset. Prefix with - for descending. Default name. |
detail |
string | concise (default) or full. full returns the detail shape per row. |
per_page |
integer | Results per page, 1–100. Default 25. |
page |
integer | Page number, 1 or greater. Default 1. |
Going deeper
- Searching for a positive offset? Percent-encode the
+in the query string —?offset=%2B01:00— or pass bare minutes (?offset=60), which needs no encoding. current.is_dsthere means "this entry is the daylight variant" (ADT, CEST), not "DST is active right now" — an abbreviation is a fixed standard, not a place.
Retrieve an abbreviation
GET /v1/abbreviations/{code|slug}
Fetch a single standard by its unique slug (eastern-standard-time) or its code
(EST, case-insensitive).
Example — decode "the call is at 15:00 EST"
A calendar invite names an abbreviation instead of a place. Resolve it to an offset you can compute with:
curl https://api.timezone.io/v1/abbreviations/EST \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"data": {
"code": "EST",
"name": "Eastern Standard Time",
"slug": "eastern-standard-time",
"current": { "utc_offset": "-05:00", "is_dst": false },
"observes_dst": true,
"continent": "Americas",
"counts": { "timezones": 20, "countries": 9 },
"counterpart": {
"code": "EDT",
"name": "Eastern Daylight Time",
"utc_offset": "-04:00"
},
"links": {
"self": "https://api.timezone.io/v1/abbreviations/eastern-standard-time",
"timezones": "https://api.timezone.io/v1/timezones?abbreviation=EST",
"web": "https://timezone.io/zones/eastern-standard-time"
}
},
"meta": {
"tzdb_version": "2025.2",
"generated_at": "2026-06-12T09:00:00+00:00"
}
}
So 15:00 EST is 20:00 UTC. One caveat worth showing your users: observes_dst: true plus
the counterpart block tells you the region behind this name switches to EDT
(-04:00) in summer — people writing "EST" in July usually mean that. If the sender
meant a place rather than a standard, /convert with a city or zone
token is the safer translation.
Query parameters
| Parameter | Type | Description |
|---|---|---|
include |
string | Comma-separated related data to embed: timezones, countries. |
offset |
string | Disambiguate a shared code by offset (+03:00 or 180). |
continent |
string | Disambiguate a shared code by ISO region. |
Response fields
| Field | Description |
|---|---|
current |
The standard's defining offset and whether it is the daylight variant. |
observes_dst |
Whether this standard takes part in DST. |
continent |
Dominant ISO region across the member zones. |
counts |
Number of member timezones and countries. |
counterpart |
The DST sibling (EST ↔ EDT), or null for a permanent standard. |
links |
Related API URLs plus web, the human-readable page on timezone.io. |
Shared codes return 300
Many abbreviations share a code — AST alone covers Atlantic Standard Time, Arabian
Standard Time, Argentina Standard Time, and more. When a code is ambiguous the API
responds 300 Multiple Choices with a candidates list. Narrow with ?offset= or
?continent= if that pins it down to one:
curl "https://api.timezone.io/v1/abbreviations/AST?offset=%2B03:00" \
-H "Authorization: Bearer YOUR_API_TOKEN"
…but qualifiers don't always suffice — two American AST standards share -04:00. The
slug from the candidates list is always unambiguous, so re-requesting by slug
(/abbreviations/atlantic-standard-time) is the reliable second step. An unknown code or
slug returns 404. See Errors for the 300 body shape and the full list
of responses.