Skip to main content
GET
Retrieve detailed information for a specific state or province using the country’s ISO2 code and the state’s ISO2 code.
Availability: All plans (Community and above). The fields returned vary by tier — see Tier-Based Field Availability below.
Trim response columns: Add ?fields=name,iso2,... to receive only the columns you need. Available on Starter+ plans. See the Field Filtering & Sorting guide for syntax.
Additional fields like fips_code, iso3166_2, level, parent_id, native, population, translations, and wikiDataId are returned on higher tiers. See Tier-Based Field Availability below.

Common Use Cases

Use coordinates for distance calculations and mapping.
Validate administrative division types for data processing.
Use this endpoint when you need precise geographical coordinates or want to validate specific state/country combinations.

Tier-Based Field Availability

translations is part of Full access but is not returned by default: add include_translations=true, or name it in ?fields=. localized_name and matched_locale are computed from the translations rather than stored, and appear only when you pass locale. See Localized Place Names. See Pricing for plan details.

Authorizations

X-CSCAPI-KEY
string
header
required

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

Path Parameters

ciso
string
required

ISO2 code of the country (e.g., IN)

Example:

"IN"

siso
string
required

ISO2 code of the state (e.g., MH)

Example:

"MH"

Query Parameters

fields
string

Comma-separated list of fields to include in the response. id is always included. Requires Starter+ plan.

Example:

"name,iso2,country_code"

locale
string

BCP 47 locale code (e.g. pt-BR) to request a localized name. Adds localized_name (resolved via exact locale → base language → native name → English name fallback) and matched_locale (which tier matched) to the result; name is unaffected. Supporter+ plans only — silently omitted (not an error) on lower tiers. A malformed value is rejected with a 400 on every tier.

Required string length: 2 - 7
Pattern: ^[a-zA-Z]{2}(-[a-zA-Z]{2,4})?$
Example:

"pt-BR"

include_translations
boolean
default:false

When true, includes the full translations field (JSON string keyed by language code). Supporter+ plans only — silently omitted (not an error) on lower tiers. Note that an explicit fields=translations also returns the field and takes precedence over this flag.

Example:

true

Response

State details

State/province/region object. Fields returned depend on your plan's data access level.

id
integer<int64>
required

Unique identifier

Example:

4008

name
string
required

State name in English

Example:

"Maharashtra"

country_id
integer<int64>
required

Parent country ID

country_code
string
required

Parent country ISO2 code

Example:

"IN"

iso2
string | null

State/province ISO code

Example:

"MH"

latitude
string | null

Latitude coordinate

Example:

"19.75147980"

longitude
string | null

Longitude coordinate

Example:

"75.71388840"

timezone
string | null

IANA timezone identifier

Example:

"Asia/Kolkata"

fips_code
string | null

FIPS code. Coordinates tier and above.

iso3166_2
string | null

ISO 3166-2 subdivision code. Coordinates tier and above.

type
string | null

Administrative type (e.g., state, province, territory). Coordinates tier and above.

Example:

"state"

level
integer | null

Administrative level. Coordinates tier and above.

parent_id
integer<int64> | null

Parent subdivision ID (for nested administrative structures). Coordinates tier and above.

native
string | null

Name in native language. Coordinates tier and above.

population
integer<int64> | null

Population count. Coordinates tier and above.

translations
string | null

JSON string keyed by language code. Supporter+ plans only. Returned when include_translations=true or when fields=translations explicitly requests it.

wikiDataId
string | null

Wikidata item identifier. Full access level only.

Example:

"Q1191"

localized_name
string | null

Name resolved via the locale query param's fallback chain (exact locale → base language → native name → English name). Only present when locale was supplied. Supporter+ plans only — silently omitted on lower tiers.

Example:

"Maharashtra"

matched_locale
string | null

Which fallback tier satisfied the locale request: the exact locale (e.g. pt-BR), its base language (e.g. pt), native, or en (English fallback). Only present when locale was supplied. Supporter+ plans only — silently omitted on lower tiers.

Example:

"en"