{"id":1537,"date":"2021-01-21T21:05:15","date_gmt":"2021-01-21T21:05:15","guid":{"rendered":"https:\/\/eodhd.com\/knowledgebase\/?p=1537"},"modified":"2026-08-14T11:33:30","modified_gmt":"2026-08-14T09:33:30","slug":"exchanges-api-list-of-tickers-and-trading-hours","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours","title":{"rendered":"Exchanges API: Get List of Supported Exchanges"},"content":{"rendered":"\n<p class=\"docs-content__text wp-block-paragraph\">Two endpoints answer two questions: which exchanges EODHD covers, and what is listed on a given exchange. The first returns every supported exchange \u2014 <strong>70<\/strong> as of August 2026, and the number grows as coverage does \u2014 with its code, operating MIC, country and trading currency. The second returns either the active tickers on an exchange or the delisted ones, depending on the delisted parameter.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The exchange code you get from the first endpoint is the code you use everywhere else in the platform: as the suffix in a symbol such as <strong>CDR.WAR<\/strong>, and as the path parameter of every bulk endpoint. Start here when you are mapping our coverage onto your own instrument universe.<\/p>\n\n\n<!--TOC-->\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-list-of-supported-exchanges\">List of supported exchanges<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/exchanges-list\/?api_token=YOUR_API_TOKEN<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-parameters\">Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token. This endpoint takes no other parameters<\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n    <div class=\"admonition admonition--note\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">This endpoint always answers in JSON. Unlike the ticker endpoint below, it has no fmt parameter \u2014 passing fmt=csv is accepted and ignored, and the response is still JSON.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-request-example\">Request Example<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">    <div class=\"api-key\" data-feed=\"Exchanges List API\">\n                <div class=\"api-key__topbar\">\n            <div class=\"api-key__tablist\" role=\"tablist\">\n                                                                        <button\n                        class=\"api-key__tab api-key__tab--active\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"url\"                    >URL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"curl\"                    >cURL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"php\"                    >PHP<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"python\"                    >Python<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"r\"                    >R<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"chatgpt\" data-actions=\"false\"                    >Chat GPT<\/button>\n                                                <\/div>\n            <div class=\"api-key__actions\">\n                <button class=\"api-key__btn api-key__btn--copy\" type=\"button\" aria-label=\"Copy\">\n                    <svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" class=\"api-key__btn-icon api-key__btn-icon--default\"><use xlink:href=\"\/img\/icons\/copy.svg#copy\"\/><\/svg>\n                    <img decoding=\"async\" class=\"api-key__btn-icon api-key__btn-icon--success\" src=\"\/img\/approve_ico.svg\" alt=\"\" width=\"14\" height=\"14\" loading=\"eager\">\n                <\/button>\n                <button class=\"api-key__btn api-key__btn--view\" type=\"button\" aria-label=\"Open in new tab\" data-url=\"https:\/\/eodhd.com\/api\/exchanges-list\/?api_token={YOUR_API_TOKEN}\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/exchanges-list\/?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/exchanges-list\/?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/exchanges-list\/?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/exchanges-list\/?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/exchanges-list\/?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    <\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-response-example\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>[\n    {\n        \"Name\": \"USA Stocks\",\n        \"Code\": \"US\",\n        \"OperatingMIC\": \"XNAS, XNYS, OTCM, XCBO\",\n        \"Country\": \"USA\",\n        \"Currency\": \"USD\",\n        \"CountryISO2\": \"US\",\n        \"CountryISO3\": \"USA\"\n    },\n    {\n        \"Name\": \"London Exchange\",\n        \"Code\": \"LSE\",\n        \"OperatingMIC\": \"XLON\",\n        \"Country\": \"UK\",\n        \"Currency\": \"GBP\",\n        \"CountryISO2\": \"GB\",\n        \"CountryISO3\": \"GBR\"\n    }\n]<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-response-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>Name<\/td><td>string<\/td><td>Full name of the exchange<\/td><\/tr>\n<tr><td>Code<\/td><td>string<\/td><td>Exchange code used across the EODHD APIs \u2014 the suffix in a symbol and the path parameter of the bulk endpoints<\/td><\/tr>\n<tr><td>OperatingMIC<\/td><td>string or null<\/td><td>ISO 10383 operating MIC codes, comma-separated where a code covers several venues. Null on the virtual exchanges<\/td><\/tr>\n<tr><td>Country<\/td><td>string<\/td><td>Country the exchange operates in, or &#8220;Unknown&#8221; for a virtual exchange<\/td><\/tr>\n<tr><td>Currency<\/td><td>string<\/td><td>Default trading currency, or &#8220;Unknown&#8221; where instruments are quoted in several currencies<\/td><\/tr>\n<tr><td>CountryISO2<\/td><td>string<\/td><td>ISO 3166-1 alpha-2 country code. Empty on the virtual exchanges<\/td><\/tr>\n<tr><td>CountryISO3<\/td><td>string<\/td><td>ISO 3166-1 alpha-3 country code. Empty on the virtual exchanges<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-virtual-exchanges\">Virtual exchanges<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Five entries in that list are not physical venues. They are containers for asset classes that have no single exchange, and they behave like any other exchange code \u2014 you pass them to the ticker endpoint and you use them as symbol suffixes:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Code<\/th><th>Name in the response<\/th><th>What it holds<\/th><\/tr><\/thead><tbody>\n<tr><td>CC<\/td><td>Cryptocurrencies<\/td><td>Cryptocurrency pairs, for example BTC-USD.CC \u2014 see <a href=\"https:\/\/eodhd.com\/financial-apis\/list-supported-crypto-currencies\">List of Supported Crypto Currencies<\/a><\/td><\/tr>\n<tr><td>FOREX<\/td><td>FOREX<\/td><td>Currency pairs, for example EURUSD.FOREX \u2014 see <a href=\"https:\/\/eodhd.com\/financial-apis\/list-supported-forex-currencies\">List of Supported FOREX Currencies<\/a><\/td><\/tr>\n<tr><td>MONEY<\/td><td>Money Market Virtual Exchange<\/td><td>Reference and policy rates and other money-market benchmarks<\/td><\/tr>\n<tr><td>GBOND<\/td><td>Government Bonds<\/td><td>Government bond instruments<\/td><\/tr>\n<tr><td>EUFUND<\/td><td>Europe Fund Virtual Exchange<\/td><td>European mutual funds, quoted in EUR<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">These are the rows where Country and Currency read &#8220;Unknown&#8221; and the ISO country fields come back empty \u2014 there is no country to report for an asset class.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">All five work with the ticker endpoint exactly like a physical exchange. Their sizes differ wildly: EUFUND holds <strong>69,327<\/strong> instruments \u2014 the largest list on the platform, larger than the whole of the US \u2014 against 997 on FOREX, 240 on GBOND and 90 on MONEY.<\/p>\n\n\n\n<p class=\"docs-content__text has-text-align-center wp-block-paragraph\"><a class=\"btn btn--orange\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Sign up &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-tickers-listed-on-an-exchange\">Tickers listed on an exchange<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/exchange-symbol-list\/WAR?api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Replace WAR with any code from the exchange list \u2014 US, LSE, XETRA, CC and so on. Without a fmt parameter this endpoint returns CSV, so add <strong>fmt=json<\/strong> when you want JSON.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-path-parameter\">Path Parameter<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">exchangeCode<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Exchange code from the list above, for example US, LSE, WAR or CC. Case-insensitive<\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-query-parameters\">Query Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">fmt<\/code>\n        \n                    <span class=\"docs-parameters__type\">enum<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Response format. Allowed values: json, csv. Omitting the parameter returns CSV<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: csv)<\/em><\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">delisted<\/code>\n        \n                    <span class=\"docs-parameters__type\">integer<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Set to 1 to return delisted tickers instead of active ones. The two sets do not overlap, so request the endpoint twice if you need both<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: 0)<\/em><\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">type<\/code>\n        \n                    <span class=\"docs-parameters__type\">enum<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Filter by instrument type. Allowed values: common_stock, preferred_stock, stock, etf, fund. Case-insensitive; an unsupported value returns HTTP 422 with the allowed list<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">symbols<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Return only the listed tickers, comma-separated and without the exchange suffix, for example CDR,PKN. A cheap way to check whether specific symbols are covered<\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n    <div class=\"admonition admonition--warning\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625l6.28-10.875zM10 6a1 1 0 011 1v3a1 1 0 11-2 0V7a1 1 0 011-1zm0 8a1 1 0 100-2 1 1 0 000 2z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">The delisted parameter replaces the result set rather than extending it. A request with delisted=1 returns only tickers that are no longer traded, and none of the active ones \u2014 on the Warsaw exchange that is 417 delisted against 612 active. To build a full historical universe, call the endpoint twice and merge the two responses on the Code field.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<p class=\"docs-content__text wp-block-paragraph\">A few behaviours worth knowing before you build against this endpoint. The filters combine with AND, so symbols together with type returns only the listed codes that also match the type. Codes in the symbols list that do not exist on the exchange are skipped silently \u2014 you get the rows that matched and HTTP 200, never an error, so compare the response against your request if a missing symbol matters. An exchange code that does not exist returns HTTP 404 with &#8220;Exchange Not Found.&#8221; The values stock and common_stock behave identically. And there is no pagination: the whole exchange arrives in one response, which for US is roughly 7.7 MB of JSON and for EUFUND considerably more, so stream or buffer accordingly. CSV responses carry a header row.<\/p>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-request-example-tickers\">Request Example<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">    <div class=\"api-key\" data-feed=\"Exchanges List API\">\n                <div class=\"api-key__topbar\">\n            <div class=\"api-key__tablist\" role=\"tablist\">\n                                                                        <button\n                        class=\"api-key__tab api-key__tab--active\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"url\"                    >URL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"curl\"                    >cURL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"php\"                    >PHP<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"python\"                    >Python<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"r\"                    >R<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"chatgpt\" data-actions=\"false\"                    >Chat GPT<\/button>\n                                                <\/div>\n            <div class=\"api-key__actions\">\n                <button class=\"api-key__btn api-key__btn--copy\" type=\"button\" aria-label=\"Copy\">\n                    <svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" class=\"api-key__btn-icon api-key__btn-icon--default\"><use xlink:href=\"\/img\/icons\/copy.svg#copy\"\/><\/svg>\n                    <img decoding=\"async\" class=\"api-key__btn-icon api-key__btn-icon--success\" src=\"\/img\/approve_ico.svg\" alt=\"\" width=\"14\" height=\"14\" loading=\"eager\">\n                <\/button>\n                <button class=\"api-key__btn api-key__btn--view\" type=\"button\" aria-label=\"Open in new tab\" data-url=\"https:\/\/eodhd.com\/api\/exchange-symbol-list\/WAR?api_token={YOUR_API_TOKEN}&amp;fmt=json\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/exchange-symbol-list\/WAR?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/exchange-symbol-list\/WAR?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/exchange-symbol-list\/WAR?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/exchange-symbol-list\/WAR?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/exchange-symbol-list\/WAR?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    <\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-response-example-tickers\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>[\n    {\n        \"Code\": \"CDR\",\n        \"Name\": \"CD PROJEKT SA\",\n        \"Country\": \"Poland\",\n        \"Exchange\": \"WAR\",\n        \"Currency\": \"PLN\",\n        \"Type\": \"Common Stock\",\n        \"Isin\": \"PLOPTTC00011\"\n    },\n    {\n        \"Code\": \"PKN\",\n        \"Name\": \"PKN Orlen SA\",\n        \"Country\": \"Poland\",\n        \"Exchange\": \"WAR\",\n        \"Currency\": \"PLN\",\n        \"Type\": \"Common Stock\",\n        \"Isin\": \"PLPKN0000018\"\n    }\n]<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-response-fields-tickers\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>Code<\/td><td>string<\/td><td>Ticker code without the exchange suffix. Append the exchange code to use it elsewhere, for example CDR.WAR<\/td><\/tr>\n<tr><td>Name<\/td><td>string<\/td><td>Company or instrument name<\/td><\/tr>\n<tr><td>Country<\/td><td>string<\/td><td>Country of the listing<\/td><\/tr>\n<tr><td>Exchange<\/td><td>string<\/td><td>Exchange code. On the composite US code this is the specific venue \u2014 NYSE, NASDAQ, NYSE ARCA, BATS, PINK, NMFQS and so on<\/td><\/tr>\n<tr><td>Currency<\/td><td>string<\/td><td>Trading currency of the listing<\/td><\/tr>\n<tr><td>Type<\/td><td>string<\/td><td>Instrument type: Common Stock, Preferred Stock, ETF, FUND, Mutual Fund, Warrant, Unit, Notes and others<\/td><\/tr>\n<tr><td>Isin<\/td><td>string or null<\/td><td>ISIN where we have one. Coverage is partial \u2014 on the US exchange roughly 29% of tickers have no ISIN, mostly funds and OTC lines<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n    <div class=\"admonition admonition--tip\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">The type filter accepts fewer values than the Type field returns. Common Stock, Preferred Stock, ETF and FUND are all reachable through it, but Mutual Fund, Warrant, Unit and Notes are not \u2014 to isolate those, request the exchange without the filter and select on the Type field yourself.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-the-us-exchange-code\">The US exchange code<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">US is a composite code: one request returns every US listing across all venues \u2014 around 51,600 tickers, of which NASDAQ, NYSE, NYSE ARCA and BATS are the exchange-traded part and the rest sits on NMFQS and the OTC tiers. The Exchange field on each row tells you which venue the ticker actually belongs to, so you can filter after the fact.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">If you would rather have the venue narrow the request instead, pass it as the exchange code directly: <strong>NYSE<\/strong>, <strong>NASDAQ<\/strong>, <strong>BATS<\/strong>, <strong>OTCQB<\/strong>, <strong>PINK<\/strong>, <strong>OTCQX<\/strong>, <strong>OTCMKTS<\/strong>, <strong>NMFQS<\/strong>, <strong>NYSE MKT<\/strong>, <strong>OTCBB<\/strong>, <strong>OTCGREY<\/strong> and <strong>OTC<\/strong> all work in place of US.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-where-to-go-next\">Where to go next<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Once you have an exchange code and its tickers, the rest of the platform takes the same symbols. Trading calendars and session times come from the <a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-trading-hours-and-stock-market-holidays\">Trading Hours and Market Holidays API<\/a>. Price history comes from the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day API<\/a>, and a whole exchange at once from the <a href=\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\">Bulk API<\/a>. Company data comes from the <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds\">Fundamental Data API<\/a>.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">To resolve a name or an identifier into a ticker rather than enumerate a whole exchange, use the <a href=\"https:\/\/eodhd.com\/financial-apis\/search-api-for-stocks-etfs-mutual-funds\">Search API<\/a>. For the asset-class lists in one place, see <a href=\"https:\/\/eodhd.com\/financial-apis\/covered-tickers-eodhd\">List of Supported Tickers<\/a>, and for call costs and rate limits, <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a>. Our full coverage is also browsable at <a href=\"https:\/\/eodhd.com\/list-of-stock-markets\">list of stock markets<\/a>.<\/p>\n\n\n    <div class=\"admonition admonition--tip\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">Rendering exchanges or tickers in a product? Our Stock Market Logos API on the EODHD Marketplace returns a company logo for any ticker across 60+ equity exchanges, keyed by the same symbols you get here.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n    <div class=\"spotlight spotlight--accent spotlight--wide\">\n        <div class=\"spotlight__content\">\n            \n                            <div class=\"spotlight__title\">Compare plans and find your fit<\/div>\n            \n                            <div class=\"spotlight__desc\">Free and paid plans for individual and commercial use<\/div>\n                    <\/div>\n\n                    <a class=\"spotlight__action btn btn--white\"\n               href=\"https:\/\/eodhd.com\/pricing\"\n               target=\"_blank\"\n               rel=\"noopener\">\n                Go to Pricing            <\/a>\n            <\/div>\n    \n","protected":false},"excerpt":{"rendered":"<p>Two endpoints answer two questions: which exchanges EODHD covers, and what is listed on a given exchange. The first returns every supported exchange \u2014 70 as of August 2026, and the number grows as coverage does \u2014 with its code, operating MIC, country and trading currency. The second returns either the active tickers on an [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16],"tags":[],"class_list":["post-1537","post","type-post","status-publish","format-standard","hentry","category-exchanges-stock-market-financial-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.6 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Exchanges API: Supported Exchanges &amp; Ticker Lists | EODHD<\/title>\n<meta name=\"description\" content=\"List all 70 exchanges EODHD covers, then pull active or delisted tickers for any of them by exchange code. JSON and CSV, one API call per request.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exchanges API: Get List of Supported Exchanges\" \/>\n<meta property=\"og:description\" content=\"List all 70 exchanges EODHD covers, then pull active or delisted tickers for any of them by exchange code. JSON and CSV, one API call per request.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\" \/>\n<meta property=\"og:site_name\" content=\"Stock Price Data, Financial and Stock Market API\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eodhistoricaldata\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-21T21:05:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-14T09:33:30+00:00\" \/>\n<meta name=\"author\" content=\"EOD Historical Data Support\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:site\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"EOD Historical Data Support\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\"},\"author\":{\"name\":\"EOD Historical Data Support\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\"},\"headline\":\"Exchanges API: Get List of Supported Exchanges\",\"datePublished\":\"2021-01-21T21:05:15+00:00\",\"dateModified\":\"2026-08-14T09:33:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\"},\"wordCount\":1118,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"articleSection\":[\"3. Exchange &amp; Instruments Info\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\",\"name\":\"Exchanges API: Supported Exchanges & Ticker Lists | EODHD\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2021-01-21T21:05:15+00:00\",\"dateModified\":\"2026-08-14T09:33:30+00:00\",\"description\":\"List all 70 exchanges EODHD covers, then pull active or delisted tickers for any of them by exchange code. JSON and CSV, one API call per request.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exchanges API: Get List of Supported Exchanges\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/\",\"name\":\"Historical Stock Prices and Fundamental Financial Data APIs | EODHD\",\"description\":\"End Of Day (EOD), Fundamental and Real-time\/Live Data Market API\",\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eodhd.com\/financial-apis\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\",\"name\":\"EODHD (EOD Historical Data)\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"width\":159,\"height\":82,\"caption\":\"EODHD (EOD Historical Data)\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/eodhistoricaldata\",\"https:\/\/x.com\/EOD_data\",\"https:\/\/www.reddit.com\/r\/EODHistoricalData\/\",\"https:\/\/eod-historical-data.medium.com\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\",\"name\":\"EOD Historical Data Support\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g\",\"caption\":\"EOD Historical Data Support\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Exchanges API: Supported Exchanges & Ticker Lists | EODHD","description":"List all 70 exchanges EODHD covers, then pull active or delisted tickers for any of them by exchange code. JSON and CSV, one API call per request.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours","og_locale":"en_US","og_type":"article","og_title":"Exchanges API: Get List of Supported Exchanges","og_description":"List all 70 exchanges EODHD covers, then pull active or delisted tickers for any of them by exchange code. JSON and CSV, one API call per request.","og_url":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2021-01-21T21:05:15+00:00","article_modified_time":"2026-08-14T09:33:30+00:00","author":"EOD Historical Data Support","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Written by":"EOD Historical Data Support","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours"},"author":{"name":"EOD Historical Data Support","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415"},"headline":"Exchanges API: Get List of Supported Exchanges","datePublished":"2021-01-21T21:05:15+00:00","dateModified":"2026-08-14T09:33:30+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours"},"wordCount":1118,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"articleSection":["3. Exchange &amp; Instruments Info"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours","url":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours","name":"Exchanges API: Supported Exchanges & Ticker Lists | EODHD","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2021-01-21T21:05:15+00:00","dateModified":"2026-08-14T09:33:30+00:00","description":"List all 70 exchanges EODHD covers, then pull active or delisted tickers for any of them by exchange code. JSON and CSV, one API call per request.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"Exchanges API: Get List of Supported Exchanges"}]},{"@type":"WebSite","@id":"https:\/\/eodhd.com\/financial-apis\/#website","url":"https:\/\/eodhd.com\/financial-apis\/","name":"Historical Stock Prices and Fundamental Financial Data APIs | EODHD","description":"End Of Day (EOD), Fundamental and Real-time\/Live Data Market API","publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eodhd.com\/financial-apis\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/eodhd.com\/financial-apis\/#organization","name":"EODHD (EOD Historical Data)","url":"https:\/\/eodhd.com\/financial-apis\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/","url":"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","contentUrl":"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","width":159,"height":82,"caption":"EODHD (EOD Historical Data)"},"image":{"@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eodhistoricaldata","https:\/\/x.com\/EOD_data","https:\/\/www.reddit.com\/r\/EODHistoricalData\/","https:\/\/eod-historical-data.medium.com\/"]},{"@type":"Person","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415","name":"EOD Historical Data Support","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g","caption":"EOD Historical Data Support"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p8NjB1-oN","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/1537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/comments?post=1537"}],"version-history":[{"count":84,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/1537\/revisions"}],"predecessor-version":[{"id":8106,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/1537\/revisions\/8106"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=1537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=1537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=1537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}