A list of all time zones (and how many countries use each)

Get every UTC offset in use worldwide, sorted from UTC-12:00 to UTC+14:00, with a country count per offset. Free time zones API for dropdowns and scheduling, no API key.

Back

A time-zone dropdown that lists 400 IANA names ("America/Argentina/Buenos_Aires") is a usability problem. Most products only need the UTC offsets — and there are 39 of them in use, not 400.

Every offset in use

curl "https://countries.dev/timezones"
[
  { "timezone": "UTC-12:00", "countries": 1 },
  { "timezone": "UTC-11:00", "countries": 5 },
  { "timezone": "UTC-10:00", "countries": 6 },
  { "timezone": "UTC-09:30", "countries": 2 },
  { "timezone": "UTC-09:00", "countries": 3 }
]

They come back sorted by real offset, from UTC-12:00 up to UTC+14:00 — not alphabetically — so the list drops straight into a <select> in the order people expect. The countries count tells you how common each offset is, which is handy for ordering or de-emphasising the rare half-hour and quarter-hour zones.

Building the dropdown

const zones = await fetch("https://countries.dev/timezones").then((r) => r.json());

select.innerHTML = zones
  .map((z) => `<option value="${z.timezone}">${z.timezone}</option>`)
  .join("");

From an offset back to countries

Once a user picks an offset, /timezone/{offset} gives you every country that observes it:

curl "https://countries.dev/timezone/UTC+01:00?fields=name"

For the other reference lists — currencies, languages and regions — see the rest of the API reference.

Time zones docs →

Written by

Dov Azencot

At

Thu Jun 25 2026