Skip to content
MarketCalendars.com
Sign up

API documentation

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

Get a year of irregular days

GET/api/v2/markets/{market}/irregular-days/{year}

Every date in a year that departs from the regular weekly hours, with its type and reasons

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

Parameters

NameInDescription
marketrequiredpathMarket id, as listed by GET /markets (for example nyse, lse, cme-equity-futures)Example: nyse
yearrequiredpathCalendar year, YYYYExample: 2026

Example

curl https://marketcalendars.com/api/v2/markets/lse/irregular-days/2026 \
  -H "Authorization: Bearer mc_live_..."
GET /api/v2/markets/lse/irregular-days/2026200
{
  "market": "lse",
  "year": 2026,
  "timezone": "Europe/London",
  "coverage": {
    "from": "1995-01-01",
    "to": "2051-12-31"
  },
  "days": [
    {
      "date": "2026-01-01",
      "type": "holiday",
      "name": "New Year's Day",
      "isTradingDay": false,
      "reasons": [
        {
          "type": "holiday",
          "name": "New Year's Day"
        }
      ]
    },
    {
      "date": "2026-04-03",
      "type": "holiday",
      "name": "Good Friday",
      "isTradingDay": false,
      "reasons": [
        {
          "type": "holiday",
          "name": "Good Friday"
        }
      ]
    },
    {
      "date": "2026-04-06",
      "type": "holiday",
      "name": "Easter Monday",
      "isTradingDay": false,
      "reasons": [
        {
          "type": "holiday",
          "name": "Easter Monday"
        }
      ]
    }
  ]
}

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

Response fields

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

FieldTypeDescription
marketstringMarket id
yearintegerCalendar year
timezonestringIANA time zone of the market
coverageobjectDates we have data for
coverage.fromstring (date)First date with data
coverage.tostring (date)Last date with data
daysobject[]Irregular days in date order
days[].datestring (date)Trade date
days[].typestringholiday for a full closure, otherwise the kind of irregular dayholidayearly_closelate_openearly_close_late_openlate_closeextra_sessionbreak_changemodified
days[].namestring | nullHoliday or session name from the source
days[].isTradingDaybooleanFalse for holidays, true for irregular days
days[].reasonsobject[]Why the day departs from the regular hours
days[].reasons[].typestringWhy the day departs from the regular weekly scheduleholidayearly_closelate_openlate_closeextra_sessionbreak_changemodified_hoursinterruption
days[].reasons[].namestring | nullHoliday or event name from the source

Errors

  • 400invalid-parameterA path or query parameter is malformed, such as a date that is not YYYY-MM-DD
  • 401unauthorizedThe Authorization header is missing, malformed, or names a revoked key
  • 404unknown-marketNo market has that id. GET /markets lists every id
  • 404out-of-rangeThe date or year is outside the market's coverage
  • 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