Skip to main content
GET
Get the timezone for a specific city. The country and state codes in the path are not redundant — they’re enforced server-side as an ownership check: a city ID is only resolved if it actually belongs to the given state inside the given country. This prevents “city-ID spoofing” — a caller can’t learn the timezone of an arbitrary city by trying its ID under a different country/state pair.
Availability: All plans (Community and above). Only an API key is required.
Responses are cached server-side for 24 hours. The cache key includes country, state, and city ID, so the ownership check holds on cache HIT — a city ID looked up under one (ciso, siso) pair won’t satisfy a request under a different pair.

Response

Same shape as the country and state timezone endpoints:

Notes on city_id

The city_id is the same numeric ID returned by all list endpoints (/v1/countries/:ciso/states/:siso/cities, /v1/cities, etc.). If you stored a city ID in your own database, this endpoint is the canonical way to look up its timezone without re-fetching the full city record.

Authorizations

X-CSCAPI-KEY
string
header
required

API key for authentication. Get your free key at app.countrystatecity.in.

Path Parameters

ciso
string
required

ISO 3166-1 alpha-2 (e.g., US), alpha-3, or numeric country ID

Example:

"US"

siso
string
required

State/province code (e.g., CA)

Example:

"CA"

city_id
integer
required

Numeric city ID (from the cities endpoints)

Example:

24295

Response

Timezone information for the city

IANA timezone with current UTC offset and DST status. Standard and DST offsets are sampled from Jan 1 and Jul 1 of the current year.

iana
string
required

Canonical IANA timezone identifier

Example:

"Asia/Kolkata"

abbreviation
string
required

Locale-aware short code (display only — not unique across timezones)

Example:

"IST"

offset_utc
string
required

Standard UTC offset in ±HH:MM format

Example:

"+05:30"

dst_offset_utc
string
required

DST UTC offset in ±HH:MM format; equals offset_utc for zones without DST

Example:

"+05:30"

is_dst_now
boolean
required

Whether DST is currently active

Example:

false