Skip to main content
Press ⌘K to search

Market status & calendar

US market status — whether the market is open now and the session, plus the holiday and early-close calendar for a year. All times are US Eastern (America/New_York).

/v1/market/status

Reports whether the US equity market is open right now, which session it is in, and the regular open/close times for the current day plus the next session's open and close. extendedHoursStart/extendedHoursEnd bound the pre-market (04:00 ET) through after-hours (20:00 ET, 17:00 on early-close days) window; calendarHorizon is the last date the curated exchange calendar covers — a null nextOpen/nextClose means "unknown beyond this horizon", not "none exists".

Parameters: none — this is a single market-wide snapshot.

curl "https://api.equibles.com/v1/market/status" \
  -H "Authorization: Bearer eq_your_api_key"
import requests
r = requests.get(
    "https://api.equibles.com/v1/market/status",
    headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())
const res = await fetch("https://api.equibles.com/v1/market/status", {
  headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());
{
  "asOf": "2026-07-13T21:17:51.7321587-04:00",
  "date": "2026-07-13",
  "session": "Closed",
  "isOpen": false,
  "dayKind": "RegularTradingDay",
  "holidayName": null,
  "regularOpen": "2026-07-13T09:30:00-04:00",
  "regularClose": "2026-07-13T16:00:00-04:00",
  "extendedHoursStart": "2026-07-13T04:00:00-04:00",
  "extendedHoursEnd": "2026-07-13T20:00:00-04:00",
  "nextOpen": "2026-07-14T09:30:00-04:00",
  "nextClose": "2026-07-14T16:00:00-04:00",
  "calendarHorizon": "2027-12-31",
  "timeZone": "America/New_York"
}

/v1/market/calendar

Lists every US market holiday (full closure) and early-close half day for the requested year, each flagged by its kind and whether it is a trading day, with the shortened open/close times on early-close days.

Parameters: year (calendar year to return, e.g. 2026; defaults to the current year). The calendar is curated for 2025 through 2027 — a year outside that range returns a 400.

curl "https://api.equibles.com/v1/market/calendar?year=2026" \
  -H "Authorization: Bearer eq_your_api_key"
import requests
r = requests.get(
    "https://api.equibles.com/v1/market/calendar?year=2026",
    headers={"Authorization": "Bearer eq_your_api_key"},
)
print(r.json())
const res = await fetch("https://api.equibles.com/v1/market/calendar?year=2026", {
  headers: { Authorization: "Bearer eq_your_api_key" },
});
console.log(await res.json());
{
  "data": [
    {
      "date": "2026-01-01",
      "kind": "Holiday",
      "name": "New Year's Day",
      "isTradingDay": false,
      "regularOpen": null,
      "regularClose": null
    },
    {
      "date": "2026-11-27",
      "kind": "EarlyClose",
      "name": "Day after Thanksgiving",
      "isTradingDay": true,
      "regularOpen": "09:30",
      "regularClose": "13:00"
    }
  ]
}

Try it with a real key

Every example on this page runs against the live API. A free account includes an API key and MCP access — set up in under a minute.

Get your free API key