{"id":679,"date":"2021-03-10T13:27:25","date_gmt":"2021-03-10T13:27:25","guid":{"rendered":"https:\/\/eodhd.com\/knowledgebase\/?p=679"},"modified":"2026-08-19T10:27:27","modified_gmt":"2026-08-19T08:27:27","slug":"calendar-upcoming-earnings-ipos-and-splits","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits","title":{"rendered":"Calendar API: Upcoming Dividends, Earnings, Trends, IPOs and Splits"},"content":{"rendered":"\n<p class=\"docs-content__text wp-block-paragraph\">The Corporate Events Calendar covers the scheduled events that move a price: earnings reports, analyst estimate revisions, IPOs, stock splits and dividend dates. Five endpoints sit under the same \/api\/calendar\/ prefix and the same access right, each answering a different question, and each carrying history as well as what is still scheduled.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Endpoint<\/th><th>What it answers<\/th><th>Coverage measured in August 2026<\/th><\/tr><\/thead><tbody>\n<tr><td>\/api\/calendar\/earnings<\/td><td>Who reports when, with actual EPS against the consensus estimate<\/td><td>Back to the 1990s, and 26,414 reports already scheduled between today and the end of 2027 \u2014 dense through March 2027, thinning to a handful after that<\/td><\/tr>\n<tr><td>\/api\/calendar\/trends<\/td><td>Consensus EPS and revenue estimates, and how they have been revised<\/td><td>About 96 records per symbol for a large US name, anchored on fiscal periods from 2017 to 2027<\/td><\/tr>\n<tr><td>\/api\/calendar\/ipos<\/td><td>Filings, expected listings and priced deals<\/td><td>Continuous from February 2013, plus an isolated batch of 84 deals in early 2010. Forward visibility is short \u2014 about three weeks<\/td><\/tr>\n<tr><td>\/api\/calendar\/splits<\/td><td>Effective split and reverse-split ratios<\/td><td>Continuous from February 2013, plus 134 records in the first quarter of 2010. Announced splits reach into February 2027<\/td><\/tr>\n<tr><td>\/api\/calendar\/dividends<\/td><td>Dividend dates for a symbol or a single day<\/td><td>Deep history and forward dates both \u2014 Apple&#8217;s 92 dividend dates start on 1987-05-11, and 347 symbols already carried a date on 2026-09-15<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Those counts were measured on 18 August 2026 and grow with the feed. The calendar is part of the <strong>Fundamentals Data Feed<\/strong> and <strong>All-In-One<\/strong> plans, and is also sold on its own together with the news feed as <a href=\"https:\/\/eodhd.com\/lp\/calendar-and-news-api\">Corporate Events Calendar &amp; News Feed<\/a>. Every request across all five endpoints costs <strong>one API call<\/strong>, whatever the size of the window.<\/p>\n\n\n<!--TOC-->\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\">Read this before your first request: on the earnings and splits endpoints the <strong>symbols<\/strong> parameter narrows a date window rather than replacing it, and when you omit from and to that window silently defaults to <strong>today through today + 7 days<\/strong>. A request for a single ticker with no dates therefore comes back with an empty list \u2014 the company almost certainly has no event in the next week. Always pass from and to alongside symbols. At the other end of the scale, more than ten years between the two bounds returns HTTP 422 with &#8220;Maximum date range is 10 years&#8221; on earnings, IPOs and splits alike \u2014 though that check is skipped when symbols is present, so a symbols query can span the whole archive.<\/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-earnings\">Earnings<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/calendar\/earnings?from=2025-01-01&amp;to=2025-01-31&amp;api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Reported and upcoming earnings, one record per company and fiscal period, with the actual EPS, the consensus estimate and the surprise already worked out for you.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-earnings-parameters\">Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">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, matched against the report date. An unparseable value returns HTTP 422<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: today)<\/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. Pass from alone and to becomes from + 7 days; pass to alone and from becomes today<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: from + 7 days)<\/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\">One or more tickers in EODHD format, comma-separated, for example AAPL.US,MSFT.US,AI.PA. This filters the date window, it does not replace it \u2014 combine it with from and to<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">fmt<\/code>\n        \n                    <span class=\"docs-parameters__type\">enum<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Response format. Allowed values: json, csv. Omitting the parameter returns CSV, whose column names differ from the JSON field names \u2014 Code, Report_Date, BeforeAfterMarket<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: csv)<\/em><\/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\">A window whose end precedes its start is not rejected: it returns HTTP 200 with an empty list. A symbol that does not exist, however, returns <strong>HTTP 404<\/strong> with a body complaining about a missing &#8220;type&#8221; \u2014 a misleading message that means the ticker was not found. When you pass symbols the response echoes the symbols back instead of the from and to you used, and records are grouped by ticker; in a plain date window they arrive sorted by report date, one record per company and fiscal period, with no duplicates.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n    <div class=\"admonition admonition--warning\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625l6.28-10.875zM10 6a1 1 0 011 1v3a1 1 0 11-2 0V7a1 1 0 011-1zm0 8a1 1 0 100-2 1 1 0 000 2z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">Keep earnings windows short. Nothing here is paginated, and this is the largest of the five datasets: one year is about 120,000 records and 21 MB, and a six-year window came back as a <strong>158 MB<\/strong> payload after 45 seconds. Beyond roughly five years the request often fails outright with HTTP 500 and a bare &#8220;Error occurred&#8221; body, returned within ten seconds \u2014 the same window can succeed on one attempt and fail on the next, so treat the ten-year ceiling as a validation limit rather than a workable size. Slice long histories by month or quarter, or pass symbols to pull one company&#8217;s full record instead.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-earnings-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Corporate Events Calendar\">\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\/calendar\/earnings?symbols=AAPL.US&amp;from=2025-01-01&amp;to=2025-12-31&amp;api_token={YOUR_API_TOKEN}&amp;fmt=json\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/calendar\/earnings?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/calendar\/earnings?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/calendar\/earnings?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/calendar\/earnings?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/calendar\/earnings?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    \n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-earnings-response-example\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>{\n    \"type\": \"Earnings\",\n    \"description\": \"Historical and upcoming Earnings\",\n    \"symbols\": \"AAPL.US\",\n    \"earnings\": [\n        {\n            \"code\": \"AAPL.US\",\n            \"report_date\": \"2025-01-30\",\n            \"date\": \"2024-12-31\",\n            \"before_after_market\": \"AfterMarket\",\n            \"currency\": \"USD\",\n            \"actual\": 2.4,\n            \"estimate\": 2.34,\n            \"difference\": 0.06,\n            \"percent\": 2.5641\n        },\n        {\n            \"code\": \"AAPL.US\",\n            \"report_date\": \"2025-05-01\",\n            \"date\": \"2025-03-31\",\n            \"before_after_market\": \"AfterMarket\",\n            \"currency\": \"USD\",\n            \"actual\": 1.65,\n            \"estimate\": 1.62,\n            \"difference\": 0.03,\n            \"percent\": 1.8519\n        },\n        {\n            \"code\": \"AAPL.US\",\n            \"report_date\": \"2025-07-31\",\n            \"date\": \"2025-06-30\",\n            \"before_after_market\": \"AfterMarket\",\n            \"currency\": \"USD\",\n            \"actual\": 1.57,\n            \"estimate\": 1.43,\n            \"difference\": 0.14,\n            \"percent\": 9.7902\n        },\n        {\n            \"code\": \"AAPL.US\",\n            \"report_date\": \"2025-10-30\",\n            \"date\": \"2025-09-30\",\n            \"before_after_market\": \"AfterMarket\",\n            \"currency\": \"USD\",\n            \"actual\": 1.85,\n            \"estimate\": 1.77,\n            \"difference\": 0.08,\n            \"percent\": 4.5198\n        }\n    ]\n}<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-earnings-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>code<\/td><td>string<\/td><td>Ticker in EODHD format<\/td><\/tr>\n<tr><td>report_date<\/td><td>date<\/td><td>Day the results are announced \u2014 the date the window filters on<\/td><\/tr>\n<tr><td>date<\/td><td>date<\/td><td>End of the fiscal period the figures belong to<\/td><\/tr>\n<tr><td>before_after_market<\/td><td>string or null<\/td><td>BeforeMarket or AfterMarket, null when the timing is unknown<\/td><\/tr>\n<tr><td>currency<\/td><td>string or null<\/td><td>Reporting currency of the EPS figures<\/td><\/tr>\n<tr><td>actual<\/td><td>number or null<\/td><td>Reported EPS. Null for a report that has not happened yet<\/td><\/tr>\n<tr><td>estimate<\/td><td>number or null<\/td><td>Consensus EPS estimate, where analysts cover the name<\/td><\/tr>\n<tr><td>difference<\/td><td>number<\/td><td>actual minus estimate \u2014 but 0, not null, whenever the estimate is missing. In the default seven-day window all 1,636 records without an estimate carried difference 0 and percent null, so test estimate rather than difference before you trust a surprise of zero<\/td><\/tr>\n<tr><td>percent<\/td><td>number or null<\/td><td>Surprise in percent against the estimate<\/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-earnings-trends\">Earnings trends<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/calendar\/trends?symbols=AAPL.US&amp;api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Consensus estimates rather than results: EPS and revenue forecasts with their high, low and analyst count, plus the same EPS consensus as it stood 7, 30, 60 and 90 days ago and the count of revisions in each direction. This is the endpoint for tracking whether the street is walking a number up or down before the report lands.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The response is <strong>nested one level deeper<\/strong> than the other endpoints: trends is an array of arrays, and the <em>n<\/em>-th inner array holds the records for the <em>n<\/em>-th ticker in your symbols list. Each inner array is a history, not a snapshot \u2014 Apple returned 96 records anchored on 40 different fiscal period ends, from 2017 to 2027.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-trends-parameters\">Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">symbols<\/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\">One or more tickers in EODHD format, comma-separated. Required here \u2014 omitting it returns HTTP 422. This endpoint has no date parameters: pass from and to anyway and the response is byte-for-byte the same<\/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. CSV is impractical here \u2014 it writes one line per symbol with the whole history on it, an 81 KB row for a single large-cap name<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: csv)<\/em><\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n    <div class=\"admonition admonition--warning\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625l6.28-10.875zM10 6a1 1 0 011 1v3a1 1 0 11-2 0V7a1 1 0 011-1zm0 8a1 1 0 100-2 1 1 0 000 2z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">Every numeric value in the trends payload arrives as a <strong>string<\/strong>, padded to four decimals \u2014 &#8220;9.5347&#8221;, &#8220;40.0000&#8221;, &#8220;523204888660.00&#8221;. Cast before you compute. Null appears where a figure is genuinely missing, so a parser has to handle both a quoted number and null in the same field.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-trends-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Corporate Events Calendar\">\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\/calendar\/trends?symbols=AAPL.US&amp;api_token={YOUR_API_TOKEN}&amp;fmt=json\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/calendar\/trends?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/calendar\/trends?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/calendar\/trends?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/calendar\/trends?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/calendar\/trends?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>AAPL.US<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    \n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-trends-response-example\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>{\n    \"type\": \"Trends\",\n    \"description\": \"Historical and upcoming earning trends\",\n    \"symbols\": \"AAPL.US\",\n    \"trends\": [\n        [\n            {\n                \"code\": \"AAPL.US\",\n                \"date\": \"2027-09-30\",\n                \"period\": \"+1y\",\n                \"growth\": \"0.0804\",\n                \"earningsEstimateAvg\": \"9.5347\",\n                \"earningsEstimateLow\": \"8.2400\",\n                \"earningsEstimateHigh\": \"10.6700\",\n                \"earningsEstimateYearAgoEps\": \"8.8027\",\n                \"earningsEstimateNumberOfAnalysts\": \"40.0000\",\n                \"earningsEstimateGrowth\": \"0.0832\",\n                \"revenueEstimateAvg\": \"523204888660.00\",\n                \"revenueEstimateLow\": \"483496000000.00\",\n                \"revenueEstimateHigh\": \"594863000000.00\",\n                \"revenueEstimateYearAgoEps\": null,\n                \"revenueEstimateNumberOfAnalysts\": \"40.00\",\n                \"revenueEstimateGrowth\": \"0.0955\",\n                \"epsTrendCurrent\": \"9.5347\",\n                \"epsTrend7daysAgo\": \"9.5490\",\n                \"epsTrend30daysAgo\": \"9.6928\",\n                \"epsTrend60daysAgo\": \"9.6669\",\n                \"epsTrend90daysAgo\": \"9.6328\",\n                \"epsRevisionsUpLast7days\": \"6.0000\",\n                \"epsRevisionsUpLast30days\": \"8.0000\",\n                \"epsRevisionsDownLast30days\": \"19.0000\"\n            }\n        ]\n    ]\n}<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">One symbol, one inner array \u2014 the record above is the first of Apple&#8217;s 96, read on 18 August 2026, and the estimate fields in it move as analysts publish. It also shows what the endpoint is for: the consensus for fiscal 2027 stood at 9.5347 against 9.6928 a month earlier, with 19 analysts cutting their number in that month against 8 raising it. Ask for three tickers and the outer array holds three inner arrays, in the order you listed them.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-trends-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>code<\/td><td>Ticker in EODHD format<\/td><\/tr>\n<tr><td>date<\/td><td>Fiscal period end the estimate refers to \u2014 quarter end for a quarterly record, year end for an annual one<\/td><\/tr>\n<tr><td>period<\/td><td>Which horizon this record was: 0q current quarter, +1q next quarter, 0y current fiscal year, +1y next fiscal year. The same label repeats across many dates, because the file keeps the history<\/td><\/tr>\n<tr><td>growth, earningsEstimateGrowth, revenueEstimateGrowth<\/td><td>Growth against the comparable prior period, as a ratio rather than a percentage<\/td><\/tr>\n<tr><td>earningsEstimateAvg \/ Low \/ High<\/td><td>Consensus EPS and the range of individual estimates<\/td><\/tr>\n<tr><td>earningsEstimateYearAgoEps<\/td><td>EPS actually delivered in the comparable prior period<\/td><\/tr>\n<tr><td>earningsEstimateNumberOfAnalysts<\/td><td>How many analysts stand behind the EPS consensus<\/td><\/tr>\n<tr><td>revenueEstimateAvg \/ Low \/ High<\/td><td>Consensus revenue and the range, in the reporting currency<\/td><\/tr>\n<tr><td>revenueEstimateNumberOfAnalysts<\/td><td>Analyst count behind the revenue consensus<\/td><\/tr>\n<tr><td>revenueEstimateYearAgoEps<\/td><td>Revenue in the comparable prior period. Frequently null<\/td><\/tr>\n<tr><td>epsTrendCurrent, epsTrend7daysAgo, epsTrend30daysAgo, epsTrend60daysAgo, epsTrend90daysAgo<\/td><td>The same EPS consensus as it stood at those points \u2014 the drift is the signal<\/td><\/tr>\n<tr><td>epsRevisionsUpLast7days, epsRevisionsUpLast30days, epsRevisionsDownLast30days<\/td><td>Number of analysts who moved their EPS estimate up or down in that period<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n    <div class=\"admonition admonition--tip\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">A symbol with no analyst coverage keeps its slot as an <strong>empty inner array<\/strong> rather than disappearing, so positions stay aligned with your symbols list \u2014 an ETF or a newly filed shell comes back as an empty group next to a populated one. Watch the size: Apple alone is 71 KB of JSON and two large caps 143 KB, so batch long lists.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<p class=\"docs-content__text has-text-align-center wp-block-paragraph\"><a class=\"btn btn--orange\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Sign up &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-ipos\">IPOs<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/calendar\/ipos?from=2025-01-01&amp;to=2025-01-31&amp;api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">New listings from filing to pricing. A January 2025 window returned 161 deals \u2014 108 still expected, 49 priced and 4 amended. The same listing reappears as it moves through the process: over the first half of 2025, 93 codes turned up more than once, among them 2613.HK, expected on 7 January with no price and priced at 31.8 two days later. Records are not sorted by date, so sort on your side.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-ipos-parameters\">Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">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, matched against the expected or effective first trading date<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: today)<\/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<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: from + 7 days)<\/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. Allowed values: json, csv. JSON carries every field<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: csv)<\/em><\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n    <div class=\"admonition admonition--note\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">This endpoint takes no <strong>symbols<\/strong> parameter. Passing one is accepted and silently ignored \u2014 you get the date window back, not the company you asked for. Filter by code on your side, or look the listing up in the <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds\">Fundamental Data API<\/a> once it trades.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-ipos-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Corporate Events Calendar\">\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\/calendar\/ipos?from=2025-01-01&amp;to=2025-01-31&amp;api_token={YOUR_API_TOKEN}&amp;fmt=json\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/calendar\/ipos?<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-01-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/calendar\/ipos?<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-01-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/calendar\/ipos?<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-01-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/calendar\/ipos?<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-01-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/calendar\/ipos?<span class='white bold'>from<\/span>=<span class='orange bold from'>2025-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2025-01-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    \n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-ipos-response-example\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>{\n    \"type\": \"IPOs\",\n    \"description\": \"Historical and upcoming IPOs\",\n    \"from\": \"2025-01-01\",\n    \"to\": \"2025-01-31\",\n    \"ipos\": [\n        {\n            \"code\": \"MCW.US\",\n            \"name\": \"Mister Car Wash, Inc. Common Stock\",\n            \"exchange\": \"Nasdaq\",\n            \"currency\": \"USD\",\n            \"start_date\": \"2025-01-02\",\n            \"filing_date\": null,\n            \"amended_date\": null,\n            \"price_from\": 15,\n            \"price_to\": 17,\n            \"offer_price\": 15,\n            \"shares\": 0,\n            \"deal_type\": \"Expected\"\n        }\n    ]\n}<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-ipos-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>code<\/td><td>string<\/td><td>Ticker in EODHD format<\/td><\/tr>\n<tr><td>name<\/td><td>string or null<\/td><td>Company name as filed<\/td><\/tr>\n<tr><td>exchange<\/td><td>string or null<\/td><td>Listing venue, as a name rather than an EODHD exchange code<\/td><\/tr>\n<tr><td>currency<\/td><td>string or null<\/td><td>Offering currency. Can also be an empty string<\/td><\/tr>\n<tr><td>start_date<\/td><td>date or null<\/td><td>Expected or effective first trading date. This is the field the window filters on<\/td><\/tr>\n<tr><td>filing_date<\/td><td>date or null<\/td><td>Initial filing date, where the feed carries it<\/td><\/tr>\n<tr><td>amended_date<\/td><td>date or null<\/td><td>Most recent amended filing<\/td><\/tr>\n<tr><td>price_from, price_to<\/td><td>number<\/td><td>Indicated price range. Both are 0 before a range is set \u2014 not null<\/td><\/tr>\n<tr><td>offer_price<\/td><td>number<\/td><td>Final price. 0 until the deal prices<\/td><\/tr>\n<tr><td>shares<\/td><td>number<\/td><td>Shares offered. 0 when unknown<\/td><\/tr>\n<tr><td>deal_type<\/td><td>string<\/td><td>Where the deal stands. Four values appear: Expected, Priced, Amended and Filed \u2014 over 2024 the split was 1,180 \/ 426 \/ 102 \/ 13<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Treat 0 as &#8220;not known yet&#8221; rather than as a real price, and re-read a window you have already stored: filings get amended, and both the date and the price range can change before the first trade.<\/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-splits\">Splits<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/calendar\/splits?symbols=TSLA.US&amp;from=2010-01-01&amp;to=2030-01-01&amp;api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Splits and reverse splits by effective date, as a share-count ratio. Announced splits run well ahead of today \u2014 in August 2026 the calendar already held effective dates into February 2027.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-splits-parameters\">Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">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, matched against the effective split date<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: today)<\/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<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: from + 7 days)<\/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\">One or more tickers in EODHD format, comma-separated. Narrows the window rather than replacing it \u2014 a symbols-only request returns the next seven days for that ticker, which is normally nothing<\/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<\/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-splits-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Corporate Events Calendar\">\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\/calendar\/splits?symbols=TSLA.US&amp;from=2010-01-01&amp;to=2030-01-01&amp;api_token={YOUR_API_TOKEN}&amp;fmt=json\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/calendar\/splits?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>TSLA.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2010-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2030-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/calendar\/splits?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>TSLA.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2010-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2030-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/calendar\/splits?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>TSLA.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2010-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2030-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/calendar\/splits?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>TSLA.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2010-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2030-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/calendar\/splits?<span class='white bold'>symbols<\/span>=<span class='orange bold symbols'>TSLA.US<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>2010-01-01<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>2030-01-01<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    \n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-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    \"type\": \"Splits\",\n    \"description\": \"Historical and upcoming splits\",\n    \"from\": \"2010-01-01\",\n    \"to\": \"2030-01-01\",\n    \"symbols\": \"TSLA.US\",\n    \"splits\": [\n        {\n            \"code\": \"TSLA.US\",\n            \"split_date\": \"2020-08-31\",\n            \"optionable\": \"N\",\n            \"old_shares\": 1,\n            \"new_shares\": 5\n        },\n        {\n            \"code\": \"TSLA.US\",\n            \"split_date\": \"2022-08-25\",\n            \"optionable\": \"N\",\n            \"old_shares\": 1,\n            \"new_shares\": 3\n        }\n    ]\n}<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-splits-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>code<\/td><td>string<\/td><td>Ticker in EODHD format<\/td><\/tr>\n<tr><td>split_date<\/td><td>date<\/td><td>Effective date of the split \u2014 the date the window filters on<\/td><\/tr>\n<tr><td>optionable<\/td><td>string<\/td><td>Y or N, whether options trade on the name<\/td><\/tr>\n<tr><td>old_shares<\/td><td>number<\/td><td>Shares held before the split<\/td><\/tr>\n<tr><td>new_shares<\/td><td>number<\/td><td>Shares held after it<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Read the two counts as a ratio in the direction old to new. Tesla&#8217;s 2020 event is 1 to 5 \u2014 a five-for-one split \u2014 while a reverse split arrives the other way round, as in the 10 to 1 on Korean listing 090150.KQ. Reverse splits are not rare: 36 of the 97 events in one August 2026 week ran that way, so branch on which number is larger instead of assuming a forward split. Ratios are not always tidy either \u2014 1000 to 729 turns up on Taiwanese names \u2014 and a record can carry new_shares 0, which will divide by zero if you let it.<\/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-dividend-dates\">Dividend dates<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/calendar\/dividends?filter[symbol]=AAPL.US&amp;api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">This one is built differently from its four siblings: filters are nested under filter, paging under page, and the payload is deliberately thin \u2014 a date and a symbol, nothing else. It answers &#8220;when&#8221;, not &#8220;how much&#8221;, and it goes back a long way: Apple returns 92 dividend dates starting on 1987-05-11.<\/p>\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\">For amounts, currencies, declaration and payment dates, use the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\">Corporate Actions: Splits and Dividends API<\/a>. This endpoint answers the narrower question \u2014 which symbols have a dividend on a given day \u2014 in one call, so you know what to fetch in detail. Future dates are covered as well as past ones: 347 symbols already carried a date on 2026-09-15.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-dividends-parameters\">Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">filter[symbol]<\/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\">A single ticker in EODHD format. Either this or filter[date_eq] must be present, otherwise the request returns HTTP 422<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">filter[date_eq]<\/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\">One exact dividend date, YYYY-MM-DD \u2014 every symbol going ex-dividend that day. Required when filter[symbol] is absent<\/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[date_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\">Lower bound, inclusive. Only meaningful alongside filter[symbol]<\/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[date_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\">Upper bound, inclusive. Only meaningful alongside filter[symbol]<\/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\">page[limit]<\/code>\n        \n                    <span class=\"docs-parameters__type\">integer<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Records per page. Must be at least 1; values above the default are accepted rather than clamped, so 1001 comes back as 1001<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: 1000)<\/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\">page[offset]<\/code>\n        \n                    <span class=\"docs-parameters__type\">integer<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">How many records to skip. Follow links.next instead of computing it yourself<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: 0)<\/em><\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">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\">Ignored \u2014 this endpoint always answers in JSON, including when you ask for CSV<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: json)<\/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-dividends-request-example\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"Dividends Calendar Data\">\n                <div class=\"api-key__topbar\">\n            <div class=\"api-key__tablist\" role=\"tablist\">\n                                                                        <button\n                        class=\"api-key__tab api-key__tab--active\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"url\"                    >URL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"curl\"                    >cURL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"php\"                    >PHP<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"python\"                    >Python<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"r\"                    >R<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"chatgpt\" data-actions=\"false\"                    >Chat GPT<\/button>\n                                                <\/div>\n            <div class=\"api-key__actions\">\n                <button class=\"api-key__btn api-key__btn--copy\" type=\"button\" aria-label=\"Copy\">\n                    <svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" class=\"api-key__btn-icon api-key__btn-icon--default\"><use xlink:href=\"\/img\/icons\/copy.svg#copy\"\/><\/svg>\n                    <img decoding=\"async\" class=\"api-key__btn-icon api-key__btn-icon--success\" src=\"\/img\/approve_ico.svg\" alt=\"\" width=\"14\" height=\"14\" loading=\"eager\">\n                <\/button>\n                <button class=\"api-key__btn api-key__btn--view\" type=\"button\" aria-label=\"Open in new tab\" data-url=\"https:\/\/eodhd.com\/api\/calendar\/dividends?filter[symbol]=AAPL.US&amp;filter[date_from]=2025-01-01&amp;filter[date_to]=2025-12-31&amp;api_token={YOUR_API_TOKEN}&amp;fmt=json\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/calendar\/dividends?<span class='white bold'>filter[symbol]<\/span>=<span class='orange bold filter[symbol]'>AAPL.US<\/span>&<span class='white bold'>filter[date_from]<\/span>=<span class='orange bold filter[date_from]'>2025-01-01<\/span>&<span class='white bold'>filter[date_to]<\/span>=<span class='orange bold filter[date_to]'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/calendar\/dividends?<span class='white bold'>filter[symbol]<\/span>=<span class='orange bold filter[symbol]'>AAPL.US<\/span>&<span class='white bold'>filter[date_from]<\/span>=<span class='orange bold filter[date_from]'>2025-01-01<\/span>&<span class='white bold'>filter[date_to]<\/span>=<span class='orange bold filter[date_to]'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/calendar\/dividends?<span class='white bold'>filter[symbol]<\/span>=<span class='orange bold filter[symbol]'>AAPL.US<\/span>&<span class='white bold'>filter[date_from]<\/span>=<span class='orange bold filter[date_from]'>2025-01-01<\/span>&<span class='white bold'>filter[date_to]<\/span>=<span class='orange bold filter[date_to]'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/calendar\/dividends?<span class='white bold'>filter[symbol]<\/span>=<span class='orange bold filter[symbol]'>AAPL.US<\/span>&<span class='white bold'>filter[date_from]<\/span>=<span class='orange bold filter[date_from]'>2025-01-01<\/span>&<span class='white bold'>filter[date_to]<\/span>=<span class='orange bold filter[date_to]'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/calendar\/dividends?<span class='white bold'>filter[symbol]<\/span>=<span class='orange bold filter[symbol]'>AAPL.US<\/span>&<span class='white bold'>filter[date_from]<\/span>=<span class='orange bold filter[date_from]'>2025-01-01<\/span>&<span class='white bold'>filter[date_to]<\/span>=<span class='orange bold filter[date_to]'>2025-12-31<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>{YOUR_API_TOKEN}<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    \n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-dividends-response-example\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>{\n    \"meta\": {\n        \"total\": 4,\n        \"offset\": 0,\n        \"limit\": 1000,\n        \"symbol\": \"AAPL.US\",\n        \"date_from\": \"2025-01-01\",\n        \"date_to\": \"2025-12-31\"\n    },\n    \"data\": [\n        { \"date\": \"2025-11-10\", \"symbol\": \"AAPL.US\" },\n        { \"date\": \"2025-08-11\", \"symbol\": \"AAPL.US\" },\n        { \"date\": \"2025-05-12\", \"symbol\": \"AAPL.US\" },\n        { \"date\": \"2025-02-10\", \"symbol\": \"AAPL.US\" }\n    ],\n    \"links\": {\n        \"next\": null\n    }\n}<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-dividends-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>meta.total<\/td><td>integer<\/td><td>Matching records across all pages, not just this one<\/td><\/tr>\n<tr><td>meta.limit, meta.offset<\/td><td>integer<\/td><td>The paging you asked for, echoed back<\/td><\/tr>\n<tr><td>meta<\/td><td>object<\/td><td>Also echoes the filters you passed \u2014 only the ones you actually sent appear as keys<\/td><\/tr>\n<tr><td>data[].date<\/td><td>date<\/td><td>Dividend date<\/td><\/tr>\n<tr><td>data[].symbol<\/td><td>string<\/td><td>Ticker in EODHD format<\/td><\/tr>\n<tr><td>links.next<\/td><td>string or null<\/td><td>Ready-made URL for the next page, null on the last one<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Newest dates come first here, the opposite of the date-window endpoints. A ticker that does not exist is not an error either \u2014 you get HTTP 200 with total 0, whereas the other four endpoints answer an unknown symbol with a 404 whose body mentions a missing &#8220;type&#8221;. Both mean the same thing in practice: nothing matched.<\/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\">The calendar tells you when something happens; three other feeds tell you what it did to the numbers. Dividend and split amounts, with declaration and payment dates, live in the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-splits-dividends\">Corporate Actions: Splits and Dividends API<\/a>, and the whole market for one day at a time in the <a href=\"https:\/\/eodhd.com\/financial-apis\/bulk-api-eod-splits-dividends\">Bulk API<\/a>. Reported financials behind an earnings date are in the <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds\">Fundamental Data API<\/a>, and prices around the event in the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day API<\/a>.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">To resolve a ticker before you query, use the <a href=\"https:\/\/eodhd.com\/financial-apis\/search-api-for-stocks-etfs-mutual-funds\">Search API<\/a>; to see how requests are counted against your plan, see <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a>. Headlines around the same events come from the <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-market-financial-news-api\">Financial News API<\/a>, which ships in the same standalone package as this calendar.<\/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>The Corporate Events Calendar covers the scheduled events that move a price: earnings reports, analyst estimate revisions, IPOs, stock splits and dividend dates. Five endpoints sit under the same \/api\/calendar\/ prefix and the same access right, each answering a different question, and each carrying history as well as what is still scheduled. Endpoint What it [&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":[72],"tags":[],"class_list":["post-679","post","type-post","status-publish","format-standard","hentry","category-fundamental-and-economic-financial-data-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>Earnings Calendar API: IPOs, Splits &amp; Dividend Dates<\/title>\n<meta name=\"description\" content=\"Earnings calendar API with reported and upcoming EPS against estimates, analyst revisions, IPOs, splits and dividend dates \u2014 history from 2013.\" \/>\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\/calendar-upcoming-earnings-ipos-and-splits\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Calendar API: Upcoming Dividends, Earnings, Trends, IPOs and Splits\" \/>\n<meta property=\"og:description\" content=\"Earnings calendar API with reported and upcoming EPS against estimates, analyst revisions, IPOs, splits and dividend dates \u2014 history from 2013.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\" \/>\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-10T13:27:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-19T08:27:27+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=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\"},\"author\":{\"name\":\"EOD Historical Data Support\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\"},\"headline\":\"Calendar API: Upcoming Dividends, Earnings, Trends, IPOs and Splits\",\"datePublished\":\"2021-03-10T13:27:25+00:00\",\"dateModified\":\"2026-08-19T08:27:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\"},\"wordCount\":2224,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"articleSection\":[\"2. Fundamental &amp; Economic Data\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\",\"name\":\"Earnings Calendar API: IPOs, Splits & Dividend Dates\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2021-03-10T13:27:25+00:00\",\"dateModified\":\"2026-08-19T08:27:27+00:00\",\"description\":\"Earnings calendar API with reported and upcoming EPS against estimates, analyst revisions, IPOs, splits and dividend dates \u2014 history from 2013.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calendar API: Upcoming Dividends, Earnings, Trends, IPOs and Splits\"}]},{\"@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":"Earnings Calendar API: IPOs, Splits & Dividend Dates","description":"Earnings calendar API with reported and upcoming EPS against estimates, analyst revisions, IPOs, splits and dividend dates \u2014 history from 2013.","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\/calendar-upcoming-earnings-ipos-and-splits","og_locale":"en_US","og_type":"article","og_title":"Calendar API: Upcoming Dividends, Earnings, Trends, IPOs and Splits","og_description":"Earnings calendar API with reported and upcoming EPS against estimates, analyst revisions, IPOs, splits and dividend dates \u2014 history from 2013.","og_url":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2021-03-10T13:27:25+00:00","article_modified_time":"2026-08-19T08:27:27+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":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits"},"author":{"name":"EOD Historical Data Support","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415"},"headline":"Calendar API: Upcoming Dividends, Earnings, Trends, IPOs and Splits","datePublished":"2021-03-10T13:27:25+00:00","dateModified":"2026-08-19T08:27:27+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits"},"wordCount":2224,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"articleSection":["2. Fundamental &amp; Economic Data"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits","url":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits","name":"Earnings Calendar API: IPOs, Splits & Dividend Dates","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2021-03-10T13:27:25+00:00","dateModified":"2026-08-19T08:27:27+00:00","description":"Earnings calendar API with reported and upcoming EPS against estimates, analyst revisions, IPOs, splits and dividend dates \u2014 history from 2013.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/calendar-upcoming-earnings-ipos-and-splits#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"Calendar API: Upcoming Dividends, Earnings, Trends, IPOs and Splits"}]},{"@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-aX","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/679","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=679"}],"version-history":[{"count":77,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/679\/revisions"}],"predecessor-version":[{"id":8117,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/679\/revisions\/8117"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}