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": "🇮🇳"
  },
  {
    "id": 233,
    "name": "United States",
    "iso2": "US",
    "iso3": "USA",
    "phonecode": "1",
    "capital": "Washington",
    "currency": "USD",
    "native": "United States",
    "emoji": "🇺🇸"
  }
]
Retrieve a complete list of all countries with basic information including ISO codes, phone codes, currencies, and regional data.

Authentication

X-CSCAPI-KEY
string
required
Your API key for authentication

Response

id
integer
Unique identifier for the country
name
string
Official country name in English
iso2
string
Two-letter ISO 3166-1 alpha-2 country code
iso3
string
Three-letter ISO 3166-1 alpha-3 country code
phonecode
string
International dialing code for the country
capital
string
Capital city of the country
currency
string
Three-letter ISO 4217 currency code
native
string
Country name in the native language
emoji
string
Flag emoji representation
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": "🇮🇳"
  },
  {
    "id": 233,
    "name": "United States",
    "iso2": "US",
    "iso3": "USA",
    "phonecode": "1",
    "capital": "Washington",
    "currency": "USD",
    "native": "United States",
    "emoji": "🇺🇸"
  }
]

Common Use Cases

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);
  });
};
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.