# 🌐 GeoSource API
## Overview
**GeoSource API** is a powerful and reliable RESTful API that provides extensive geo-data on over 249 countries and territories. It gives developers the ability to retrieve detailed and up-to-date geographic, political, and cultural information for use in applications ranging from logistics to travel, commerce, and education.
---
## 🚀 Features
- 🌍 Country names, capitals, phone codes, flags
- 💱 Currency codes and symbols
- 🏙️ States and cities
- 📍 Zip code and location lookups
- 🌐 Emoji flag support for countries
---
### Supported Countries for Zip Code Data
Algeria, Andorra, Argentina, Armenia, Australia, Austria, Azerbaijan, Bangladesh, Belarus, Belgium, Brazil, Bulgaria, Canada, Chile, Colombia, Czech Republic, France, Germany, Guatemala, Haiti, Hungary, Iceland, India, Italy, Mexico, Moldova, Morocco, Philippines, Poland, Romania, Russia, San Marino, Serbia, Singapore, Slovakia, Slovenia, Spain, Sri Lanka, Sweden, Switzerland, Thailand, United Kingdom, United States, Uruguay.
## 📌 API Endpoints
All endpoints use the **GET** method.
### 1. `CountriesList`
- **Endpoint**: `/CountriesList`
- **Description**: Retrieves a full list of all countries with available data.
---
### 2. `Capital By Country`
- **Endpoint**: `/CapitalByCountry`
- **Query Parameter**:
- `country`: Name of the country (e.g., `France`)
- **Description**: Returns the capital city of the specified country.
---
### 3. `Phone Code By Country`
- **Endpoint**: `/PhoneCodeByCountry`
- **Query Parameter**:
- `country`: Name of the country (e.g., `India`)
- **Description**: Returns the international phone code of the specified country.
---
### 4. `Currency By Country`
- **Endpoint**: `/CurrencyByCountry`
- **Query Parameter**:
- `country`: Name of the country
- **Description**: Returns the currency code and symbol of the specified country.
---
### 5. `emoji Flag By Country`
- **Endpoint**: `/emojiFlagByCountry`
- **Query Parameter**:
- `country`: Name of the country
- **Description**: Returns the emoji representation of the country's flag.
---
### 6. `states By Country`
- **Endpoint**: `/statesByCountry`
- **Query Parameter**:
- `country`: Name of the country
- **Description**: Returns a list of states or provinces in the given country.
---
### 7. `cities By State`
- **Endpoint**: `/citiesByState`
- **Query Parameters**:
- `state`: Name of the state
- **Description**: Returns cities within the given state and country.
---
### 8. `Location By City`
- **Endpoint**: `/LocationByCity`
- **Query Parameters**:
- `city`: Name of the city
- **Description**: Returns location details (like lat/lon) for a given city.
---
### 9. `ZipCode By City`
- **Endpoint**: `/ZipCodeByCity`
- **Query Parameters**:
- `city`: Name of the city
- **Description**: Returns zip/postal codes associated with a given city.
---
List of Countries
[
{
"countryID": "1",
"countryName": "Afghanistan",
"CountryCode": "AF",
"numericCode": "004",
"nativeName": "افغانستان",
"Region": "Asia",
"SubRegion": "Southern Asia"
},
{
"countryID": "2",
"countryName": "Aland Islands",
"CountryCode": "AX",
"numericCode": "248",
"nativeName": "Åland",
"Region": "Europe",
"SubRegion": "Northern Europe"
},
{
"countryID": "3",
"countryName": "Albania",
"CountryCode": "AL",
"numericCode": "008",
"nativeName": "Shqipëria",
"Region": "Europe",
"SubRegion": "Southern Europe"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10207/countries+list' --header 'Authorization: Bearer YOUR_API_KEY'
Get Capital of coutnry .
Capital By Country - Endpoint Features
| Object | Description |
|---|---|
country |
[Required] |
[
{
"countryName": "United States",
"CountryCode": "US",
"Capital": "Washington"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10208/capital+by+country?country=us' --header 'Authorization: Bearer YOUR_API_KEY'
Get Phone Code By Country
Phone Code By Country - Endpoint Features
| Object | Description |
|---|---|
country |
[Required] |
[
{
"CountryName": "United States",
"CountryCode": "US",
"PhoneCode": "+1"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10209/phone+code+by+country?country=us' --header 'Authorization: Bearer YOUR_API_KEY'
Get Currency By Country
Currency By Country - Endpoint Features
| Object | Description |
|---|---|
country |
[Required] |
[
{
"CountryName": "United States",
"CountryCode": "US",
"Currency": "USD",
"CurrencySymbol": "$"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10214/currency+by+country?country=us' --header 'Authorization: Bearer YOUR_API_KEY'
Get Emoji Flag By Country
Emoji Flag By Country - Endpoint Features
| Object | Description |
|---|---|
country |
[Required] |
[
{
"CountryName": "United States",
"CountryCode": "US",
"emojiU": "U+1F1FA U+1F1F8"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10215/emoji+flag+by+country?country=eg' --header 'Authorization: Bearer YOUR_API_KEY'
Get States by Country
States By Country - Endpoint Features
| Object | Description |
|---|---|
country |
[Required] |
[
{
"StateName": "Alabama",
"StateCode": "AL",
"CountryCode": "US",
"latitude": "32.3182314",
"longitude": "-86.902298"
},
{
"StateName": "Alaska",
"StateCode": "AK",
"CountryCode": "US",
"latitude": "64.2008413",
"longitude": "-149.4936733"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10216/states+by+country?country=us' --header 'Authorization: Bearer YOUR_API_KEY'
Get Cities by State.
Cities By State - Endpoint Features
| Object | Description |
|---|---|
state |
[Required] |
[
{
"CityName": "Abbeville",
"StateCode": "AL",
"CountryCode": "US",
"latitude": "31.57184000",
"longitude": "-85.25049000"
},
{
"CityName": "Adamsville",
"StateCode": "AL",
"CountryCode": "US",
"latitude": "33.60094000",
"longitude": "-86.95611000"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10217/cities+by+state?state=alabama' --header 'Authorization: Bearer YOUR_API_KEY'
Get Location (lat & lng ) By City
Location By City - Endpoint Features
| Object | Description |
|---|---|
city |
[Required] |
[
{
"CityName": "El Cairo",
"StateCode": "VAC",
"CountryCode": "CO",
"latitude": "4.74889000",
"longitude": "-76.24443000"
},
{
"CityName": "Cairo",
"StateCode": "C",
"CountryCode": "EG",
"latitude": "30.06263000",
"longitude": "31.24967000"
},
{
"CityName": "New Cairo",
"StateCode": "C",
"CountryCode": "EG",
"latitude": "30.03000000",
"longitude": "31.47000000"
},
{
"CityName": "Cairon",
"StateCode": "NOR",
"CountryCode": "FR",
"latitude": "49.24017000",
"longitude": "-0.45046000"
},
{
"CityName": "Cairo Montenotte",
"StateCode": "42",
"CountryCode": "IT",
"latitude": "44.39790000",
"longitude": "8.27775000"
},
{
"CityName": "Gropello Cairoli",
"StateCode": "25",
"CountryCode": "IT",
"latitude": "45.17707000",
"longitude": "8.99353000"
},
{
"CityName": "Pieve del Cairo",
"StateCode": "25",
"CountryCode": "IT",
"latitude": "45.04920000",
"longitude": "8.80322000"
},
{
"CityName": "Cairo",
"StateCode": "GA",
"CountryCode": "US",
"latitude": "30.87751000",
"longitude": "-84.20214000"
},
{
"CityName": "Cairo",
"StateCode": "IL",
"CountryCode": "US",
"latitude": "37.00533000",
"longitude": "-89.17646000"
},
{
"CityName": "Cairo",
"StateCode": "NY",
"CountryCode": "US",
"latitude": "42.29897000",
"longitude": "-73.99847000"
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10218/location+by+city?city=Abbeville' --header 'Authorization: Bearer YOUR_API_KEY'
Get Zip Code By City
Zip Code By City - Endpoint Features
| Object | Description |
|---|---|
city |
[Required] |
[
{
"CityName": "Brussels",
"StateCode": "BRU",
"CountryCode": "BE",
"latitude": "50.85045000",
"longitude": "4.34878000",
"zip": [
"1000"
]
},
{
"CityName": "Brussels",
"StateCode": "ON",
"CountryCode": "CA",
"latitude": "43.73339000",
"longitude": "-81.24975000",
"zip": [
"N0G 0B2",
"N0G 1H0"
]
},
{
"CityName": "Brussels",
"StateCode": "WI",
"CountryCode": "US",
"latitude": "44.73611000",
"longitude": "-87.62093000",
"zip": [
"54204",
"62013",
"09714",
"09724"
]
}
]
curl --location --request GET 'https://zylalabs.com/api/6794/geosource+api/10223/zip+code+by+city?city=Abbeville' --header 'Authorization: Bearer YOUR_API_KEY'
| Header | Description |
|---|---|
Authorization
|
[Required] Should be Bearer access_key. See "Your API Access Key" above when you are subscribed. |
No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.
Each endpoint returns specific geo-information. For example, `/CountriesList` provides country names, codes, and regions, while `/CapitalByCountry` returns the capital city of a specified country. Other endpoints deliver data on phone codes, currencies, states, cities, locations, and zip codes.
Key fields vary by endpoint. For `/CountriesList`, fields include `countryID`, `countryName`, and `Region`. For `/CurrencyByCountry`, fields include `CountryName`, `Currency`, and `CurrencySymbol`. Each endpoint's response structure is tailored to the data it provides.
Each endpoint has specific query parameters. For instance, `/CapitalByCountry` requires the `country` parameter, while `/citiesByState` needs the `state` parameter. Users must provide valid country or state names to retrieve accurate data.
Response data is structured as JSON arrays of objects. Each object contains relevant fields for the requested data. For example, the response from `/LocationByCity` includes `CityName`, `latitude`, and `longitude`, making it easy to parse and utilize in applications.
The GeoSource API aggregates data from reliable geographic and governmental sources to ensure accuracy. Data is regularly updated to reflect changes in geopolitical boundaries, currency, and other relevant information, maintaining high quality and reliability.
Typical use cases include travel applications needing country and city information, e-commerce platforms requiring currency data, and logistics services that utilize zip code and location details for shipping. Developers can enhance user experiences with accurate geo-information.
Users can integrate the returned data into applications by parsing the JSON responses. For example, using the `latitude` and `longitude` from `/LocationByCity`, developers can display maps or calculate distances. Each endpoint's structured data allows for straightforward implementation.
If an endpoint returns partial or empty results, users should implement error handling in their applications. For example, if no cities are found for a state in `/citiesByState`, the application can prompt the user to check the state name or provide alternative suggestions.
Please have a look at our Refund Policy: https://zylalabs.com/terms#refund
To obtain your API key, you first need to sign in to your account and subscribe to the API you want to use. Once subscribed, go to your Profile, open the Subscription section, and select the specific API. Your API key will be available there and can be used to authenticate your requests.
You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.
If you don’t cancel before the 7th day, your free trial will end automatically and your subscription will switch to a paid plan under the same plan you originally subscribed to, meaning you will be charged and gain access to the API calls included in that plan.
The free trial ends when you reach 50 API requests or after 7 days, whichever comes first.
No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.
Yes, we offer a 7-day free trial that allows you to make up to 50 API calls at no cost, so you can test our APIs without any commitment.
Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.
Service Level:
100%
Response Time:
1,541ms
Service Level:
100%
Response Time:
1,017ms
Service Level:
100%
Response Time:
2,429ms
Service Level:
90%
Response Time:
629ms
Service Level:
83%
Response Time:
564ms
Service Level:
100%
Response Time:
1,466ms
Service Level:
100%
Response Time:
570ms
Service Level:
100%
Response Time:
3,408ms
Service Level:
100%
Response Time:
172ms
Service Level:
100%
Response Time:
467ms
Service Level:
100%
Response Time:
266ms
Service Level:
100%
Response Time:
528ms
Service Level:
100%
Response Time:
1,277ms
Service Level:
100%
Response Time:
1,128ms
Service Level:
100%
Response Time:
960ms
Service Level:
100%
Response Time:
519ms
Service Level:
100%
Response Time:
536ms
Service Level:
100%
Response Time:
1,733ms
Service Level:
100%
Response Time:
1,206ms
Service Level:
100%
Response Time:
802ms