apyhub
Back
▣ VERIFICATION KIT

Stock Exchange Calendars API

What it does

The Stock Market Holidays API lists the stock exchanges that have a holiday calendar, describes each one, and returns its closures for a year. Look up an exchange by MIC code or acronym, such as XNYS or NYSE.

Call GET /v1/markets to get every supported exchange with its MIC code, aliases and name. Call GET /v1/markets/:market for one exchange. It returns the holiday categories, public for full closures and half_day for early closes, plus the default category, languages, weekend days, subdivisions and years covered.

Call GET /v1/market-holidays/:year/:market to get the closures for a year from 1900 to 2100, for example GET /v1/market-holidays/2026/XNYS. Use categories to include half days, language for names in another language, and observed to switch observed dates on or off.

Teams use the Stock Market Holidays API to show NYSE and other trading holidays in finance apps. Others skip closed days in settlement jobs, or check how far ahead an exchange calendar goes.

To count trading days between two dates, pass the same market code to the Calculate Business Days Across Countries and Markets API. For country holidays, use the Public Holidays by Country and Stock Market API.

▣ ENDPOINT 01 / 03
GET
List Stock Exchanges
https://api.eu.apyhub.com/callable-labs/stock-exchange-calendars-api/v1/markets

QUICKSTART

GUIDE

Quickstart

List every stock exchange that has a market-holiday calendar.

curl -X GET "https://api.eu.apyhub.com/callable-labs/stock-exchange-calendars-api/v1/markets" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with count, the number of exchanges, calendar_version, and an items array with one object per exchange: its MIC code, aliases, name, holiday categories, weekend days and the years covered. Only the first exchange is shown here.

{
  "count": 28,
  "calendar_version": "2026.10",
  "items": [
    {
      "code": "XNYS",
      "aliases": ["NYSE"],
      "name": "New York Stock Exchange",
      "kind": "market",
      "categories": ["public", "half_day"],
      "default_category": "public",
      "languages": ["en"],
      "default_language": "en",
      "weekend": ["saturday", "sunday"],
      "subdivision_count": 0,
      "years": [2000, 2100]
    }
  ]
}
TRY ITLIVE · 5 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Lists every stock and financial exchange that has a market-holiday calendar, with its MIC code and acronyms. Use it to find the code to pass as market to the other endpoints.

Response

Returns a JSON object with the number of exchanges and one entry for each.

ParameterTypeDescription
countIntegerNumber of exchanges returned.
itemsObject ArrayOne object per exchange.
items[].codeStringMIC code of the exchange.
items[].aliasesString ArrayAcronyms the exchange is also known by.
items[].nameStringExchange name.
items[].kindStringmarket for an exchange.
items[].categoriesString ArrayHoliday categories available.
items[].default_categoryStringCategory used when none is given.
items[].languagesString ArrayLanguages available for holiday names.
items[].weekendString ArrayWeekend days of the exchange.
items[].yearsInteger ArrayFirst and last year with rules.
calendar_versionStringVersion of the calendar data used.
▣ ENDPOINT 02 / 03
GET
Get Stock Exchange Details
https://api.eu.apyhub.com/callable-labs/stock-exchange-calendars-api/v1/markets/:market

QUICKSTART

GUIDE

Quickstart

Get the calendar details of the New York Stock Exchange by its MIC code.

curl -X GET "https://api.eu.apyhub.com/callable-labs/stock-exchange-calendars-api/v1/markets/:market" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object describing the exchange: its code, aliases, name, holiday categories and default_category, languages, weekend days, subdivisions and the years covered.

{
  "code": "XNYS",
  "aliases": [
    "NYSE"
  ],
  "name": "New York Stock Exchange",
  "kind": "market",
  "categories": [
    "half_day",
    "public"
  ],
  "default_category": "public",
  "languages": [
    "en_US",
    "gu",
    "hi"
  ],
  "default_language": "en_US",
  "weekend": [
    "saturday",
    "sunday"
  ],
  "subdivision_count": 0,
  "years": [
    1900,
    2100
  ],
  "subdivisions": []
}
TRY ITLIVE · 5 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Exchange MIC or acronym

About this endpoint

What it does

Returns the details of one stock exchange: its holiday categories (public closures and half_day early closes), weekend days, the years covered and its subdivisions.

Path Parameter(s)

AttributeTypeDescription
marketStringExchange MIC or acronym, such as XNYS or NYSE. Required.

Response

Returns a JSON object describing the exchange.

ParameterTypeDescription
codeStringMIC code of the exchange.
aliasesString ArrayAcronyms the exchange is also known by.
nameStringExchange name.
kindStringmarket for an exchange.
categoriesString ArrayHoliday categories available.
default_categoryStringCategory used when none is given.
languagesString ArrayLanguages available for holiday names.
default_languageStringLanguage used when none is given.
weekendString ArrayWeekend days of the exchange.
subdivision_countIntegerNumber of subdivisions.
subdivisionsObject ArraySubdivisions with their codes and names.
yearsInteger ArrayFirst and last year with rules.
▣ ENDPOINT 03 / 03
GET
List Stock Market Holidays by Year
https://api.eu.apyhub.com/callable-labs/stock-exchange-calendars-api/v1/market-holidays/:year/:market

QUICKSTART

GUIDE

Quickstart

List the days the New York Stock Exchange is closed in 2026.

curl -X GET "https://api.eu.apyhub.com/callable-labs/stock-exchange-calendars-api/v1/market-holidays/:year/:market" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with the year, the count of closures and a holidays array sorted by date. Each entry has its date, weekday, name, local_name, categories and an observed flag. Add categories=half_day to list early closes instead. Only the first closures are shown here.

{
  "year": 2026,
  "count": 10,
  "market": "XNYS",
  "categories": ["public"],
  "language": "en",
  "calendar_version": "2026.10",
  "holidays": [
    {
      "date": "2026-01-01",
      "weekday": "thursday",
      "name": "New Year's Day",
      "local_name": "New Year's Day",
      "categories": ["public"],
      "observed": false
    },
    {
      "date": "2026-01-19",
      "weekday": "monday",
      "name": "Martin Luther King Jr. Day",
      "local_name": "Martin Luther King Jr. Day",
      "categories": ["public"],
      "observed": false
    }
  ]
}
TRY ITLIVE · 5 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Year, 1900–2100
Exchange MIC or acronym
Language for `name`, e.g. `en_US`, `de`, `fr`. Default: English when available.
Include days off moved by observance rules (e.g. a Sunday holiday observed on Monday)
Comma-separated holiday categories, e.g. `public,bank`. Default: the calendar's main category (usually `public`).

About this endpoint

What it does

Returns the days an exchange is closed in a given year (NYSE, NASDAQ, LSE, TARGET2, JPX, HKEX, NSE and more). Set categories=half_day to list early closes instead of full closures.

Path Parameter(s)

AttributeTypeDescription
yearIntegerYear, 1900 to 2100. Required.
marketStringExchange MIC or acronym, such as XNYS or NYSE. Get the full list of codes and acronyms from the List Stock Exchanges endpoint (GET /v1/markets). Required.

Query Parameter(s)

AttributeTypeDescription
categoriesStringComma-separated holiday categories, such as public or half_day. Default: the calendar's main category (usually public).
subdivisionStringSubdivision code or name, if the calendar has them.
languageStringLanguage for the holiday names, such as en_US, de or fr. Default: English when available.
observedBooleanInclude days off moved by observance rules. Default: true.

Response

Returns a JSON object with the closures of the year.

ParameterTypeDescription
yearIntegerYear requested.
countIntegerNumber of closures returned.
holidaysObject ArrayThe closures, sorted by date.
holidays[].dateStringDate of the closure (YYYY-MM-DD).
holidays[].weekdayStringDay of the week.
holidays[].nameStringHoliday name in English or the requested language.
holidays[].local_nameStringHoliday name in the local language.
holidays[].categoriesString ArrayCategories of the closure.
holidays[].observedBooleanWhether an observance rule moved the day off.
marketStringExchange code of the calendar.
categoriesString ArrayCategories applied.
languageStringLanguage of the names.
calendar_versionStringVersion of the calendar data used.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.