image

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

How to Search Rental Listings Using SteadyAPI Oct 14, 2026

How to Search Rental Listings Using SteadyAPI

Search rental listings by location. Show price.display, and move to the next page with offset.

How to Get a Property Estimate Using SteadyAPI Oct 14, 2026

How to Get a Property Estimate Using SteadyAPI

Current and historical value for one property id. The optional bounds are calendar dates, not year counts.

How to Get an AliExpress Description Using SteadyAPI Oct 12, 2026

How to Get an AliExpress Description Using SteadyAPI

Turn a product-detail description token into ordered text modules. The product id alone is not enough.

How to Find Vehicles for Sale Using SteadyAPI Oct 11, 2026

How to Find Vehicles for Sale Using SteadyAPI

Search vehicle listings by make, model, and ZIP. Price and mileage on each row are numbers.