Developer API
FreeSimple REST API for time zones, current time, and public holidays. No API key required. 100 requests per day per IP on the free tier.
Base URL
worldontime.app
Free quota
100 req/day
API key
Not required
Rate limiting
All responses include rate-limit headers:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 94
X-RateLimit-Reset: 1745867520 # Unix timestamp when quota resets
Retry-After: 3600 # Only present on 429 responsesWhen the quota is exceeded, the API returns HTTP 429 with a Retry-After header.
CORS
All endpoints include Access-Control-Allow-Origin: * — safe to call from any browser or web app.
Endpoints
GET
/api/v1/timeCurrent date and time in any IANA timezone.
Parameters
timezonerequiredIANA timezone name (e.g. America/New_York)Example request
curl "https://worldontime.app/api/v1/time?timezone=America/New_York"Example response
{
"timezone": "America/New_York",
"datetime": "2026-04-27T14:32:00.000-04:00",
"date": "2026-04-27",
"time": "14:32:00",
"utc_offset": "-04:00",
"day_of_week": "Monday",
"week_number": 18,
"unix": 1745781120,
"is_dst": true,
"abbreviation": "EDT"
}GET
/api/v1/timezoneConvert a time between two IANA timezones.
Parameters
fromrequiredSource IANA timezone (e.g. America/New_York)torequiredTarget IANA timezone (e.g. Asia/Tokyo)timeoptionalSource time as HH:MM or ISO datetime. Defaults to now.Example request
curl "https://worldontime.app/api/v1/timezone?from=America/New_York&to=Asia/Tokyo&time=09:00"Example response
{
"from": {
"timezone": "America/New_York",
"datetime": "2026-04-27T09:00:00.000-04:00",
"time": "09:00",
"abbreviation": "EDT",
"is_dst": true
},
"to": {
"timezone": "Asia/Tokyo",
"datetime": "2026-04-27T22:00:00.000+09:00",
"time": "22:00",
"abbreviation": "JST",
"is_dst": false
},
"offset": "+13h",
"offset_minutes": 780
}GET
/api/v1/holidaysPublic holidays for any country and year.
Parameters
countryrequiredISO 3166-1 alpha-2 country code (e.g. US, GB, DE)yearrequiredYear (1900–2100)Example request
curl "https://worldontime.app/api/v1/holidays?country=US&year=2026"Example response
{
"country": "US",
"year": 2026,
"count": 11,
"holidays": [
{
"date": "2026-01-01",
"name": "New Year's Day",
"local_name": "New Year's Day",
"fixed": true,
"global": true,
"types": [
"Public"
]
},
{
"date": "2026-07-04",
"name": "Independence Day",
"local_name": "Independence Day",
"fixed": true,
"global": true,
"types": [
"Public"
]
}
]
}Error format
All errors return JSON with an error field.
// HTTP 422
{
"error": "Unknown timezone: Foo/Bar. Use an IANA timezone name."
}
// HTTP 429
{
"error": "Rate limit exceeded. Maximum 100 requests per day.",
"docs": "https://worldontime.app/developers"
}IANA timezone names
Use standard IANA tz database names like America/New_York, Europe/London, Asia/Tokyo. Abbreviations like EST or GMT±N are not accepted. Full list: Wikipedia — tz database.
Questions or higher limits? Open an issue on GitHub.