curl -X GET 'https://api.countrystatecity.in/v1/countries' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
[
{
"id": 101,
"name": "India",
"iso2": "IN",
"iso3": "IND",
"phonecode": "91",
"capital": "New Delhi",
"currency": "INR",
"native": "भारत",
"emoji": "🇮🇳",
"latitude": "20.00000000",
"longitude": "77.00000000",
"region": "Asia",
"region_id": 3,
"subregion": "Southern Asia",
"subregion_id": 14,
"timezones": "[{\"zoneName\":\"Asia/Kolkata\",\"gmtOffset\":19800,\"gmtOffsetName\":\"UTC+05:30\",\"abbreviation\":\"IST\",\"tzName\":\"Indian Standard Time\"}]"
}
]
Countries Endpoints
Get All Countries
Retrieve a complete list of all countries with basic information
GET
/
v1
/
countries
curl -X GET 'https://api.countrystatecity.in/v1/countries' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
[
{
"id": 101,
"name": "India",
"iso2": "IN",
"iso3": "IND",
"phonecode": "91",
"capital": "New Delhi",
"currency": "INR",
"native": "भारत",
"emoji": "🇮🇳",
"latitude": "20.00000000",
"longitude": "77.00000000",
"region": "Asia",
"region_id": 3,
"subregion": "Southern Asia",
"subregion_id": 14,
"timezones": "[{\"zoneName\":\"Asia/Kolkata\",\"gmtOffset\":19800,\"gmtOffsetName\":\"UTC+05:30\",\"abbreviation\":\"IST\",\"tzName\":\"Indian Standard Time\"}]"
}
]
Retrieve a complete list of all countries with basic information including ISO codes, phone codes, currencies, and regional data.
See Pricing for plan details.
Availability: All plans (Community and above). The fields returned vary by tier — see Tier-Based Field Availability below.
Trim and order results: Add
?fields= to limit columns returned, or ?sort= to order the list. Both are available on Supporter+ plans. See the Field Filtering & Sorting guide for syntax and per-entity sortable fields.Authentication
Your API key for authentication
Query Parameters
Search filter on name. Case-insensitive match on
name and native fields. Minimum 2 characters. Requires Supporter+ plan. Without this parameter, all results are returned (no plan restriction for search).Response
Unique identifier for the country
Official country name in English
Two-letter ISO 3166-1 alpha-2 country code
Three-letter ISO 3166-1 alpha-3 country code
International dialing code for the country
Capital city of the country
Three-letter ISO 4217 currency code
Country name in the native language
Flag emoji representation
Country’s approximate latitude
Country’s approximate longitude
Geographic region name (e.g., Asia, Europe)
Geographic region ID (foreign key into
/regions)Geographic subregion name (e.g., Southern Asia)
Geographic subregion ID (foreign key into
/subregions)JSON string of timezones (array of
{zoneName, gmtOffset, gmtOffsetName, abbreviation, tzName})Additional fields like
numeric_code, currency_name, currency_symbol, tld, nationality, population, gdp, area_sq_km, postal_code_format, postal_code_regex, emojiU, translations, and wikiDataId are returned on higher tiers. See the Tier-Based Field Availability section below.curl -X GET 'https://api.countrystatecity.in/v1/countries' \
-H 'X-CSCAPI-KEY: YOUR_API_KEY'
[
{
"id": 101,
"name": "India",
"iso2": "IN",
"iso3": "IND",
"phonecode": "91",
"capital": "New Delhi",
"currency": "INR",
"native": "भारत",
"emoji": "🇮🇳",
"latitude": "20.00000000",
"longitude": "77.00000000",
"region": "Asia",
"region_id": 3,
"subregion": "Southern Asia",
"subregion_id": 14,
"timezones": "[{\"zoneName\":\"Asia/Kolkata\",\"gmtOffset\":19800,\"gmtOffsetName\":\"UTC+05:30\",\"abbreviation\":\"IST\",\"tzName\":\"Indian Standard Time\"}]"
}
]
Tier-Based Field Availability
The fields returned depend on your plan’s data access level.| Tier | Plans | Fields |
|---|---|---|
| Basic | Community, Starter, Legacy | id, name, iso2, iso3, phonecode, capital, currency, native, emoji, latitude, longitude, region, region_id, subregion, subregion_id, timezones |
| Coordinates | Supporter | All Basic + numeric_code, currency_name, currency_symbol, tld, nationality, population, gdp, area_sq_km, postal_code_format, postal_code_regex, emojiU |
| Full | Professional, Business | All Coordinates + translations, wikiDataId |
Common Use Cases
Country Selector Dropdown
Country Selector Dropdown
Use this endpoint to populate country selection dropdowns in forms.
const populateCountryDropdown = async () => {
const countries = await fetch('/api/countries').then(r => r.json());
const select = document.getElementById('country-select');
countries.forEach(country => {
const option = document.createElement('option');
option.value = country.iso2;
option.textContent = country.name;
select.appendChild(option);
});
};
Currency Context
Currency Context
Get currency information for financial applications.
const getCurrencyInfo = (countries, countryCode) => {
const country = countries.find(c => c.iso2 === countryCode);
return {
code: country.currency,
symbol: country.emoji
};
};
Cache country data locally as it rarely changes. This reduces API calls and improves application performance.
Was this page helpful?
⌘I