Quick jump:
Two endpoints of the Exchanges API give you a list of over 60 global financial exchanges, covered by EODHD and their listed assets. It includes metadata such as exchange codes, countries, operating MICs, and supported currencies.
You can retrieve either the list of supported exchanges or all the tickers available on each exchange (active or delisted). Data is available in both JSON and CSV formats, making it easy to integrate into your workflows.
Get List of Exchanges
Use this endpoint to retrieve the full list of supported stock exchanges along with basic metadata.
Endpoint:
https://eodhd.com/api/exchanges-list/?api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/exchanges-list/?api_token={YOUR_API_TOKEN}&fmt=json"
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://eodhd.com/api/exchanges-list/?api_token={YOUR_API_TOKEN}&fmt=json',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$data = curl_exec($curl);
curl_close($curl);
try {
$data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
var_dump($data);
} catch (Exception $e) {
echo 'Error. '.$e->getMessage();
}
import requests
url = f'https://eodhd.com/api/exchanges-list/?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()
print(data)
library(httr)
library(jsonlite)
url <- 'https://eodhd.com/api/exchanges-list/?api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)
if (http_type(response) == "application/json") {
content <- content(response, "text", encoding = "UTF-8")
cat(content)
} else {
cat("Error while receiving data\n")
}
Try it now (it's free)!
How to use it (YouTube)
This endpoint has no parameters. It returns a JSON array of exchanges.
Response Fields for Exchange List
Field | Description |
---|---|
Name | Full name of the exchange |
Code | Exchange code used in EODHD APIs |
OperatingMIC | MIC codes for operating venues |
Country | Country where the exchange operates |
Currency | Default trading currency |
CountryISO2 | ISO2 country code |
CountryISO3 | ISO3 country code |
Example Response (Exchange List)
{
"Name": "USAStocks",
"Code": "US",
"OperatingMIC": "XNAS,XNYS",
"Country": "USA",
"Currency": "USD",
"CountryISO2": "US",
"CountryISO3": "USA"
},
{
"Name": "LondonExchange",
"Code": "LSE",
"OperatingMIC": "XLON",
"Country": "UK",
"Currency": "GBP",
"CountryISO2": "GB",
"CountryISO3": "GBR"
}
Get List of Tickers (Exchange Symbols)
Use this endpoint to get all currently active tickers listed on a specific exchange.
Endpoint:
https://eodhd.com/api/exchange-symbol-list/{EXCHANGE_CODE}?api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/exchange-symbol-list/{EXCHANGE_CODE}?api_token={YOUR_API_TOKEN}&fmt=json"
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://eodhd.com/api/exchange-symbol-list/{EXCHANGE_CODE}?api_token={YOUR_API_TOKEN}&fmt=json',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$data = curl_exec($curl);
curl_close($curl);
try {
$data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
var_dump($data);
} catch (Exception $e) {
echo 'Error. '.$e->getMessage();
}
import requests
url = f'https://eodhd.com/api/exchange-symbol-list/{EXCHANGE_CODE}?api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()
print(data)
library(httr)
library(jsonlite)
url <- 'https://eodhd.com/api/exchange-symbol-list/{EXCHANGE_CODE}?api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)
if (http_type(response) == "application/json") {
content <- content(response, "text", encoding = "UTF-8")
cat(content)
} else {
cat("Error while receiving data\n")
}
Try it now (it's free)!
How to use it (YouTube)
Replace {EXCHANGE_CODE} with values like US, LSE, XETRA, etc.
By default, only tickers that have been active in the past month are included.
Parameters
Parameter | Required | Description |
---|---|---|
api_token | Yes | Your personal API key |
delisted | No | If set to 1, includes delisted (inactive) tickers |
type | No | Filter tickers by type. Supported values: common_stock, preferred_stock, stock, etf, fund |
Note: For US stocks, use the unified exchange code ‘US‘ which includes NYSE, NASDAQ, NYSE ARCA, and OTC markets. Or use separate codes for US exchanges: ‘NYSE’, ‘NASDAQ’, ‘BATS’, ‘OTCQB’, ‘PINK’, ‘OTCQX’, ‘OTCMKTS’, ‘NMFQS’, ‘NYSE MKT’,’OTCBB’, ‘OTCGREY’, ‘BATS’, ‘OTC’.
Response Fields for Ticker List
Field | Description |
---|---|
Code | Ticker symbol |
Name | Full company or instrument name |
Country | Country of listing |
Exchange | Exchange code |
Currency | Trading currency |
Type | Type of asset (e.g. Common Stock, ETF, Fund) |
Isin | International Securities Identification Number (if available) |
Example Response (Snippet for Ticker List for WAR exchange)
{
"Code": "CDR",
"Name": "CD PROJEKT SA",
"Country": "Poland",
"Exchange": "WAR",
"Currency": "PLN",
"Type": "Common Stock",
"Isin": "PLOPTTC00011"
},
{
"Code": "PKN",
"Name": "PKN Orlen SA",
"Country": "Poland",
"Exchange": "WAR",
"Currency": "PLN",
"Type": "Common Stock",
"Isin": "PLPKN0000018"
}
Note: You can also get the full list of supported tickers on our Site.
We recommend to check our Exchange Trading Hours and Holidays API as well.