Sign up & Get Data

The Economic Events Data API provides past and future events like Retail Sales, Bond Auctions, PMI Releases, and many other economic events from countries around the world. The data is available from 2020.

API Endpoint

To get economic events data, use the following URL:

URL
cURL
PHP
Python
R
Chat GPT
https://eodhd.com/api/economic-events?api_token=demo&fmt=json
curl --location "https://eodhd.com/api/economic-events?api_token=demo&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/economic-events?api_token=demo&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/economic-events?api_token=demo&fmt=json'
data = requests.get(url).json()

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

url <- 'https://eodhd.com/api/economic-events?api_token=demo&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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Request Parameters

ParameterTypeRequiredDescription
api_tokenStringYesYour API key.
fromStringNoStart date in YYYY-MM-DD format.
toStringNoEnd date in YYYY-MM-DD format.
countryStringNoCountry code in ISO 3166 format (2 characters, e.g. US, GB, JP).
comparisonStringNoComparison type: mom (month-over-month), qoq (quarter-over-quarter), yoy (year-over-year).
typeStringNoEvent type filter (e.g. &type=House%20Price%20Index).
offsetIntegerNoPagination offset. Values: 0–1000. Default: 0.
limitIntegerNoNumber of results. Values: 0–1000. Default: 50.

Response Fields

The API returns a JSON array of economic event objects. Each object contains the following fields:

FieldTypeDescription
typeStringType of economic event (e.g. “GDP Growth Rate”, “Nonfarm Payrolls”).
comparisonString or nullComparison type: “mom”, “qoq”, “yoy”, or null if not applicable.
periodString or nullPeriod associated with the event (e.g. “Q4”, “Jan”, “May”), or null if not applicable.
countryStringCountry code in ISO 3166 format (e.g. “US”, “JP”).
dateStringDate and time of the event in YYYY-MM-DD HH:MM:SS format.
actualNumber or nullActual reported value.
previousNumber or nullPrevious value for the same event.
estimateNumber or nullEstimated (forecast) value.
changeNumber or nullChange from previous value.
change_percentageNumber or nullPercentage change from previous value.

Response Example

[
  {
    "type": "Capital Expenditure",
    "comparison": "yoy",
    "period": "Q4",
    "country": "JP",
    "date": "2025-03-03 23:50:00",
    "actual": -0.2,
    "previous": 8.1,
    "estimate": 4.9,
    "change": -8.3,
    "change_percentage": -102.469
  },
  {
    "type": "Jobs/applications ratio",
    "comparison": null,
    "period": "Jan",
    "country": "JP",
    "date": "2025-03-03 23:30:00",
    "actual": 1.26,
    "previous": 1.25,
    "estimate": 1.25,
    "change": 0.01,
    "change_percentage": 0.8
  }
]

Request Examples

Get all economic events for a specific date range:

URL
cURL
PHP
Python
R
Chat GPT
https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&fmt=json
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&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/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&fmt=json'
data = requests.get(url).json()

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

url <- 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Filter by country (e.g. United States):

URL
cURL
PHP
Python
R
Chat GPT
https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&country=US&fmt=json
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&country=US&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&country=US&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/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&country=US&fmt=json'
data = requests.get(url).json()

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

url <- 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&country=US&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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Filter by comparison type (year-over-year only):

URL
cURL
PHP
Python
R
Chat GPT
https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&comparison=yoy&fmt=json
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&comparison=yoy&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&comparison=yoy&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/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&comparison=yoy&fmt=json'
data = requests.get(url).json()

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

url <- 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&comparison=yoy&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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Filter by event type:

URL
cURL
PHP
Python
R
Chat GPT
https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-03-31&type=GDP%20Growth%20Rate&fmt=json
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-03-31&type=GDP%20Growth%20Rate&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-03-31&type=GDP%20Growth%20Rate&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/economic-events?api_token=demo&from=2025-01-01&to=2025-03-31&type=GDP%20Growth%20Rate&fmt=json'
data = requests.get(url).json()

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

url <- 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-03-31&type=GDP%20Growth%20Rate&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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Combine multiple filters with pagination:

URL
cURL
PHP
Python
R
Chat GPT
https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-06-30&country=US&comparison=mom&limit=10&offset=0&fmt=json
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-06-30&country=US&comparison=mom&limit=10&offset=0&fmt=json"
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-06-30&country=US&comparison=mom&limit=10&offset=0&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/economic-events?api_token=demo&from=2025-01-01&to=2025-06-30&country=US&comparison=mom&limit=10&offset=0&fmt=json'
data = requests.get(url).json()

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

url <- 'https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-06-30&country=US&comparison=mom&limit=10&offset=0&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")
}
New to coding? Our ChatGPT assistant can generate code in any language tailored to our API. Simply describe how you want to use our data, and get a working piece of code. Don’t forget to replace the API token with your own.

Try it now (it's free)!

How to use it (YouTube)

Sign up & Get Data