{"id":8181,"date":"2026-09-18T14:51:29","date_gmt":"2026-09-18T12:51:29","guid":{"rendered":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data"},"modified":"2026-09-18T14:51:29","modified_gmt":"2026-09-18T12:51:29","slug":"review-delisted-stock-companies-data","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data","title":{"rendered":"[REVIEW] Delisted Stock Companies Data"},"content":{"rendered":"\n<p class=\"docs-content__text wp-block-paragraph\">When a company is acquired, goes bankrupt, or is otherwise removed from an exchange, its ticker stops trading \u2014 but its price history, fundamentals, dividends and splits stay in EODHD. You can list every delisted symbol on an exchange and then query it with the same endpoints you use for active tickers. This is what makes survivorship-bias-free backtesting and long-horizon research possible.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Working with delisted data is a two-step job: find the ticker in the exchange symbol list, then query the regular data endpoints with it. The traps are all in step one \u2014 the ticker you remember may now belong to a different company.<\/p>\n\n\n    <div class=\"admonition admonition--info\">\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\">Scope at a glance. Delisted symbols are listed per exchange with the delisted=1 flag, and every exchange we cover has them \u2014 60,191 on US alone, 9,587 on Frankfurt, 4,077 on the LSE (September 2026). Once you have a code, the End-of-Day, Fundamentals, Dividends, Splits and Intraday endpoints behave exactly as they do for active tickers. Listing the symbols costs 1 API call.<\/p>\n\n<\/div>\n    <\/div>\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-step-1-list-delisted-tickers\">Step 1 \u2014 List Delisted Tickers<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Use the Exchange Symbol List endpoint with delisted=1. It returns only the inactive symbols for that exchange; without the flag, or with delisted=0, you get only the active ones. The exchange code goes in the path \u2014 US covers the combined US exchanges.<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code class=\"\">https:\/\/eodhd.com\/api\/exchange-symbol-list\/{EXCHANGE}?delisted=1&amp;api_token=YOUR_API_TOKEN<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Method GET. Authentication by api_token. The default output is CSV; add fmt=json for a JSON array.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step1-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<\/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\">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\">Set to 1 to return only delisted (inactive) symbols instead of the active ones. Allowed values: 0, 1<\/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 group. Allowed values: common_stock, preferred_stock, stock, etf, fund. Any other value returns HTTP 422<\/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\">Output format. Allowed values: csv, json<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: csv)<\/em><\/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-step1-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Exchanges 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\/US?delisted=1&amp;type=common_stock&amp;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\/US?<span class='white bold'>delisted<\/span>=<span class='orange bold delisted'>1<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>common_stock<\/span>&<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\/US?<span class='white bold'>delisted<\/span>=<span class='orange bold delisted'>1<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>common_stock<\/span>&<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\/US?<span class='white bold'>delisted<\/span>=<span class='orange bold delisted'>1<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>common_stock<\/span>&<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\/US?<span class='white bold'>delisted<\/span>=<span class='orange bold delisted'>1<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>common_stock<\/span>&<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\/US?<span class='white bold'>delisted<\/span>=<span class='orange bold delisted'>1<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>common_stock<\/span>&<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    \n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step1-response-example\">Response Example<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Two rows from the delisted common stocks on US \u2014 one from 2003, one from 2023:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code class=\"language-json\">[\n  {\n    \"Code\": \"AAAB\",\n    \"Name\": \"Admiralty Bancorp Inc\",\n    \"Country\": \"USA\",\n    \"Exchange\": \"NASDAQ\",\n    \"Currency\": \"USD\",\n    \"Type\": \"Common Stock\",\n    \"Isin\": null\n  },\n  {\n    \"Code\": \"ATVI\",\n    \"Name\": \"Activision Blizzard Inc\",\n    \"Country\": \"USA\",\n    \"Exchange\": \"NASDAQ\",\n    \"Currency\": \"USD\",\n    \"Type\": \"Common Stock\",\n    \"Isin\": \"US00507V1098\"\n  }\n]<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step1-response-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Code<\/td><td>string<\/td><td>Ticker symbol code, without the exchange suffix<\/td><\/tr><tr><td>Name<\/td><td>string<\/td><td>Company or instrument name<\/td><\/tr><tr><td>Country<\/td><td>string<\/td><td>Country of the exchange<\/td><\/tr><tr><td>Exchange<\/td><td>string<\/td><td>Exchange the ticker was listed on<\/td><\/tr><tr><td>Currency<\/td><td>string<\/td><td>Trading currency<\/td><\/tr><tr><td>Type<\/td><td>string<\/td><td>Instrument type, for example Common Stock, FUND, ETF or Preferred Stock<\/td><\/tr><tr><td>Isin<\/td><td>string or null<\/td><td>ISIN code, if available<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step1-type-filter\">How the type Filter Groups Instruments<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The five allowed values are groups, not literal Type strings. On the US delisted list they break down like this:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>type=<\/th><th>Type values it returns<\/th><th>Rows on US<\/th><\/tr><\/thead><tbody><tr><td>common_stock<\/td><td>Common Stock<\/td><td>33,051<\/td><\/tr><tr><td>preferred_stock<\/td><td>Preferred Stock<\/td><td>1,241<\/td><\/tr><tr><td>stock<\/td><td>Common Stock and Preferred Stock<\/td><td>34,292<\/td><\/tr><tr><td>etf<\/td><td>ETF and ETC<\/td><td>3,014<\/td><\/tr><tr><td>fund<\/td><td>FUND and Mutual Fund<\/td><td>22,484<\/td><\/tr><tr><td>(omitted)<\/td><td>everything<\/td><td>60,191<\/td><\/tr><\/tbody><\/table><\/figure>\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 groups do not cover the whole list. 401 US rows are typed Unit, Notes, Warrant, BOND or UNIT, and no value of the type parameter returns them. Omit the parameter and filter client-side if you need those.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step1-coverage\">Delisted Coverage by Exchange<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Delisted symbols are not a US-only feature. A sample of exchange codes, measured in September 2026:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Exchange code<\/th><th>Market<\/th><th>Delisted symbols<\/th><\/tr><\/thead><tbody><tr><td>US<\/td><td>All US exchanges<\/td><td>60,191<\/td><\/tr><tr><td>F<\/td><td>Frankfurt<\/td><td>9,587<\/td><\/tr><tr><td>BE<\/td><td>Berlin<\/td><td>8,077<\/td><\/tr><tr><td>LSE<\/td><td>London<\/td><td>4,077<\/td><\/tr><tr><td>AU<\/td><td>Australia<\/td><td>2,038<\/td><\/tr><tr><td>V<\/td><td>TSX Venture<\/td><td>2,022<\/td><\/tr><tr><td>XETRA<\/td><td>Xetra<\/td><td>1,768<\/td><\/tr><tr><td>SW<\/td><td>SIX Swiss<\/td><td>1,715<\/td><\/tr><tr><td>TO<\/td><td>Toronto<\/td><td>1,656<\/td><\/tr><tr><td>PA<\/td><td>Euronext Paris<\/td><td>1,362<\/td><\/tr><tr><td>NSE<\/td><td>India NSE<\/td><td>940<\/td><\/tr><tr><td>HK<\/td><td>Hong Kong<\/td><td>806<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The full list of exchange codes is in the <a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\">Exchanges API<\/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-reused-tickers\">Reused Tickers and the _old Convention<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">This is the single biggest trap in delisted data, and it fails silently. When a ticker is freed up and later assigned to a different company, EODHD keeps the original company under the same code with an _old suffix. The bare code belongs to whoever holds it today.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>You ask for<\/th><th>You actually get<\/th><th>The company you meant is at<\/th><\/tr><\/thead><tbody><tr><td>APC.US<\/td><td>ARKO Petroleum Corp \u2014 active, NASDAQ<\/td><td>APC_old.US \u2014 Anadarko Petroleum, delisted 2019-08-08<\/td><\/tr><tr><td>STI.US<\/td><td>Solidion Technology Inc. \u2014 active, NASDAQ<\/td><td>STI_old.US \u2014 SunTrust Banks, delisted 2019-12-06<\/td><\/tr><tr><td>PCLN.US<\/td><td>Pictet Cleaner Planet ETF \u2014 active, NYSE ARCA<\/td><td>PCLN_old.US \u2014 Booking Holdings, formerly Priceline<\/td><\/tr><tr><td>BITA.US<\/td><td>not the Chinese car portal<\/td><td>BITA_old.US \u2014 Bitauto Holdings<\/td><\/tr><\/tbody><\/table><\/figure>\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\">Nothing about this is an error. A request for APC.US returns HTTP 200 and a clean price series \u2014 it just starts in 2026 and belongs to ARKO Petroleum, not Anadarko. If your backtest quietly loses a company&#8217;s history and gains a short, unrelated series, this is why.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<p class=\"docs-content__text wp-block-paragraph\">1,778 codes on the US delisted list carry the _old suffix. A few use a trailing digit instead, such as TWX1 alongside TWX. The safe pattern is to resolve the company against the delisted symbol list rather than typing a remembered ticker: search the list by Name or Isin, and use the Code it gives you.<\/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-step-2-get-the-data\">Step 2 \u2014 Get the Data for a Delisted Ticker<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Once you have the code, query the regular endpoints. A delisted ticker keeps its full history up to the delisting date, and nothing about the request changes.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Data<\/th><th>Endpoint<\/th><th>API calls<\/th><\/tr><\/thead><tbody><tr><td>End-of-day prices<\/td><td>\/api\/eod\/{TICKER}<\/td><td>1<\/td><\/tr><tr><td>Fundamentals<\/td><td>\/api\/fundamentals\/{TICKER}<\/td><td>10<\/td><\/tr><tr><td>Dividends<\/td><td>\/api\/div\/{TICKER}<\/td><td>1<\/td><\/tr><tr><td>Splits<\/td><td>\/api\/splits\/{TICKER}<\/td><td>1<\/td><\/tr><tr><td>Intraday<\/td><td>\/api\/intraday\/{TICKER}<\/td><td>5<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step2-request-example\">Request Example<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">End-of-day prices for ATVI.US \u2014 Activision Blizzard, delisted on 13 October 2023 after Microsoft completed the acquisition. The request returns 7,487 daily bars going back to 25 October 1993.<\/p>\n\n\n    <div class=\"api-key\" data-feed=\"End-Of-Day Data\">\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\/eod\/ATVI.US?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\/eod\/<span class='orange bold'>ATVI.US<\/span>?<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\/eod\/<span class='orange bold'>ATVI.US<\/span>?<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\/eod\/<span class='orange bold'>ATVI.US<\/span>?<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\/eod\/<span class='orange bold'>ATVI.US<\/span>?<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\/eod\/<span class='orange bold'>ATVI.US<\/span>?<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    \n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step2-response-example\">Response Example<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The oldest bar and the final two:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code class=\"language-json\">[\n  {\n    \"date\": \"1993-10-25\",\n    \"open\": 1.25,\n    \"high\": 1.25,\n    \"low\": 0.9375,\n    \"close\": 0.9375,\n    \"adjusted_close\": 0.0686,\n    \"volume\": 18000\n  },\n  ...\n  {\n    \"date\": \"2023-10-12\",\n    \"open\": 94.48,\n    \"high\": 94.54,\n    \"low\": 94.305,\n    \"close\": 94.42,\n    \"adjusted_close\": 94.42,\n    \"volume\": 7325799\n  },\n  {\n    \"date\": \"2023-10-13\",\n    \"open\": 94.42,\n    \"high\": 94.42,\n    \"low\": 94.42,\n    \"close\": 94.42,\n    \"adjusted_close\": 94.42,\n    \"volume\": 0\n  }\n]<\/code><\/pre>\n<\/div>\n\n    <div class=\"admonition admonition--info\">\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\">The last bar of a delisted series is usually a stub: open, high, low and close all equal the final settlement price and volume is 0. Treat it as the delisting marker, not as a trading day \u2014 a returns calculation that includes it will see a zero-volume bar, and a liquidity filter will drop it.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-step2-intraday\">Intraday Needs an Explicit Date Range<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The Intraday API defaults to a recent window. For a delisted ticker that window sits entirely after the last trade, so a request without from and to returns an empty array with HTTP 200 \u2014 which looks like missing data but is not. Pass Unix timestamps that cover the period you actually want.<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code class=\"\">https:\/\/eodhd.com\/api\/intraday\/ATVI.US?interval=5m&amp;from=1696118400&amp;to=1697241600&amp;api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">How far back intraday reaches depends on the interval, not on when the ticker was delisted. The 1-minute series goes back furthest; 5-minute and 1-hour start around October 2020. Measured on delisted tickers:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Ticker<\/th><th>Last traded<\/th><th>1m<\/th><th>5m<\/th><th>1h<\/th><\/tr><\/thead><tbody><tr><td>MYL.US<\/td><td>2020-11-18<\/td><td>yes<\/td><td>yes<\/td><td>yes<\/td><\/tr><tr><td>WCG.US<\/td><td>2020-01-23<\/td><td>yes<\/td><td>no<\/td><td>no<\/td><\/tr><tr><td>RTN.US<\/td><td>2020-04-02<\/td><td>yes<\/td><td>no<\/td><td>no<\/td><\/tr><tr><td>RHT.US<\/td><td>2019-07-08<\/td><td>yes<\/td><td>no<\/td><td>no<\/td><\/tr><tr><td>ESRX.US<\/td><td>2018-12-20<\/td><td>no<\/td><td>no<\/td><td>no<\/td><\/tr><tr><td>LEH.US<\/td><td>2008-09-17<\/td><td>no<\/td><td>no<\/td><td>no<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Full parameters and interval rules are on the <a href=\"https:\/\/eodhd.com\/financial-apis\/intraday-historical-data-api\">Intraday Historical Data API<\/a> page.<\/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-confirming-delisted\">Confirming a Ticker Is Delisted<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The Fundamentals response carries the status in its General section.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Field<\/th><th>Use it for<\/th><\/tr><\/thead><tbody><tr><td>General.IsDelisted<\/td><td>Reliable true or false. This is the field to branch on<\/td><\/tr><tr><td>General.DelistedDate<\/td><td>Approximate. Exact for cleanly processed delistings, but see the warning below<\/td><\/tr><tr><td>General.UpdatedAt<\/td><td>When the record was last touched. Not the delisting date \u2014 ATVI shows 2023-12-10, two months after it stopped trading<\/td><\/tr><\/tbody><\/table><\/figure>\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\">Do not trust DelistedDate on its own. For tickers that stop trading quietly rather than through a processed corporate action, the field is stamped with the date we flagged them, which can be today. SIVBQ.US reports a DelistedDate of 2026-09-17 but its last price bar is 2024-11-07; CITEW.US reports the same date against a last bar of 2025-01-10. The date of the final end-of-day bar is the authoritative last-traded date \u2014 take it from the EOD response and cross-check.<\/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-data-availability\">What Data Exists, by Era<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">How much you get depends on how long ago the company left the exchange. Fundamentals are the dividing line: for older delistings the endpoint still answers with HTTP 200, but returns a 2 KB stub with little more than the name and exchange, rather than the full 400 KB-plus record.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Delisted<\/th><th>End-of-day<\/th><th>Fundamentals<\/th><th>Dividends and splits<\/th><th>Intraday<\/th><\/tr><\/thead><tbody><tr><td>2019 onwards<\/td><td>Full history<\/td><td>Full record<\/td><td>Yes<\/td><td>1m; 5m and 1h from late 2020<\/td><\/tr><tr><td>2018 and earlier<\/td><td>Full history<\/td><td>Stub only<\/td><td>Rarely<\/td><td>No<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Worked examples, all verified against the live API:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Ticker<\/th><th>Delisted<\/th><th>EOD bars<\/th><th>Fundamentals<\/th><th>Dividends<\/th><th>Splits<\/th><\/tr><\/thead><tbody><tr><td>ATVI.US<\/td><td>2023-10-13<\/td><td>7,487<\/td><td>726 KB<\/td><td>14<\/td><td>8<\/td><\/tr><tr><td>TWTR.US<\/td><td>2022-10-28<\/td><td>2,259<\/td><td>284 KB<\/td><td>0<\/td><td>0<\/td><\/tr><tr><td>TIF.US<\/td><td>2021-01-08<\/td><td>8,489<\/td><td>475 KB<\/td><td>131<\/td><td>4<\/td><\/tr><tr><td>RTN.US<\/td><td>2020-04-03<\/td><td>5,600<\/td><td>449 KB<\/td><td>87<\/td><td>3<\/td><\/tr><tr><td>CELG.US<\/td><td>2019-11-22<\/td><td>8,135<\/td><td>437 KB<\/td><td>0<\/td><td>4<\/td><\/tr><tr><td>LEH.US<\/td><td>2008-09-17<\/td><td>2,695<\/td><td>2 KB stub<\/td><td>0<\/td><td>0<\/td><\/tr><tr><td>AAAB.US<\/td><td>2003-01-29<\/td><td>1,023<\/td><td>2 KB stub<\/td><td>0<\/td><td>0<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">A zero in the dividends column is not always a gap \u2014 CELG.US and TWTR.US never paid one. If you need to confirm coverage for a specific ticker before you build on it, ask <a href=\"mailto:support@eodhistoricaldata.com\">support<\/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-renamed-vs-delisted\">Renamed, Not Delisted<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">A ticker you cannot find is not always a delisting. After a merger or a rebrand the company keeps trading under a new code, and the old one disappears from the active symbol list without ever reaching the delisted one. Check the <a href=\"https:\/\/eodhd.com\/financial-apis\/us-stock-symbol-rename-history-api\">US Stock Symbol Rename History API<\/a> before you conclude that a company is gone \u2014 it maps old symbols to new ones for US exchanges, and its page carries the full parameter reference.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The same endpoint also explains where a reused ticker came from. Solidion Technology took over the STI code in February 2024, which is why SunTrust&#8217;s history now lives at STI_old.US:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code class=\"language-json\">{\n  \"exchange\": \"US\",\n  \"old_symbol\": \"NUBI\",\n  \"new_symbol\": \"STI\",\n  \"company_name\": \"Solidion Technology, Inc. Common Stock\",\n  \"effective\": \"2024-02-05\"\n}<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Three practical notes when you query it alongside delisted data. Send from and to together or send neither \u2014 sending to on its own currently returns HTTP 500, while omitting both returns the trailing twelve months, which is the useful default. The ex parameter accepts US only; any other exchange returns an empty array rather than an error. And the endpoint answers in JSON whatever you pass in fmt.<\/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-why-delisted-data-matters\">Why Delisted Data Matters<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">A dataset that holds only currently listed companies suffers from survivorship bias. The failures, the bankruptcies and the takeovers are missing, so measured historical returns are too high and backtests are too kind. On US alone that is 60,191 symbols absent from an actives-only universe \u2014 including every bank that did not survive 2008 and every company acquired since.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Rebuilding a point-in-time universe means taking the delisted list for the exchange, keeping each symbol in the universe up to its last traded bar, and letting it drop out afterwards rather than deleting it from history. For whole-exchange daily snapshots rather than per-symbol requests, the <a href=\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\">Bulk API<\/a> covers an entire exchange in one call.<\/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-errors\">Errors<\/h2>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Code<\/th><th>Meaning<\/th><th>When it happens<\/th><\/tr><\/thead><tbody><tr><td>401<\/td><td>Unauthenticated<\/td><td>The api_token is missing or invalid<\/td><\/tr><tr><td>403<\/td><td>Forbidden<\/td><td>The token is valid but not entitled to that data. The demo key returns this for every endpoint on this page<\/td><\/tr><tr><td>404<\/td><td>Exchange Not Found \/ Ticker Not Found<\/td><td>Unknown exchange code, or a symbol that exists on neither the active nor the delisted list<\/td><\/tr><tr><td>422<\/td><td>Validation error<\/td><td>An invalid type value or a malformed date. The body names the offending parameter and the allowed values<\/td><\/tr><tr><td>500<\/td><td>Server error<\/td><td>Currently returned by Symbol Change History when to is sent without from<\/td><\/tr><tr><td>200<\/td><td>Empty array<\/td><td>Not an error. Intraday without a date range, or Symbol Change History with a non-US exchange<\/td><\/tr><\/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-plans-and-api-calls\">Plans and API Calls<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">There is no separate delisted-data subscription. Listing the symbols is part of the Exchanges API, and each data endpoint is billed and gated exactly as it is for active tickers \u2014 a delisted ticker costs the same as a live one. The full accounting of calls, requests and daily limits is on the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a> page, and the live counter for your own account is on the <a href=\"https:\/\/eodhd.com\/cp\/dashboard\">dashboard<\/a>.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Step<\/th><th>Endpoint<\/th><th>API calls<\/th><th>Included in<\/th><\/tr><\/thead><tbody><tr><td>List delisted symbols<\/td><td>Exchange Symbol List<\/td><td>1<\/td><td>All plans<\/td><\/tr><tr><td>Price history<\/td><td>End-of-Day<\/td><td>1<\/td><td>All-In-One, EOD Historical Data, EOD+Intraday, Free (1 year only)<\/td><\/tr><tr><td>Fundamentals<\/td><td>Fundamentals<\/td><td>10<\/td><td>All-In-One, Fundamentals Data Feed<\/td><\/tr><tr><td>Dividends, splits<\/td><td>Dividends, Splits<\/td><td>1 each<\/td><td>All-In-One, EOD Historical Data, EOD+Intraday, Free (1 year only)<\/td><\/tr><tr><td>Intraday bars<\/td><td>Intraday<\/td><td>5<\/td><td>All-In-One, EOD+Intraday All World Extended<\/td><\/tr><tr><td>Renames<\/td><td>Symbol Change History<\/td><td>1<\/td><td>All plans<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n    <div class=\"admonition admonition--info\">\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\">The free plan is a poor fit for this particular job. It caps history at one year and allows 20 API calls a day, so you can list the delisted symbols but cannot pull the history of anything that stopped trading more than a year ago \u2014 which is most of the list. Full limits are on the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a> page.<\/p>\n\n<\/div>\n    <\/div>\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-related-apis\">Related APIs<\/h2>\n\n\n\n<ul class=\"docs-content__list wp-block-list\">\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\">Exchanges API<\/a> \u2014 every exchange code, and the active symbol lists the delisted flag toggles away from.<\/li>\n\n\n\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/us-stock-symbol-rename-history-api\">US Stock Symbol Rename History API<\/a> \u2014 full reference for the rename feed, including its own parameters and response fields.<\/li>\n\n\n\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day Historical Data API<\/a> \u2014 periods, date ranges and the adjustment rules behind the price series.<\/li>\n\n\n\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds\">Fundamental Data API<\/a> \u2014 everything in the Fundamentals record beyond the General section.<\/li>\n\n\n\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\">Splits and Dividends API<\/a> \u2014 corporate actions in detail, with their exact dates and ratios.<\/li>\n\n\n\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/intraday-historical-data-api\">Intraday Historical Data API<\/a> \u2014 intervals, history depth and the Unix timestamp format used above.<\/li>\n\n\n\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\">Bulk API<\/a> \u2014 whole-exchange daily snapshots when per-symbol requests are too slow.<\/li>\n\n\n\n<li><a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a> \u2014 the daily call budget and the per-minute request cap.<\/li>\n<\/ul>\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>When a company is acquired, goes bankrupt, or is otherwise removed from an exchange, its ticker stops trading \u2014 but its price history, fundamentals, dividends and splits stay in EODHD. You can list every delisted symbol on an exchange and then query it with the same endpoints you use for active tickers. This is what [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","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":[1],"tags":[],"class_list":["post-8181","post","type-post","status-publish","format-standard","hentry","category-general-questions"],"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>Delisted Stocks API \u2014 List, Prices &amp; Fundamentals | EODHD<\/title>\n<meta name=\"description\" content=\"Get the list of delisted stocks for any exchange \u2014 60,000+ on US alone \u2014 then pull their full price history, fundamentals, dividends and splits by ticker.\" \/>\n<meta name=\"robots\" content=\"noindex, nofollow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[REVIEW] Delisted Stock Companies Data\" \/>\n<meta property=\"og:description\" content=\"Get the list of delisted stocks for any exchange \u2014 60,000+ on US alone \u2014 then pull their full price history, fundamentals, dividends and splits by ticker.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data\" \/>\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=\"2026-09-18T12:51:29+00:00\" \/>\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=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"[REVIEW] Delisted Stock Companies Data\",\"datePublished\":\"2026-09-18T12:51:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data\"},\"wordCount\":2065,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"articleSection\":[\"7. Other Articles\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data\",\"name\":\"Delisted Stocks API \u2014 List, Prices & Fundamentals | EODHD\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2026-09-18T12:51:29+00:00\",\"description\":\"Get the list of delisted stocks for any exchange \u2014 60,000+ on US alone \u2014 then pull their full price history, fundamentals, dividends and splits by ticker.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[REVIEW] Delisted Stock Companies Data\"}]},{\"@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\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Delisted Stocks API \u2014 List, Prices & Fundamentals | EODHD","description":"Get the list of delisted stocks for any exchange \u2014 60,000+ on US alone \u2014 then pull their full price history, fundamentals, dividends and splits by ticker.","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"en_US","og_type":"article","og_title":"[REVIEW] Delisted Stock Companies Data","og_description":"Get the list of delisted stocks for any exchange \u2014 60,000+ on US alone \u2014 then pull their full price history, fundamentals, dividends and splits by ticker.","og_url":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2026-09-18T12:51:29+00:00","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data"},"author":{"name":"","@id":""},"headline":"[REVIEW] Delisted Stock Companies Data","datePublished":"2026-09-18T12:51:29+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data"},"wordCount":2065,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"articleSection":["7. Other Articles"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data","url":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data","name":"Delisted Stocks API \u2014 List, Prices & Fundamentals | EODHD","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2026-09-18T12:51:29+00:00","description":"Get the list of delisted stocks for any exchange \u2014 60,000+ on US alone \u2014 then pull their full price history, fundamentals, dividends and splits by ticker.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/review-delisted-stock-companies-data#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"[REVIEW] Delisted Stock Companies Data"}]},{"@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\/"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p8NjB1-27X","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8181","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"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/comments?post=8181"}],"version-history":[{"count":0,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8181\/revisions"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=8181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=8181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=8181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}