Earnings, dividends, and IPOs are company events. The economic calendar is the macro list for a day: which country releases what, at what time, and how the print compared with the consensus and the previous reading. You use it when a desk wants the day’s releases in one response, not when you want a single company’s earnings date.
Omit date and the call uses the next trade date. Pass YYYY-MM-DD when you want a specific day.
👉 To access this endpoint, you must obtain an API key: https://steadyapi.com/register
Authentication
Every call uses a Bearer token from your SteadyAPI dashboard.
Documentation:
https://docs.steadyapi.com/#authenticating-requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY'
}
Where this fits
This calendar stands on its own. It does not take a ticker from GET /v1/markets/search. Company earnings are GET /v1/markets/calendar/earnings. Dividends are GET /v1/markets/calendar/dividends. After you read a release here, a quote or news call is a separate request for a symbol you already have. Nothing in this response is a ticker.
Events for a date
Endpoint: GET /v1/markets/calendar/economic_events
Documentation:
https://docs.steadyapi.com/#stocks-options-GETapi-v1-markets-calendar-economic_events
Parameters
date— optional date,YYYY-MM-DD
The date is the only control. Leave it off to get the next trade date, which is not always today. A weekend or a holiday request still needs a YYYY-MM-DD value if you want that civil day. There is no country parameter. Filter country in your own code after the list comes back.
Python
import requests
url = "https://api.steadyapi.com/v1/markets/calendar/economic_events"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
response = requests.get(url, headers=headers, params={"date": "2023-11-30"})
response.raise_for_status()
payload = response.json()
print(payload.get("meta", {}).get("date"))
for event in payload.get("body", [])[:8]:
print(event.get("country"), event.get("eventName"), event.get("actual"), event.get("consensus"))
Annotated sample
{
"gmt": "24H",
"country": "Japan",
"eventName": "Construction Orders",
"actual": "4.2%",
"consensus": "-",
"previous": "-3.0%",
"description": "Construction Orders number checks with 50 representative construction companies in Japan."
}
Store country, eventName, actual, consensus, and previous together. gmt is the time label, and 24H means the release is not pinned to a clock time. consensus is often - when there is no estimate. description explains the series. It can contain HTML. meta.date is the day you asked for, or the next trade date when you omitted date.
Practical use
Compare actual with consensus only when consensus is a number. A dash is an empty estimate, not zero. The same is true of previous.
The list mixes every country on that date. If a desk only wants the United States, drop the other country values after the response. The endpoint will not do that filter for you.
Call it again with an explicit date when you want yesterday’s prints. Omitting date always means the next trade date, so a late-day call can land on tomorrow.
👉 Get your API key and open the calendar: https://steadyapi.com/register