100% Free & No Tracking

Free Timezone API

Get accurate, up-to-date timezone data with a single API call. Zero tracking, zero cost, production ready.

https://api.tzinfo.org/v1

Why TZInfo.org?

Built for developers who value simplicity, privacy, and reliability

100% Free Forever

No pricing tiers, no rate limits, no credit card required. Completely free for personal and commercial use.

Zero Tracking

We collect absolutely no data about you or your users. No analytics, no cookies, no user profiling.

Lightning Fast

Powered by Cloudflare's global edge network for sub-50ms response times worldwide.

Always Up-to-Date

Timezone data is refreshed daily from authoritative sources to ensure accuracy.

Production Ready

Battle-tested and reliable. Trusted by production applications serving real users.

Simple Integration

One endpoint, clean JSON response. Integrate in minutes with any programming language.

Simple to Use

One endpoint. Clean JSON. That's it.

1

Make a GET Request

Send a GET request to our API endpoint:

GET https://api.tzinfo.org/v1
2

Receive JSON Response

Get a clean JSON response with all timezone data:

{
  "updatedAt": 1736566800,
  "zones": [
    {"id": "America/Los_Angeles", "currentOffset": -28800, "currentOffsetLabel": "-08 (PST)"},
    {"id": "America/New_York", "currentOffset": -18000, "currentOffsetLabel": "-05 (EST)"},
    ...
  ]
}
3

Use the Data

Each zone includes the IANA timezone identifier, UTC offset in seconds, and a human-readable label. Calculate local time by adding the offset to a UTC timestamp:

// JavaScript
const utcTimestamp = Date.now() / 1000;
const localTimestamp = utcTimestamp + zone.currentOffset;

# Ruby
local_time = Time.now.utc.to_i + zone['currentOffset']

# Python
local_ts = time.time() + zone['currentOffset']

Code Examples

Integrate in minutes with your favorite language

fetch('https://api.tzinfo.org/v1')
  .then(res => res.json())
  .then(data => {
    const zone = data.zones.find(z => z.id === 'America/New_York');
    const localTime = new Date((Date.now() / 1000 + zone.currentOffset) * 1000);
    console.log(localTime.toISOString()); // Current time in New York
  });

Response Schema

TypeScript definitions and field descriptions

GET /v1 Response

Field Type Description
updatedAt number Unix timestamp when data was last refreshed
zones Zone[] Array of all timezones (~340 zones)

Zone Object

Field Type Description
id string IANA timezone ID
currentOffset number UTC offset in seconds
currentOffsetLabel string Readable offset label
{"id": "America/New_York", "currentOffset": -18000, "currentOffsetLabel": "-05 (EST)"} {"id": "Europe/London", "currentOffset": 0, "currentOffsetLabel": "+00 (GMT)"} {"id": "Asia/Tokyo", "currentOffset": 32400, "currentOffsetLabel": "+09 (JST)"} {"id": "Australia/Sydney", "currentOffset": 39600, "currentOffsetLabel": "+11 (AEDT)"}

TypeScript Definition

interface TzInfoResponse { updatedAt: number; // Unix timestamp zones: Zone[]; } interface Zone { id: string; currentOffset: number; currentOffsetLabel: string; }

Committed to Accuracy

We source our timezone data from authoritative providers, which maintains comprehensive timezone databases. Our data is refreshed daily to capture any timezone rule changes.

While we strive to maintain accurate and up-to-date information, timezone rules can change with short notice due to political decisions. We make no warranties regarding the accuracy or completeness of the data. For critical applications, we recommend validating timezone data against your specific requirements.

Timezone Facts

Why accurate timezone data matters for modern applications

Timezones are one of computing's most deceptively complex challenges. What seems like simple math becomes a maze of political decisions, historical quirks, and edge cases that have tripped up developers for decades.

Why Timezones Change Frequently

Timezone rules are not fixed laws of nature - they're political decisions that governments can change with little notice. Countries regularly modify their UTC offsets, adopt or abandon daylight saving time, or shift DST transition dates.

Recent examples: Morocco suspended DST indefinitely in 2018. Russia abolished DST in 2011, then changed its standard time in 2014. Egypt has changed its DST policy multiple times. Samoa skipped December 30, 2011 entirely when it jumped across the International Date Line.

This is why hardcoding timezone offsets is dangerous - an offset that's correct today may be wrong tomorrow. Applications need access to regularly updated timezone data.

The IANA Time Zone Database

The IANA Time Zone Database (also called tzdata or zoneinfo) is the authoritative source for timezone information used by most operating systems, programming languages, and applications worldwide.

Maintained by a community of volunteers, it tracks both current timezone rules and historical changes going back decades. The database uses location-based identifiers like America/New_York and Europe/London rather than abbreviations like EST or GMT, which can be ambiguous.

  • 340+ timezones covering every inhabited region
  • Updated multiple times per year to reflect political changes
  • Historical data for accurate past date conversions
  • Open source and freely available

Common Timezone Pitfalls

Developers frequently encounter these timezone-related bugs:

  • Assuming UTC offsets are whole hours: India is UTC+5:30, Nepal is UTC+5:45, and the Chatham Islands use UTC+12:45
  • Confusing timezone abbreviations: "CST" could mean Central Standard Time (UTC-6), China Standard Time (UTC+8), or Cuba Standard Time (UTC-5)
  • Ignoring DST transitions: A 2 AM appointment might not exist (clocks skip forward) or happen twice (clocks fall back)
  • Storing local times without timezone context: "3:00 PM" is meaningless without knowing which timezone
  • Using system timezone on servers: Server location shouldn't affect how times are processed

Best Practices for Developers

Follow these guidelines to avoid timezone-related bugs in your applications:

  • Store times in UTC: Convert to local time only for display
  • Use IANA timezone identifiers: Store America/New_York, not EST or -05:00
  • Never hardcode offsets: Always look up current offsets from an authoritative source
  • Keep timezone data updated: Use a service like TZInfo.org that refreshes daily
  • Test with edge cases: Include DST transitions and unusual offsets in your test suite
  • Let users choose their timezone: Don't assume based on IP geolocation
Pro tip: When scheduling future events, store the IANA timezone ID alongside the local time. This ensures correct conversion even if the timezone's UTC offset changes before the event occurs.

Frequently Asked Questions

Everything you need to know about TZInfo.org

Yes! TZInfo.org is 100% free with no hidden costs, no rate limits, and no premium tiers. We believe timezone data should be accessible to everyone.

Absolutely nothing. We do not use cookies, analytics, or any form of tracking. We don't log IP addresses, user agents, or any request data. Your privacy is completely protected.

Timezone data is refreshed daily from authoritative sources. This ensures you always have access to the most current timezone information.

Absolutely! TZInfo.org is free for both personal and commercial use. No attribution required, though we appreciate it if you spread the word.

While we strive for maximum uptime using Cloudflare's global infrastructure, we provide this service as-is without any formal SLA or uptime guarantees. For mission-critical applications, we recommend implementing appropriate fallback strategies.

TZInfo.org is committed to user privacy. We do not collect, store, process, or share any personal information. We use no cookies, no analytics, no tracking pixels, and no third-party scripts. Your API requests are processed and immediately forgotten. We believe privacy is a fundamental right, not a feature.

By using TZInfo.org, you agree to use the service responsibly and not engage in abusive behavior (e.g., excessive requests designed to overwhelm the service). The service is provided "as is" without warranties of any kind. We are not liable for any damages arising from the use of this service. We reserve the right to modify or discontinue the service at any time. Timezone data is sourced from third parties and while we strive for accuracy, we make no guarantees about data correctness.