{"id":141,"date":"2019-04-01T20:19:00","date_gmt":"2019-04-01T18:19:00","guid":{"rendered":"https:\/\/eodhd.com\/knowledgebase\/?p=141"},"modified":"2026-08-20T09:56:59","modified_gmt":"2026-08-20T07:56:59","slug":"bulk-api-eod-splits-dividends","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends","title":{"rendered":"Bulk API for EOD, Splits and Dividends"},"content":{"rendered":"\n<p class=\"docs-content__text wp-block-paragraph\">One request, one exchange, one day. Instead of looping over thousands of tickers to close your books, this endpoint returns the whole market in a single download \u2014 end-of-day prices, or every split, or every dividend that landed on that date. A full US day \u2014 18 August 2026, to name the one measured here \u2014 is <strong>44,376 rows<\/strong>, delivered as a 2.3 MB CSV or a 6.7 MB JSON file.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The same endpoint serves three datasets through the <strong>type<\/strong> parameter, and it reaches back decades rather than only to the last session: 2 January 1990 returns 2,197 US rows, 15 June 2000 returns 13,860, and non-US venues go back too \u2014 303 rows on XETRA for that day in 2000, 425 on the LSE for 1 March 1995. The row count is itself a record of how coverage grew.<\/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\">Cost is worth understanding before you write the loop. A whole-exchange request is a flat <strong>100 API calls<\/strong> regardless of how many rows come back, while adding the symbols parameter charges <strong>100 plus one call per ticker<\/strong> \u2014 measured at 102 calls for two tickers and 104 for four. Asking for a handful of names through this endpoint is therefore <em>more<\/em> expensive than taking the entire exchange, and far more expensive than the single call each ticker costs on the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day API<\/a>. Use symbols for convenience, not to save quota.<\/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\">Bulk downloads are not part of the Free plan, and each dataset carries the entitlement of its per-ticker equivalent: prices need the end-of-day feed, splits the splits feed, dividends the dividends feed. A plan with prices but not corporate actions will serve the first and refuse the other two. The sidebar lists the plans that include all three.<\/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-end-of-day-prices\">End-of-day prices for a whole exchange<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/eod-bulk-last-day\/US?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-path-parameter\">Path Parameter<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">exchangeCode<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Exchange code from the Exchanges API, for example US, XETRA or WAR. Four US venue codes are also accepted \u2014 NYSE, NASDAQ, BATS and AMEX \u2014 and return only that venue. An unknown code returns HTTP 404 with the body Exchange Not Found.<\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-query-parameters\">Query Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">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\">Which dataset to return. Allowed values: eod, splits, dividends. Any other value currently returns HTTP 500 with a generic error body rather than a validation error<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: eod)<\/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\">date<\/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\">The day to download, YYYY-MM-DD. Two silent fallbacks: a past non-trading day returns the previous trading day relative to the date you asked for (a Sunday gave the Friday, US Independence Day 2026 gave 2 July, Christmas 2020 gave 24 December), while a future date returns the latest available day instead. Read the date field in the response rather than assuming. An unparseable value returns HTTP 422 with a validation error naming the date field<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: last trading day)<\/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\">symbols<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Comma-separated tickers instead of the whole exchange. Suffixes are honoured and may cross exchanges \u2014 MSFT,AAPL,BMW.XETRA,SAP.F returns all four in one response, and the exchange in the path stops mattering (the same pair came back through the US, NASDAQ, XETRA and WAR paths alike). Ignored when type is splits or dividends<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">fmt<\/code>\n        \n                    <span class=\"docs-parameters__type\">enum<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Response format. Allowed values: json, csv. JSON carries fields CSV does not \u2014 prev_close, change and change_p on prices, and most of the dividend record \u2014 so pass fmt=json when you need them<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: csv)<\/em><\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">filter<\/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 extended for company name, market capitalisation and technical fields. See the extended dataset section<\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n    <div class=\"admonition admonition--note\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">The four US venue codes cover the exchange one level down, and they carve it up cleanly: on 18 August 2026 NYSE returned 5,853 rows, NASDAQ 5,365, BATS 1,512 and AMEX 284, with <strong>no ticker appearing in two of them<\/strong> and all 13,014 also present in the composite. The composite is much larger, though \u2014 44,376 rows \u2014 so <strong>31,362 tickers, OTC and similar venues among them, are reachable only through US<\/strong>. Note also that every row still reports the exchange as <strong>US<\/strong>: the venue lives in the path, not in the data. Codes outside those four behave unevenly \u2014 NMFQS, OTCQB, PINK and NYSEARCA all return 404, OTC returns HTTP 200 with an empty array, and NYSE ARCA returns a payload byte-identical to NYSE.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" 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\/eod-bulk-last-day\/US?api_token={YOUR_API_TOKEN}&amp;symbols=MSFT,AAPL&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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>MSFT,AAPL<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>MSFT,AAPL<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>MSFT,AAPL<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>MSFT,AAPL<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>MSFT,AAPL<\/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-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        \"code\": \"MSFT\",\n        \"exchange_short_name\": \"US\",\n        \"date\": \"2026-08-18\",\n        \"open\": 481.54,\n        \"high\": 484.27,\n        \"low\": 477.15,\n        \"close\": 481.63,\n        \"adjusted_close\": 481.63,\n        \"volume\": 24059700,\n        \"prev_close\": 480.35,\n        \"change\": 1.28,\n        \"change_p\": 0.2665\n    }\n]<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The CSV form of the same request is leaner \u2014 nine columns, headed <strong>Code, Ex, Date, Open, High, Low, Close, Adjusted_close, Volume<\/strong>. It is also about a third of the size: 2.3 MB against 6.7 MB for a full US day.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-response-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>JSON field<\/th><th>CSV column<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>code<\/td><td>Code<\/td><td>Ticker without the exchange suffix<\/td><\/tr>\n<tr><td>exchange_short_name<\/td><td>Ex<\/td><td>Exchange the instrument belongs to<\/td><\/tr>\n<tr><td>date<\/td><td>Date<\/td><td>Trading day the row describes \u2014 check it, it is not always the date you asked for<\/td><\/tr>\n<tr><td>open, high, low, close<\/td><td>Open, High, Low, Close<\/td><td>Prices for the session<\/td><\/tr>\n<tr><td>adjusted_close<\/td><td>Adjusted_close<\/td><td>Close adjusted for splits and dividends<\/td><\/tr>\n<tr><td>volume<\/td><td>Volume<\/td><td>Shares traded<\/td><\/tr>\n<tr><td>prev_close<\/td><td>\u2014<\/td><td>Previous session&#8217;s close. JSON only<\/td><\/tr>\n<tr><td>change<\/td><td>\u2014<\/td><td>Absolute change against the previous close. JSON only<\/td><\/tr>\n<tr><td>change_p<\/td><td>\u2014<\/td><td>Change in percent. JSON only<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-splits-and-dividends\">Splits and dividends for the day<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/eod-bulk-last-day\/US?api_token=YOUR_API_TOKEN&amp;type=splits&amp;fmt=json\nhttps:\/\/eodhd.com\/api\/eod-bulk-last-day\/US?api_token=YOUR_API_TOKEN&amp;type=dividends&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Corporate actions rather than prices, filtered to the same single day. The files are small \u2014 the whole US market produced 4 splits and 96 dividends on 18 August 2026, 328 bytes and 21 KB of JSON \u2014 so a daily reconciliation against your own position keeping is light on bandwidth, though it costs the same 100 calls as a full price download.<\/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\">The <strong>symbols<\/strong> parameter has no effect on these two datasets \u2014 the response is byte-for-byte identical with and without it, checked by checksum \u2014 yet you are still charged one extra call per ticker you name. So filter on your side, and leave symbols out: a whole-day corporate-actions request is a flat 100 calls, the same as a full price download, and naming tickers only makes it dearer.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-splits-example\">Splits<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Bulk Splits and Dividends 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\/eod-bulk-last-day\/US?api_token={YOUR_API_TOKEN}&amp;type=splits&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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>splits<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>splits<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>splits<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>splits<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>splits<\/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<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>[\n    {\n        \"code\": \"CXAI\",\n        \"exchange\": \"US\",\n        \"date\": \"2026-08-18\",\n        \"split\": \"1.000000\/50.000000\"\n    },\n    {\n        \"code\": \"LNOK\",\n        \"exchange\": \"US\",\n        \"date\": \"2026-08-18\",\n        \"split\": \"2.000000\/1.000000\"\n    }\n]<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The ratio is a single string, and the order is <strong>new shares before old<\/strong> \u2014 the same string the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\">Corporate Actions API<\/a> returns for the same event. Known splits pin it down: Tesla&#8217;s five-for-one in August 2020 reads 5.000000\/1.000000, Apple&#8217;s four-for-one 4.000000\/1.000000, and General Electric&#8217;s one-for-eight reverse split 1.000000\/8.000000. By that reading CXAI above is a one-for-fifty reverse split and LNOK a two-for-one forward split. Both directions arrive in the same feed, so compare the two sides rather than assuming a forward split. In CSV the columns are <strong>Code, Ex, Date, Split<\/strong>.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-dividends-example\">Dividends<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Bulk Splits and Dividends 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\/eod-bulk-last-day\/US?api_token={YOUR_API_TOKEN}&amp;type=dividends&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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>dividends<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>dividends<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>dividends<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>dividends<\/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-bulk-last-day\/US?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>type<\/span>=<span class='orange bold type'>dividends<\/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<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>[\n    {\n        \"code\": \"ACNDF\",\n        \"exchange\": \"US\",\n        \"date\": \"2026-08-18\",\n        \"dividend\": \"0.02000\",\n        \"currency\": \"USD\",\n        \"declarationDate\": \"2026-07-29\",\n        \"recordDate\": \"2026-08-18\",\n        \"paymentDate\": \"2026-09-23\",\n        \"period\": \"Semiannual\",\n        \"unadjustedValue\": \"0.0200000000\"\n    }\n]<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">This is where the format choice matters most. CSV gives you five columns \u2014 <strong>Code, Ex, Date, Dividend, Currency<\/strong> \u2014 while JSON adds the declaration, record and payment dates, the payment period and the unadjusted amount. Watch the naming while you are here: the dividend record is camelCase (declarationDate, paymentDate) where the price record is snake_case (adjusted_close, exchange_short_name), and splits report the venue as exchange rather than exchange_short_name. Three datasets, three conventions. If you need a dividend calendar rather than one day at a time, take the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\">Corporate Actions: Splits and Dividends API<\/a> or the <a href=\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\">Calendar API<\/a> instead.<\/p>\n\n\n\n<p class=\"docs-content__text has-text-align-center wp-block-paragraph\"><a class=\"btn btn--orange\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Sign up &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-extended-dataset\">The extended dataset<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/eod-bulk-last-day\/US?api_token=YOUR_API_TOKEN&amp;fmt=json&amp;filter=extended<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Adding filter=extended turns each row from a price bar into a small profile: the company name and instrument type, market capitalisation and beta, the previous close with the absolute and percentage change, two exponential moving averages, the 250-day high and low, and average volumes over 14, 50 and 200 days. It costs nothing extra \u2014 a whole-exchange request measured the same flat 100 calls with the filter as without it.<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>[\n    {\n        \"code\": \"AAPL\",\n        \"name\": \"Apple Inc.\",\n        \"type\": \"Common Stock\",\n        \"exchange_short_name\": \"US\",\n        \"date\": \"2026-08-18\",\n        \"MarketCapitalization\": 4524633751552,\n        \"Beta\": 1.086,\n        \"open\": 307.53,\n        \"high\": 311.49,\n        \"low\": 305.74,\n        \"close\": 310.03,\n        \"adjusted_close\": 310.03,\n        \"volume\": 46601840,\n        \"ema_50d\": 308.777,\n        \"ema_200d\": 282.161,\n        \"hi_250d\": 339.787,\n        \"lo_250d\": 224.072,\n        \"prev_close\": 305.59,\n        \"change\": 4.44,\n        \"change_p\": 1.4529,\n        \"avgvol_14d\": 54119474.285714,\n        \"avgvol_50d\": 57919922.8,\n        \"avgvol_200d\": 49631782.7\n    }\n]<\/code><\/pre>\n<\/div>\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\">Two traps live in this filter. The technical fields are computed for the <strong>last 30 days only<\/strong>, and an older date does not raise an error \u2014 it returns the row with ema_50d, ema_200d, hi_250d, lo_250d and every avgvol field set to <strong>0<\/strong>. Measured on 19 August 2026: a date 30 days back still carried real values, 31 days back returned zeros. And <strong>MarketCapitalization and Beta are not point-in-time<\/strong> \u2014 they hold today&#8217;s figure whatever date you request, identical on a row from 2024 and a row from yesterday. For historical market capitalisation use the <a href=\"https:\/\/eodhd.com\/financial-apis\/historical-market-capitalization-api\">Historical Market Capitalization API<\/a>, and for indicators over longer windows the <a href=\"https:\/\/eodhd.com\/financial-apis\/technical-indicators-api\">Technical API<\/a>.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<p class=\"docs-content__text wp-block-paragraph\">The CSV variant carries most of the same data under different names \u2014 <strong>EMA_50<\/strong>, <strong>EMA_200<\/strong>, <strong>High_250<\/strong>, <strong>Low_250<\/strong>, <strong>Change_%<\/strong>, <strong>Avgvol_14d<\/strong> \u2014 and drops two fields entirely: Beta and the instrument type are JSON-only.<\/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\">This endpoint is one day wide. For a full price history of one instrument use the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day API<\/a>, which costs a single call per ticker; for intraday bars the <a href=\"https:\/\/eodhd.com\/financial-apis\/intraday-historical-data-api\">Intraday API<\/a>. Complete split and dividend histories, with amounts and payment dates, are in the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\">Corporate Actions API<\/a>, and what is still scheduled ahead is 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\">To learn which exchange codes exist, list them with the <a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\">Exchanges API<\/a>; to see how the 100-call charge sits against your plan, see <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a>. Fundamentals for a whole exchange in one request are a separate feed \u2014 the <a href=\"https:\/\/eodhd.com\/financial-apis\/bulk-fundamentals-api-via-extended-fundamentals-plan\">Bulk Fundamentals API<\/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>One request, one exchange, one day. Instead of looping over thousands of tickers to close your books, this endpoint returns the whole market in a single download \u2014 end-of-day prices, or every split, or every dividend that landed on that date. A full US day \u2014 18 August 2026, to name the one measured here [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16],"tags":[],"class_list":["post-141","post","type-post","status-publish","format-standard","hentry","category-exchanges-stock-market-financial-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.6 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bulk API: Whole-Exchange EOD, Splits and Dividends<\/title>\n<meta name=\"description\" content=\"Download a whole exchange for one day in a single request \u2014 end-of-day prices, splits or dividends, 44,000+ US rows per call.\" \/>\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\/bulk-api-eod-splits-dividends\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bulk API for EOD, Splits and Dividends\" \/>\n<meta property=\"og:description\" content=\"Download a whole exchange for one day in a single request \u2014 end-of-day prices, splits or dividends, 44,000+ US rows per call.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-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=\"2019-04-01T18:19:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-20T07:56:59+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\/bulk-api-eod-splits-dividends#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\"},\"author\":{\"name\":\"EOD Historical Data Support\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\"},\"headline\":\"Bulk API for EOD, Splits and Dividends\",\"datePublished\":\"2019-04-01T18:19:00+00:00\",\"dateModified\":\"2026-08-20T07:56:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\"},\"wordCount\":1227,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"articleSection\":[\"3. Exchange &amp; Instruments Info\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\",\"name\":\"Bulk API: Whole-Exchange EOD, Splits and Dividends\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2019-04-01T18:19:00+00:00\",\"dateModified\":\"2026-08-20T07:56:59+00:00\",\"description\":\"Download a whole exchange for one day in a single request \u2014 end-of-day prices, splits or dividends, 44,000+ US rows per call.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bulk API for EOD, Splits and Dividends\"}]},{\"@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":"Bulk API: Whole-Exchange EOD, Splits and Dividends","description":"Download a whole exchange for one day in a single request \u2014 end-of-day prices, splits or dividends, 44,000+ US rows per call.","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\/bulk-api-eod-splits-dividends","og_locale":"en_US","og_type":"article","og_title":"Bulk API for EOD, Splits and Dividends","og_description":"Download a whole exchange for one day in a single request \u2014 end-of-day prices, splits or dividends, 44,000+ US rows per call.","og_url":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2019-04-01T18:19:00+00:00","article_modified_time":"2026-08-20T07:56:59+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\/bulk-api-eod-splits-dividends#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends"},"author":{"name":"EOD Historical Data Support","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415"},"headline":"Bulk API for EOD, Splits and Dividends","datePublished":"2019-04-01T18:19:00+00:00","dateModified":"2026-08-20T07:56:59+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends"},"wordCount":1227,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"articleSection":["3. Exchange &amp; Instruments Info"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends","url":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends","name":"Bulk API: Whole-Exchange EOD, Splits and Dividends","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2019-04-01T18:19:00+00:00","dateModified":"2026-08-20T07:56:59+00:00","description":"Download a whole exchange for one day in a single request \u2014 end-of-day prices, splits or dividends, 44,000+ US rows per call.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"Bulk API for EOD, Splits and Dividends"}]},{"@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-2h","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/141","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=141"}],"version-history":[{"count":40,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/141\/revisions"}],"predecessor-version":[{"id":8122,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/141\/revisions\/8122"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}