Developers

Free time zone API

Convert times between any two zones over HTTP. No API key, no signup, CORS-enabled, and daylight-saving accurate via the IANA time zone database.

Quick start

One GET request. Pass a zone slug (est) or a full IANA id (America/New_York).

curl "https://www.timezonehero.com/api/convert?from=est&to=pst&time=15:00"

Endpoints

GET /api/convert

Convert a time from one zone to another. Defaults to the current time if none is given.

ParamRequiredDescription
fromyesSource zone — slug (est) or IANA id (America/New_York).
toyesTarget zone — slug or IANA id.
timeno24-hour HH:mm in the source zone. Defaults to now.
datenoYYYY-MM-DD in the source zone. Defaults to today (matters across DST changes).
GET /api/zones

List every supported zone slug with its IANA id, city, abbreviation, and region.

Example response

{
  "from": { "zone": "est", "iana": "America/New_York", "city": "New York", "abbr": "EDT" },
  "to":   { "zone": "pst", "iana": "America/Los_Angeles", "city": "Los Angeles", "abbr": "PDT" },
  "input":  { "time": "15:00", "date": "2026-07-07" },
  "result": {
    "time": "12:00 PM",
    "time24": "12:00",
    "date": "2026-07-07",
    "dayOffset": 0,
    "iso": "2026-07-07T12:00:00.000-07:00"
  },
  "offsetHours": -3,
  "summary": "3:00 PM EDT is 12:00 PM PDT",
  "poweredBy": "https://www.timezonehero.com"
}

Use it from JavaScript

const res = await fetch(
  "https://www.timezonehero.com/api/convert?from=london&to=jst&time=09:00"
);
const data = await res.json();
console.log(data.summary);
// "9:00 AM BST is 5:00 PM JST"

Fair use

Free for personal and commercial projects. No key required. If it is useful in your app or article, a link back to timezonehero.com is appreciated — it keeps the API free. Please cache responses where you can; conversions only change on the minute.