Available with: All-In-One, Fundamentals Data Feed plans and via “Financial Events (Calendar) & News Feed” package.
Consumption: Each request consumes 10 API calls.

With our Financial Calendar data feed, we provide information about upcoming earnings, IPOs, and splits. If you are looking for an economic calendar, including an earnings calendar API and an IPOs calendar, this API is for you.

For IPOs, we provide data from January 2015 and up to 2-3 weeks into the future. For splits, we have data from January 2015 to several months into the future, with full historical data available through our Splits and Dividends API. For earnings, including the NASDAQ earnings calendar API, we provide data from the beginning and up to several months into the future, ensuring comprehensive coverage for your financial analysis needs.

Learn more about the standalone package “Financial Events (Calendar) & News Feed“, where you can also access the Financial News Feed.

Register & Get Data

Upcoming Earnings API

Basic URL to access:

https://eodhd.com/api/calendar/earnings

Parameters to add:

  • api_token: [REQUIRED] Your API token to access the API. You will receive it after registration
  • from: [OPTIONAL] Format: YYYY-MM-DD. The start date for earnings data. If not provided, today’s date will be used
  • to: [OPTIONAL] Format: YYYY-MM-DD. The end date for earnings data. If not provided, today + 7 days will be used
  • symbols: [OPTIONAL] You can request specific symbols to get historical and upcoming data. If ‘symbols’ is used, then the ‘from’ and ‘to’ parameters will be ignored. You can use one symbol: ‘AAPL.US’ or multiple symbols separated by a comma: ‘AAPL.US, MS’.
  • fmt: [OPTIONAL] Output format. Possible values are ‘csv’ for CSV output and ‘json’ for JSON output. The default value is ‘csv’.

Examples

Example of how to get all earnings from December 2, 2018, to December 6, 2018, in JSON format:

URL
cURL
PHP
Python
R
https://eodhd.com/api/calendar/earnings?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/calendar/earnings?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/calendar/earnings?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
import requests

url = f'https://eodhd.com/api/calendar/earnings?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/calendar/earnings?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}

An example to get all earnings, including historical and upcoming, for AAPL.US, MSFT.US, and AI.PA from January 2018 onwards:

URL
cURL
PHP
Python
R
https://eodhd.com/api/calendar/earnings?symbols=AAPL.US,MSFT.US,AI.PA&from=2018-01-01&api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/calendar/earnings?symbols=AAPL.US,MSFT.US,AI.PA&from=2018-01-01&api_token={YOUR_API_TOKEN}&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/calendar/earnings?symbols=AAPL.US,MSFT.US,AI.PA&from=2018-01-01&api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
import requests

url = f'https://eodhd.com/api/calendar/earnings?symbols=AAPL.US,MSFT.US,AI.PA&from=2018-01-01&api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/calendar/earnings?symbols=AAPL.US,MSFT.US,AI.PA&from=2018-01-01&api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}

Response output:

An example output in CSV format you can download here:

  • All earnings from December 2, 2018, to December 6, 2018
  • All earnings, including historical and upcoming, for AAPL.US, MSFT.US, and AI.PA

Basic URL to access:

https://eodhd.com/api/calendar/trends

Parameters to add:

  • api_token: [REQUIRED] Your API token to access the API. You will receive it after registration.
  • symbols: [REQUIRED] You can request specific symbols to get historical and upcoming data. If ‘symbols’ is used, then the ‘from’ and ‘to’ parameters will be ignored. You can use one symbol, such as ‘AAPL.US,’ or multiple symbols separated by a comma, such as ‘AAPL.US, MS’.
  • fmt: The data for trends is available only in JSON format due to a complex data structure.

Examples

An example to get all earnings trends, including historical and upcoming, for AAPL.US, MSFT.US, and AI.PA:

URL
cURL
PHP
Python
R
https://eodhd.com/api/calendar/trends?symbols=AAPL.US,MSFT.US,AI.PA&api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/calendar/trends?symbols=AAPL.US,MSFT.US,AI.PA&api_token={YOUR_API_TOKEN}&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/calendar/trends?symbols=AAPL.US,MSFT.US,AI.PA&api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
import requests

url = f'https://eodhd.com/api/calendar/trends?symbols=AAPL.US,MSFT.US,AI.PA&api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/calendar/trends?symbols=AAPL.US,MSFT.US,AI.PA&api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}

Upcoming IPOs API

Basic URL to access:

https://eodhd.com/api/calendar/ipos

Parameters

  • api_token: [REQUIRED] Your API token to access the API. You will receive it after registration.
  • from: [OPTIONAL] Format: YYYY-MM-DD. The start date for IPO data. If not provided, today’s date will be used.
  • to: [OPTIONAL] Format: YYYY-MM-DD. The end date for IPO data. If not provided, today + 7 days will be used.
  • fmt: [OPTIONAL] Output format. Possible values are ‘csv’ for CSV output and ‘json’ for JSON output. The default value is ‘csv’.

Examples

An example to get all IPOs from December 2, 2018 to December 6, 2018 in JSON format:

URL
cURL
PHP
Python
R
https://eodhd.com/api/calendar/ipos?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/calendar/ipos?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/calendar/ipos?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
import requests

url = f'https://eodhd.com/api/calendar/ipos?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/calendar/ipos?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}

Response output:

You can download an example output in CSV format here:

  • All ipos from December 2, 2018, to December 6, 2018

Some of the fields of the output are:

  • start_date – the future date of the company’s ticker’s trade start;
  • filing_date – the date when the proposed IPO was filed;
  • amended_date – the date when the original filing was amended in any way.

JSON example

Upcoming Splits API

Basic URL to access:

https://eodhd.com/api/calendar/splits

Parameters to add:

  • api_token: [REQUIRED] Your API token to access the API. You will receive it after registration.
  • from: [OPTIONAL] Format: YYYY-MM-DD. The start date for splits data. If not provided, today’s date will be used.
  • to: [OPTIONAL] Format: YYYY-MM-DD. The end date for splits data. If not provided, today + 7 days will be used.
  • fmt: OPTIONAL. Output format, possible values: ‘csv’ – for CSV output and ‘json’ – for JSON output. Default value is ‘csv’.

Examples

An example to get all splits from December 2, 2018, to December 6, 2018, in JSON format:

URL
cURL
PHP
Python
R
https://eodhd.com/api/calendar/splits?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json
curl --location "https://eodhd.com/api/calendar/splits?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/calendar/splits?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$data = curl_exec($curl);
curl_close($curl);

try {
    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);
    var_dump($data);
} catch (Exception $e) {
    echo 'Error. '.$e->getMessage();
}
import requests

url = f'https://eodhd.com/api/calendar/splits?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json'
data = requests.get(url).json()

print(data)
library(httr)
library(jsonlite)

url <- 'https://eodhd.com/api/calendar/splits?from=2018-12-02&to=2018-12-06&api_token={YOUR_API_TOKEN}&fmt=json'
response <- GET(url)

if (http_type(response) == "application/json") {
    content <- content(response, "text", encoding = "UTF-8")
    cat(content)
} else {
    cat("Error while receiving data\n")
}

Output

An example output in CSV format you can download here:

  • All splits from December 2, 2018 to December 6, 2018

Register & Get Data