{"id":100,"date":"2021-03-01T00:33:03","date_gmt":"2021-03-01T00:33:03","guid":{"rendered":"https:\/\/eodhd.com\/knowledgebase\/?p=100"},"modified":"2026-09-16T10:15:20","modified_gmt":"2026-09-16T08:15:20","slug":"api-splits-dividends","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends","title":{"rendered":"Corporate Actions: Splits and Dividends API"},"content":{"rendered":"\n<p class=\"docs-content__text wp-block-paragraph\">Corporate actions rewrite a price series after the fact. A dividend takes cash out of the share price on the ex-date; a split multiplies the share count and divides the price. Get either one wrong and a backtest, a yield calculation or a total-return chart is quietly wrong with it. This API gives you both histories for a single instrument in one request: every dividend with its amount, its currency and its declaration, record and payment dates, and every split with its exact ratio.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">History is deep. For the longest-running US payers the record starts in <strong>1970<\/strong> \u2014 Procter &amp; Gamble on 19 January 1970 is the earliest dividend found anywhere in our sampling, and the same floor holds for Johnson &amp; Johnson, General Electric, IBM, Exxon and Coca-Cola. That is <strong>more than fifty-five years<\/strong> and, for Coca-Cola, 226 individual payments in one response. Splits go back almost as far: Procter &amp; Gamble on 19 May 1970.<\/p>\n\n\n<!--TOC-->\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\">Both endpoints cost <strong>1 API call per request<\/strong>, whatever the date range and however many rows come back \u2014 measured directly against the request counter, with zero drift in the measurement window. Asking for one ticker&#8217;s entire fifty-five-year dividend history costs exactly as much as asking for last quarter. Take the whole history once and filter locally rather than paging by year.<\/p>\n\n<\/div>\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\">These endpoints are per-ticker. To pull every split or every dividend that landed on one date across an entire exchange, use the <a href=\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\">Bulk API<\/a>. For events that have been announced but have not happened yet, use the <a href=\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\">Calendar API<\/a> \u2014 this API is history, not schedule.<\/p>\n\n<\/div>\n    <\/div>\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\">You can try both endpoints before you have a key, using <strong>demo<\/strong> as the api_token \u2014 every request example on this page is a live one you can run as you read. The demo key is not limited to Apple: for these two feeds it covers <strong>AAPL.US, MSFT.US, AMZN.US, TSLA.US, MCD.US, VTI.US and SWPPX.US<\/strong>, with full history and no truncation \u2014 demo returns Apple dividends all the way back to 1987, the same 92 records a paid key sees. Any other ticker returns HTTP 403. The demo key is for evaluation only; it carries its own rate limit and is not a substitute for a plan.<\/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-dividends-history-api\">Dividends History API<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/div\/{SYMBOL}?api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-div-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\">SYMBOL<\/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\">Ticker in EODHD format, SYMBOL.EXCHANGE \u2014 for example AAPL.US, BMW.XETRA, SHEL.LSE or RY.TO. Exchange codes come from the Exchanges API. A ticker we do not carry returns HTTP 404 with the body Symbol not found, and that failed request is still billed as one call<\/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-div-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. Omitting it returns HTTP 401 Unauthenticated<\/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\">from<\/code>\n        \n                    <span class=\"docs-parameters__type\">date<\/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\">Start of the window, YYYY-MM-DD, inclusive. Omit it and you get the full history for the symbol<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: earliest available)<\/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\">to<\/code>\n        \n                    <span class=\"docs-parameters__type\">date<\/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\">End of the window, YYYY-MM-DD, inclusive. Works on its own \u2014 passing only to returns everything up to that date<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: latest available)<\/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\">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, either json or csv. The default is csv, and the comparison is case-sensitive: fmt=JSON in capitals silently serves CSV instead of failing. CSV also carries far less data than JSON \u2014 see the field table below<\/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-div-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Dividends Data Feed\">\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\/div\/AAPL.US?from=2026-05-01&amp;api_token=demo&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\/div\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2026-05-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/div\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2026-05-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/div\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2026-05-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/div\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2026-05-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/div\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2026-05-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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-div-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        \"date\": \"2026-05-11\",\n        \"declarationDate\": \"2026-04-30\",\n        \"recordDate\": \"2026-05-11\",\n        \"paymentDate\": \"2026-05-14\",\n        \"period\": \"Quarterly\",\n        \"value\": 0.27,\n        \"unadjustedValue\": 0.27,\n        \"currency\": \"USD\"\n    },\n    {\n        \"date\": \"2026-08-10\",\n        \"declarationDate\": \"2026-07-30\",\n        \"recordDate\": \"2026-08-10\",\n        \"paymentDate\": \"2026-08-13\",\n        \"period\": \"Quarterly\",\n        \"value\": 0.27,\n        \"unadjustedValue\": 0.27,\n        \"currency\": \"USD\"\n    }\n]<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-div-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><th>In CSV?<\/th><\/tr><\/thead><tbody>\n<tr><td>date<\/td><td>date<\/td><td><strong>Ex-dividend date<\/strong> \u2014 the day the share starts trading without the right to this payment. This is the date the from and to window filters on<\/td><td>Yes, as Date<\/td><\/tr>\n<tr><td>declarationDate<\/td><td>date or null<\/td><td>Day the board announced the dividend<\/td><td>No<\/td><\/tr>\n<tr><td>recordDate<\/td><td>date or null<\/td><td>Day the register is closed to decide who gets paid<\/td><td>No<\/td><\/tr>\n<tr><td>paymentDate<\/td><td>date or null<\/td><td>Day the cash actually reaches shareholders<\/td><td>No<\/td><\/tr>\n<tr><td>period<\/td><td>string or null<\/td><td>Payment cadence or nature. Values observed across a 20-ticker global sample: Quarterly, Final, Interim, Special and Other. Null on many funds and on older records<\/td><td>No<\/td><\/tr>\n<tr><td>value<\/td><td>number<\/td><td><strong>Split-adjusted<\/strong> amount per share, restated in today&#8217;s share terms<\/td><td>Yes, as Dividends<\/td><\/tr>\n<tr><td>unadjustedValue<\/td><td>number<\/td><td>The amount <strong>actually paid<\/strong> per share on the day, in the share count of the time<\/td><td>No<\/td><\/tr>\n<tr><td>currency<\/td><td>string<\/td><td>Currency of the payment. Not always the currency the share is quoted in \u2014 see the warning below<\/td><td>No<\/td><\/tr>\n<\/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\"><strong>CSV gives you two columns out of eight.<\/strong> The CSV response is Date and Dividends and nothing else \u2014 declaration, record and payment dates, the period label, the unadjusted amount and the currency are all JSON-only. Since csv is also the <em>default<\/em>, a request without an explicit fmt parameter silently loses six fields. Pass fmt=json in lowercase whenever you need more than the ex-date and the adjusted amount.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-adjusted-vs-unadjusted\">Adjusted versus unadjusted amounts<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Two money fields come back for every payment, and mixing them up is the most expensive mistake you can make on this endpoint. <strong>unadjustedValue<\/strong> is the historical fact: what one share received on that day. <strong>value<\/strong> is that same payment restated in today&#8217;s shares, divided by every split that has happened since.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Apple makes the arithmetic visible. Its dividend on 11 May 1987 comes back as unadjustedValue 0.12096 and value 0.00054 \u2014 a ratio of exactly <strong>224<\/strong>, which is the product of all five Apple splits since: 2 \u00d7 2 \u00d7 2 \u00d7 7 \u00d7 4. The next payment, on 10 August 1987, sits just after the first of those splits, and its ratio is <strong>112<\/strong>. Closer to the present, the payment of 8 May 2020 reads unadjustedValue 0.82 against value 0.205 \u2014 a ratio of exactly 4, the 4-for-1 split of that August \u2014 while the payment of 6 November 2020, the first one after it, has both fields at 0.205. From there to today they stay identical, because no split has happened since.<\/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\">Which one you want depends on what you are building. Use <strong>value<\/strong> when you are combining dividends with adjusted prices \u2014 a total-return series, a dividend-reinvestment backtest, a per-share income chart over decades. Use <strong>unadjustedValue<\/strong> when you are reconstructing what an account actually received, reconciling against a broker statement, or reading an old filing. Never mix an adjusted amount with an unadjusted price.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-extended-fields-coverage\">How far the extended dates reach<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Every record everywhere carries the ex-date, the amount, the unadjusted amount and the currency. The three extra dates thin out as you move away from North America. Measured over dividends since 2015 for a twenty-ticker global sample:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Market<\/th><th>Declaration<\/th><th>Record<\/th><th>Payment<\/th><th>Period<\/th><\/tr><\/thead><tbody>\n<tr><td>US stocks and ETFs \u2014 AAPL, MSFT, KO, JNJ, XOM, SPY, VTI<\/td><td>Complete<\/td><td>Complete<\/td><td>Complete<\/td><td>Complete except two ETF rows<\/td><\/tr>\n<tr><td>Canada \u2014 RY.TO<\/td><td>47 of 48<\/td><td>47 of 48<\/td><td>47 of 48<\/td><td>47 of 48<\/td><\/tr>\n<tr><td>UK and Europe \u2014 SHEL.LSE, VOD.LSE, BMW.XETRA, SAP.XETRA, AIR.PA, NESN.SW, NOVO-B.CO<\/td><td>Mostly present<\/td><td><strong>Almost always null<\/strong> (12 of 47 on SHEL, none on the rest)<\/td><td>Mostly present<\/td><td>Mostly present<\/td><\/tr>\n<tr><td>Hong Kong \u2014 0700.HK<\/td><td>12 of 14<\/td><td>None<\/td><td>12 of 14<\/td><td>12 of 14<\/td><\/tr>\n<tr><td>Australia \u2014 BHP.AU<\/td><td>None<\/td><td>None<\/td><td>Complete<\/td><td>Complete<\/td><\/tr>\n<tr><td>Brazil \u2014 PETR4.SA<\/td><td>None<\/td><td>None<\/td><td>Complete<\/td><td>None<\/td><\/tr>\n<tr><td>India and Korea \u2014 ITC.NSE, 005930.KO<\/td><td>None<\/td><td>None<\/td><td>None<\/td><td>None<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">So treat declarationDate, recordDate, paymentDate and period as optional fields rather than guaranteed ones, and null-check them before you use them in a join. Coverage is best on US and Canadian names, thinnest on the Indian and Korean exchanges.<\/p>\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\"><strong>On the LSE the dividend currency is not the quote currency.<\/strong> London tickers are quoted in pence \u2014 the Fundamentals API reports their currency as GBX \u2014 while dividends come back in <strong>pounds<\/strong>. Shell trades around 3,650 pence a share while its latest dividend reads 0.28915 GBP; AstraZeneca trades around 12,100 against a dividend of 0.795 GBP; Vodafone around 130 against 0.02044 GBP. Dividing one by the other without converting gives a yield that is wrong by a factor of <strong>100<\/strong>. Always read the currency field and compare it against the instrument&#8217;s quote currency before you divide.<\/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-historical-splits-api\">Historical Splits API<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/splits\/{SYMBOL}?api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The splits endpoint takes exactly the same parameters as the dividends endpoint \u2014 the same symbol format, the same inclusive from and to, the same case-sensitive fmt defaulting to csv \u2014 and costs the same single API call.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-splits-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Split Data Feed\">\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\/splits\/AAPL.US?from=2000-01-01&amp;api_token=demo&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\/splits\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2000-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/splits\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2000-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/splits\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2000-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/splits\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2000-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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\/splits\/<span class='orange bold'>AAPL.US<\/span>?<span class='white bold'>from<\/span>=<span class='orange bold from'>2000-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/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-splits-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        \"date\": \"2000-06-21\",\n        \"split\": \"2.000000\/1.000000\"\n    },\n    {\n        \"date\": \"2005-02-28\",\n        \"split\": \"2.000000\/1.000000\"\n    },\n    {\n        \"date\": \"2014-06-09\",\n        \"split\": \"7.000000\/1.000000\"\n    },\n    {\n        \"date\": \"2020-08-31\",\n        \"split\": \"4.000000\/1.000000\"\n    }\n]<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-splits-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><th>In CSV?<\/th><\/tr><\/thead><tbody>\n<tr><td>date<\/td><td>date<\/td><td>Ex-split date \u2014 the first session the price reflects the new share count<\/td><td>Yes, as Date<\/td><\/tr>\n<tr><td>split<\/td><td>string<\/td><td>Ratio as two fixed-point numbers separated by a slash, new shares first. See below<\/td><td>Yes, as Stock Splits<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-reading-the-split-ratio\">Reading the split ratio<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The string is <strong>new over old<\/strong>: how many shares you end up with, over how many you started with. Divide the first number by the second and you get the factor the share count is multiplied by \u2014 and the factor the price is divided by.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Ticker and date<\/th><th>split<\/th><th>What happened<\/th><\/tr><\/thead><tbody>\n<tr><td>NVDA.US, 10 June 2024<\/td><td>10.000000\/1.000000<\/td><td>10-for-1 forward split: ten new shares for each old one<\/td><\/tr>\n<tr><td>TSLA.US, 31 August 2020<\/td><td>5.000000\/1.000000<\/td><td>5-for-1 forward split<\/td><\/tr>\n<tr><td>NVDA.US, 11 September 2007<\/td><td>3.000000\/2.000000<\/td><td>3-for-2: the share count rises by half<\/td><\/tr>\n<tr><td>GE.US, 2 August 2021<\/td><td>1.000000\/8.000000<\/td><td><strong>Reverse<\/strong> 1-for-8: eight old shares become one<\/td><\/tr>\n<tr><td>C.US, 9 May 2011<\/td><td>1.000000\/10.000000<\/td><td>Reverse 1-for-10<\/td><\/tr>\n<tr><td>AIG.US, 1 July 2009<\/td><td>1.000000\/20.000000<\/td><td>Reverse 1-for-20<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">A numerator larger than the denominator is a forward split; smaller is a reverse split.<\/p>\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\"><strong>Do not assume the ratio is a tidy pair of small integers.<\/strong> The same field also carries stock dividends, spin-off adjustments and capital reorganisations, and those produce ratios that look nothing like 2-for-1. Real examples from the feed: GE.US on 26 February 2019 returns 104.000000\/100.000000, and again 1281.000000\/1000.000000 on 4 January 2023; Ford on 8 April 1998 returns 10000.000000\/6641.000000 and on 3 August 2000 returns 1748175.000000\/1000000.000000; BMW.XETRA on 23 August 1999 returns 71371.000000\/2745.000000. Parse the string by splitting on the slash and dividing the two numbers as floats. Pattern-matching for a leading integer, or reading only the numerator, will corrupt your adjustment factors.<\/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-dates-formats-errors\">Dates, formats and error handling<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Both endpoints share one date parser and one error surface. The behaviour below was measured on both.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\"><strong>Both bounds are inclusive.<\/strong> Apple&#8217;s dividend of 11 May 2026 is returned by a request with from and to both set to 2026-05-11, and disappears when both are moved to 2026-05-12.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\"><strong>The date parser is lenient, and that is the danger.<\/strong> Values like 2020\/01\/01, 20200101, 2020-1-1 and 2020-01-01T00:00:00 are all accepted and all resolve to 1 January 2020. But a value it cannot read is not rejected either \u2014 it silently produces an <strong>empty array with HTTP 200<\/strong>. A US-style from=01\/01\/2020 returns no rows at all, and so does the impossible from=2020-13-45. There is no validation error to catch, so a date-format bug in your client looks exactly like a company that never paid a dividend.<\/p>\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\">An empty array is ambiguous and it is worth knowing the four things it can mean: the company genuinely has no such events (Tesla and Berkshire Hathaway both return an empty dividend array), the window you asked for contains none (Alphabet returns nothing for dividends before 2024), the instrument has no corporate actions by nature (crypto, forex, indices and government bonds all return an empty array rather than an error), or <strong>your date failed to parse<\/strong>. Only the last of those is a bug on your side, and the response looks identical in all four cases. Validate your dates before you send them.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-status-codes\">Status codes<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Code<\/th><th>Body<\/th><th>When<\/th><\/tr><\/thead><tbody>\n<tr><td>200<\/td><td>Array of records, or an empty array<\/td><td>Success. An empty array is a success, not an error<\/td><\/tr>\n<tr><td>401<\/td><td>Unauthenticated<\/td><td>The api_token parameter is missing<\/td><\/tr>\n<tr><td>403<\/td><td>Forbidden<\/td><td>Your plan or your token does not cover this ticker \u2014 this is what the demo token returns outside its allowed list<\/td><\/tr>\n<tr><td>404<\/td><td>Symbol not found<\/td><td>The ticker is not in our database. Still billed as one API call<\/td><\/tr>\n<\/tbody><\/table><\/figure>\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-coverage-and-history\">Coverage and depth of history<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Both feeds follow the equity universe: stocks and funds on the exchanges listed by the <a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\">Exchanges API<\/a>, across the US, Canada, Europe, Asia, Australia and Latin America. ETFs and mutual funds are included and distribute normally \u2014 Vanguard Total Stock Market pays back to 2001 in the feed, and the SPDR S&amp;P 500 ETF returns a full record set. Instruments that cannot have corporate actions \u2014 crypto, forex, indices, government bonds \u2014 return an empty array rather than an error, which makes them safe to include in a bulk loop.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">On depth, nothing in our sampling predates <strong>1970<\/strong>, and several of the oldest US payers start within the first half of that year, which suggests the dataset floor rather than the companies&#8217; own first payments. Typical full histories: Coca-Cola 226 dividends from June 1970, Johnson &amp; Johnson 227 from February 1970, McDonald&#8217;s 208 from May 1976, Apple 92 from May 1987, Microsoft 91 from February 2003.<\/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\">Corporate actions are rarely the whole job. Prices for the same instrument, already split- and dividend-adjusted in the adjusted_close field, come from the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day API<\/a> at one call per ticker \u2014 if all you need is an adjusted series, you may not need this API at all; you need it when you want the events themselves. Every split and every dividend across a whole exchange on a single date is the <a href=\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\">Bulk API<\/a>, at 100 calls per exchange. Events that are announced but still ahead \u2014 including forthcoming ex-dates \u2014 are in the <a href=\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\">Calendar API<\/a>.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">For payout ratios, dividend yield and the rest of the company picture, see <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds\">Fundamental Data<\/a> \u2014 and note that its General.CurrencyCode field is what tells you whether a quote is in pence or pounds. To find valid exchange codes and tickers, use the <a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\">Exchanges API<\/a>. To see how the one-call charge sits against your daily allowance, see <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a>.<\/p>\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>Corporate actions rewrite a price series after the fact. A dividend takes cash out of the share price on the ex-date; a split multiplies the share count and divides the price. Get either one wrong and a backtest, a yield calculation or a total-return chart is quietly wrong with it. This API gives you both [&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":[2],"tags":[],"class_list":["post-100","post","type-post","status-publish","format-standard","hentry","category-historical-prices-live-data-apis"],"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>Corporate Actions API: Dividend &amp; Split History Since 1970<\/title>\n<meta name=\"description\" content=\"Global dividend and stock split history back to 1970 \u2014 ex, declaration, record and payment dates, amounts, currency and exact ratios. Demo key, no signup.\" \/>\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\/api-splits-dividends\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Corporate Actions: Splits and Dividends API\" \/>\n<meta property=\"og:description\" content=\"Global dividend and stock split history back to 1970 \u2014 ex, declaration, record and payment dates, amounts, currency and exact ratios. Demo key, no signup.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\" \/>\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-03-01T00:33:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T08:15:20+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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\"},\"author\":{\"name\":\"EOD Historical Data Support\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\"},\"headline\":\"Corporate Actions: Splits and Dividends API\",\"datePublished\":\"2021-03-01T00:33:03+00:00\",\"dateModified\":\"2026-09-16T08:15:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\"},\"wordCount\":2044,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"articleSection\":[\"1. Market Data APIs\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\",\"name\":\"Corporate Actions API: Dividend & Split History Since 1970\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2021-03-01T00:33:03+00:00\",\"dateModified\":\"2026-09-16T08:15:20+00:00\",\"description\":\"Global dividend and stock split history back to 1970 \u2014 ex, declaration, record and payment dates, amounts, currency and exact ratios. Demo key, no signup.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Corporate Actions: Splits and Dividends API\"}]},{\"@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":"Corporate Actions API: Dividend & Split History Since 1970","description":"Global dividend and stock split history back to 1970 \u2014 ex, declaration, record and payment dates, amounts, currency and exact ratios. Demo key, no signup.","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\/api-splits-dividends","og_locale":"en_US","og_type":"article","og_title":"Corporate Actions: Splits and Dividends API","og_description":"Global dividend and stock split history back to 1970 \u2014 ex, declaration, record and payment dates, amounts, currency and exact ratios. Demo key, no signup.","og_url":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2021-03-01T00:33:03+00:00","article_modified_time":"2026-09-16T08:15:20+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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends"},"author":{"name":"EOD Historical Data Support","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415"},"headline":"Corporate Actions: Splits and Dividends API","datePublished":"2021-03-01T00:33:03+00:00","dateModified":"2026-09-16T08:15:20+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends"},"wordCount":2044,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"articleSection":["1. Market Data APIs"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends","url":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends","name":"Corporate Actions API: Dividend & Split History Since 1970","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2021-03-01T00:33:03+00:00","dateModified":"2026-09-16T08:15:20+00:00","description":"Global dividend and stock split history back to 1970 \u2014 ex, declaration, record and payment dates, amounts, currency and exact ratios. Demo key, no signup.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/api-splits-dividends"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"Corporate Actions: Splits and Dividends API"}]},{"@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-1C","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/100","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=100"}],"version-history":[{"count":43,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"predecessor-version":[{"id":8170,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/100\/revisions\/8170"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}