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.
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
/api/v1/timeCurrent date and time in any IANA timezone.
timezonerequiredIANA timezone name (e.g. America/New_York)curl "https://worldontime.app/api/v1/time?timezone=America/New_York"{
"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"
}/api/v1/timezoneConvert a time between two IANA timezones.
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.curl "https://worldontime.app/api/v1/timezone?from=America/New_York&to=Asia/Tokyo&time=09:00"{
"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
}/api/v1/holidaysPublic holidays for any country and year.
countryrequiredISO 3166-1 alpha-2 country code (e.g. US, GB, DE)yearrequiredYear (1900–2100)curl "https://worldontime.app/api/v1/holidays?country=US&year=2026"{
"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.