Skip to content
MarketCalendars.com
Sign up

API documentation

REST API v2: trading hours, holidays and settlement days as JSON over HTTPS

Get every market's status now

GET/api/v2/status

The status of every market in one request

One request: now. A successful response counts as one request

Example

curl https://marketcalendars.com/api/v2/status \
  -H "Authorization: Bearer mc_live_..."
GET /api/v2/status200
{
  "asOf": "2026-10-26T16:04:11+00:00",
  "markets": [
    {
      "market": "nyse",
      "asOf": "2026-10-26T16:04:11+00:00",
      "timezone": "America/New_York",
      "localTime": "2026-10-26T12:04:11-04:00",
      "isOpen": true,
      "phase": "regular",
      "tradeDate": "2026-10-26",
      "nextChange": {
        "at": "2026-10-26T16:00:00-04:00",
        "phase": "after_hours"
      },
      "nextOpen": "2026-10-27T09:30:00-04:00",
      "nextClose": "2026-10-26T16:00:00-04:00"
    },
    {
      "market": "nasdaq",
      "asOf": "2026-10-26T16:04:11+00:00",
      "timezone": "America/New_York",
      "localTime": "2026-10-26T12:04:11-04:00",
      "isOpen": true,
      "phase": "regular",
      "tradeDate": "2026-10-26",
      "nextChange": {
        "at": "2026-10-26T16:00:00-04:00",
        "phase": "after_hours"
      },
      "nextOpen": "2026-10-27T09:30:00-04:00",
      "nextClose": "2026-10-26T16:00:00-04:00"
    },
    {
      "market": "iex",
      "asOf": "2026-10-26T16:04:11+00:00",
      "timezone": "America/New_York",
      "localTime": "2026-10-26T12:04:11-04:00",
      "isOpen": true,
      "phase": "regular",
      "tradeDate": "2026-10-26",
      "nextChange": {
        "at": "2026-10-26T16:00:00-04:00",
        "phase": "after_hours"
      },
      "nextOpen": "2026-10-27T09:30:00-04:00",
      "nextClose": "2026-10-26T16:00:00-04:00"
    }
  ]
}

A live response from the API. Lists longer than seven items are cut to three here

Response fields

StatusList object. Fields marked | null are always present and may be null

FieldTypeDescription
asOfstring (date-time)Moment the statuses were computed, UTC
marketsobject[]Status of each market
markets[].marketstringMarket id
markets[].asOfstring (date-time)Moment the status was computed, UTC
markets[].timezonestringIANA time zone of the market
markets[].localTimestring (date-time)Current time in the market's time zone
markets[].isOpenbooleanTrue during regular trading only
markets[].phasestringCurrent phase. unknown means the moment is outside our datapre_marketregularbreakafter_hoursclosedunknown
markets[].tradeDatestring (date) | nullTrade date of the current phase, or of the next session when closed
markets[].nextChangeobject | nullNext phase change. Null when none is known within 40 days, or the market trades around the clock
markets[].nextChange.atstring (date-time)When the current phase ends
markets[].nextChange.phasestringCurrent phase. unknown means the moment is outside our datapre_marketregularbreakafter_hoursclosedunknown
markets[].nextOpenstring (date-time) | nullNext start of regular trading
markets[].nextClosestring (date-time) | nullEnd of the current or next regular session

Errors

  • 401unauthorizedThe Authorization header is missing, malformed, or names a revoked key
  • 429rate-limitedThe key sent more requests in a minute than its plan's burst limit
  • 429quota-exceededThe plan's requests for this period are used up