curl -X GET 'https://api.countrystatecity.in/v1/regions' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
curl -X GET 'https://api.countrystatecity.in/v1/regions?q=asia' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
const response = await fetch('https://api.countrystatecity.in/v1/regions', {
headers: { 'X-CSCAPI-KEY': 'YOUR_API_KEY' }
});
const regions = await response.json();
console.log(regions);
import requests
response = requests.get(
'https://api.countrystatecity.in/v1/regions',
headers={'X-CSCAPI-KEY': 'YOUR_API_KEY'}
)
regions = response.json()
print(regions)
[
{ "id": 1, "name": "Africa" },
{ "id": 2, "name": "Americas" },
{ "id": 3, "name": "Asia" },
{ "id": 4, "name": "Europe" },
{ "id": 5, "name": "Oceania" },
{ "id": 6, "name": "Polar" }
]
{
"status": "error",
"message": "This feature is not available on your current plan.",
"details": {
"feature": "regionsApi",
"currentTier": "community",
"requiredTier": "starter",
"upgradeUrl": "https://app.countrystatecity.in/pricing"
}
}
Get All Regions
Retrieve a list of geographic regions
curl -X GET 'https://api.countrystatecity.in/v1/regions' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
curl -X GET 'https://api.countrystatecity.in/v1/regions?q=asia' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
const response = await fetch('https://api.countrystatecity.in/v1/regions', {
headers: { 'X-CSCAPI-KEY': 'YOUR_API_KEY' }
});
const regions = await response.json();
console.log(regions);
import requests
response = requests.get(
'https://api.countrystatecity.in/v1/regions',
headers={'X-CSCAPI-KEY': 'YOUR_API_KEY'}
)
regions = response.json()
print(regions)
[
{ "id": 1, "name": "Africa" },
{ "id": 2, "name": "Americas" },
{ "id": 3, "name": "Asia" },
{ "id": 4, "name": "Europe" },
{ "id": 5, "name": "Oceania" },
{ "id": 6, "name": "Polar" }
]
{
"status": "error",
"message": "This feature is not available on your current plan.",
"details": {
"feature": "regionsApi",
"currentTier": "community",
"requiredTier": "starter",
"upgradeUrl": "https://app.countrystatecity.in/pricing"
}
}
403 on lower tiers.?fields= to limit columns returned, or ?sort= to order the list. Both are available on Starter+ plans. See the Field Filtering & Sorting guide for syntax and per-entity sortable fields.curl -X GET 'https://api.countrystatecity.in/v1/regions' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
curl -X GET 'https://api.countrystatecity.in/v1/regions?q=asia' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
const response = await fetch('https://api.countrystatecity.in/v1/regions', {
headers: { 'X-CSCAPI-KEY': 'YOUR_API_KEY' }
});
const regions = await response.json();
console.log(regions);
import requests
response = requests.get(
'https://api.countrystatecity.in/v1/regions',
headers={'X-CSCAPI-KEY': 'YOUR_API_KEY'}
)
regions = response.json()
print(regions)
[
{ "id": 1, "name": "Africa" },
{ "id": 2, "name": "Americas" },
{ "id": 3, "name": "Asia" },
{ "id": 4, "name": "Europe" },
{ "id": 5, "name": "Oceania" },
{ "id": 6, "name": "Polar" }
]
{
"status": "error",
"message": "This feature is not available on your current plan.",
"details": {
"feature": "regionsApi",
"currentTier": "community",
"requiredTier": "starter",
"upgradeUrl": "https://app.countrystatecity.in/pricing"
}
}
Related Endpoints
- Get Subregions of a Region — drill down into subregions
- Get Countries in a Subregion — countries within a subregion
Authorizations
API key for authentication. Get your free key at app.countrystatecity.in.
Query Parameters
Search filter on region name. Min 2 characters. Requires Starter+ plan with search feature.
2 - 100Comma-separated list of fields to include in the response. id is always included. Requires Starter+ plan.
"name"
Comma-separated sort tokens: field or field:asc|desc. Requires Starter+ plan.
"name:asc"
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 each 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.
2 - 7^[a-zA-Z]{2}(-[a-zA-Z]{2,4})?$"pt-BR"
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.
true
Response
List of regions
Unique identifier
3
Region name
"Asia"
JSON string keyed by language code. Supporter+ plans only. Returned when include_translations=true or when fields=translations explicitly requests it.
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.
"Ásia"
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.
"pt"
Wikidata item identifier. Coordinates tier and above.