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:

URL
cURL
PHP
Python
R
Chat GPT
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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

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

FieldDescription
NameFull name of the exchange
CodeExchange code used in EODHD APIs
OperatingMICMIC codes for operating venues
CountryCountry where the exchange operates
CurrencyDefault trading currency
CountryISO2ISO2 country code
CountryISO3ISO3 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"
}

Sign up & Get Data

Get List of Tickers (Exchange Symbols)

Use this endpoint to get all currently active tickers listed on a specific exchange.

Endpoint:

URL
cURL
PHP
Python
R
Chat GPT
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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

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

ParameterRequiredDescription
api_tokenYesYour personal API key
delistedNoIf set to 1, includes delisted (inactive) tickers
typeNoFilter 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

FieldDescription
CodeTicker symbol
NameFull company or instrument name
CountryCountry of listing
ExchangeExchange code
CurrencyTrading currency
TypeType of asset (e.g. Common Stock, ETF, Fund)
IsinInternational 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.

Sign up & Get Data