---
title: "GET /api/calendar/exchange"
method: GET
path: "/api/calendar/exchange"
tags: ["Market Calendar"]
---

# GET /api/calendar/exchange

`GET /api/calendar/exchange`

## Request

- Base URL: `https://api.unirateapi.com`
- URL: `https://api.unirateapi.com/api/calendar/exchange`
- Auth: none declared
- TypeScript: <https://skmtc.dev/unirateapi/apis/unirate-api/docs/api/calendar/exchange/get.ts> (a function with typed inputs; its response is checked against the schema)

Is an exchange open on a given date, or right now? Returns the session open/close (local exchange time and UTC), lunch breaks, early closes / late opens, the holiday name when closed, and the previous/next trading days. Omit `date` for live status (`is_open_now`, `next_open_utc`, `next_close_utc`, evaluated in the exchange's own timezone). Computed from the open-source exchange_calendars rule set - reference only. Every answer carries `holiday_data_available`, `holiday_data_available_through` (the last date with published holiday data; null = rule-based calendar with no fixed end) and `warning`. A few exchanges with lunar-calendar holidays (e.g. XSHG, XBOM, XSES) only have holiday data to a fixed date (see /api/calendar/exchanges); for a date AFTER it the endpoint still answers, best-effort: weekdays are treated as trading days with the exchange's regular session times (incl. lunch breaks), weekends as closed, dates the exchange closed on a weekday in each of the previous two years (fixed-date holidays such as 1 January) as closed; other public holidays (e.g. lunar-calendar ones) and early closes are NOT known, `holiday_data_available` is false and `warning` explains. The same applies to `is_open_now` / `next_open_utc` / `next_close_utc`. Pro subscription required.

## Query parameters

- `api_key` string, required
- `mic` string, required
- `date` string
- `format` 'json' | 'xml'
- `callback` string

## Response `200`

Exchange schedule for the date.

## Other responses

- `400`: Invalid mic/date/format, or date outside the supported range (before the exchange's calendar starts, or outside roughly the last 20 years to the end of next year). A date past the exchange's holiday data is NOT a 400 - see holiday_data_available above.
- `401`: Missing or invalid API key
- `403`: Pro subscription required
- `404`: Exchange not supported
- `429`: Daily calendar quota exceeded

---

[API](https://skmtc.dev/unirateapi/apis/unirate-api.md) - [All operations](https://skmtc.dev/unirateapi/apis/unirate-api/llms.txt) - [OpenAPI document](https://skmtc.dev/unirateapi/apis/unirate-api/revisions/e5fd92902326?raw)
