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:
https://eodhd.com/api/economic-events?api_token=demo&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/economic-events?api_token=demo&fmt=json"
(Sign up for free to get an API token)
$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();
}
(Sign up for free to get an API token)
import requests
url = f'https://eodhd.com/api/economic-events?api_token=demo&fmt=json'
data = requests.get(url).json()
print(data)
(Sign up for free to get an API token)
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")
}
(Sign up for free to get an API token)
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)
Try it now (it's free)!
How to use it (YouTube)
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_token | String | Yes | Your API key. |
| from | String | No | Start date in YYYY-MM-DD format. |
| to | String | No | End date in YYYY-MM-DD format. |
| country | String | No | Country code in ISO 3166 format (2 characters, e.g. US, GB, JP). |
| comparison | String | No | Comparison type: mom (month-over-month), qoq (quarter-over-quarter), yoy (year-over-year). |
| type | String | No | Event type filter (e.g. &type=House%20Price%20Index). |
| offset | Integer | No | Pagination offset. Values: 0–1000. Default: 0. |
| limit | Integer | No | Number 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:
| Field | Type | Description |
|---|---|---|
| type | String | Type of economic event (e.g. “GDP Growth Rate”, “Nonfarm Payrolls”). |
| comparison | String or null | Comparison type: “mom”, “qoq”, “yoy”, or null if not applicable. |
| period | String or null | Period associated with the event (e.g. “Q4”, “Jan”, “May”), or null if not applicable. |
| country | String | Country code in ISO 3166 format (e.g. “US”, “JP”). |
| date | String | Date and time of the event in YYYY-MM-DD HH:MM:SS format. |
| actual | Number or null | Actual reported value. |
| previous | Number or null | Previous value for the same event. |
| estimate | Number or null | Estimated (forecast) value. |
| change | Number or null | Change from previous value. |
| change_percentage | Number or null | Percentage 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:
https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&fmt=json"
(Sign up for free to get an API token)
$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();
}
(Sign up for free to get an API token)
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)
(Sign up for free to get an API token)
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")
}
(Sign up for free to get an API token)
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)
Try it now (it's free)!
How to use it (YouTube)
Filter by country (e.g. United States):
https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&country=US&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&country=US&fmt=json"
(Sign up for free to get an API token)
$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();
}
(Sign up for free to get an API token)
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)
(Sign up for free to get an API token)
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")
}
(Sign up for free to get an API token)
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)
Try it now (it's free)!
How to use it (YouTube)
Filter by comparison type (year-over-year only):
https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&comparison=yoy&fmt=json
(Sign up for free to get an API token)
curl --location "https://eodhd.com/api/economic-events?api_token=demo&from=2025-03-01&to=2025-03-07&comparison=yoy&fmt=json"
(Sign up for free to get an API token)
$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();
}
(Sign up for free to get an API token)
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)
(Sign up for free to get an API token)
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")
}
(Sign up for free to get an API token)
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)
Try it now (it's free)!
How to use it (YouTube)
Filter by event type:
https://eodhd.com/api/economic-events?api_token=demo&from=2025-01-01&to=2025-03-31&type=GDP%20Growth%20Rate&fmt=json
(Sign up for free to get an API token)
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"
(Sign up for free to get an API token)
$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();
}
(Sign up for free to get an API token)
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)
(Sign up for free to get an API token)
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")
}
(Sign up for free to get an API token)
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)
Try it now (it's free)!
How to use it (YouTube)
Combine multiple filters with pagination:
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
(Sign up for free to get an API token)
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"
(Sign up for free to get an API token)
$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();
}
(Sign up for free to get an API token)
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)
(Sign up for free to get an API token)
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")
}
(Sign up for free to get an API token)
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)
Try it now (it's free)!
How to use it (YouTube)