Market calendar

Latest calendar revision and sessions for an exchange-local date. US exchange calendars run from the 1950s through the end of the published NYSE holiday schedule (2028-12-31), holidays and early closes included. The Toronto, TSX Venture, Cboe Canada, London, Euronext Paris and Amsterdam and ASX calendars, and that of FSRV (Canadian mutual funds, which keeps Toronto's), run through the same date: the provider's about 45 days ahead, and after that the days each exchange's holiday rules give, early closes included, which the provider's replace as its calendar reaches them (a closing announced for one year is known only then). The crypto venue trades every day, so it has a row for any date from 2010-07-01 on, and the forex venue every day but Saturday, from 1970-01-01 on (a Saturday row is closed), trading from Sunday 17:00 to Friday 17:30 New York time. The index venue is open every day from 1900-01-01 through about a month ahead, with the UTC day as its session: each index trades on its own market's days, and has a bar only where its market traded. The bond venue is open every weekday from 2000-01-01 through about a month ahead, with the UTC day as its session, and closed on weekends; a bond has a bar only on the days it traded. A date that no requested exchange calendar covers returns 422 naming their range; a requested exchange whose calendar alone does not reach the date has no row and is named in meta.errors by its exchange_mic. GET /v1/datasets/calendar/coverage gives each calendar's first and last date as history_from and history_to (history_to is null only for CRYPTO and FOREX, which trade continuously). Requires calendar.read and an entitled market. An empty data array is a successful result.

GET/v1/calendar
Required capability
calendar.read
Data timing
As published by the source
Credits
5 credits per request.
Live endpoint. Request examples query live data with your API key; response examples are illustrative. History and coverage vary by dataset and plan; see dataset coverage.

Parameters

limitintegeroptional · query
Maximum records per page, from 1 to 500; default 100.Default: 100
cursorstringoptional · query
Opaque cursor, expires after one hour. Keep all query parameters unchanged. Changes to entitlements can invalidate it.
If-None-Matchstringoptional · header
ETag from a previous response. Authorization is rechecked before returning 304, and a 304 costs no credits.
exchangesstringoptional · query
Comma-separated ISO MIC codes, at most 100, each listed once. Defaults to all entitled exchanges. A malformed or repeated code returns 422 invalid-exchanges, a MIC the API does not serve 404 exchange-not-found, and one outside the key's markets 403 market-not-entitled.
datestringoptional · query
Exchange-local YYYY-MM-DD date; defaults to today in each exchange timezone. Outside the range every requested exchange calendar covers, 422; outside one of several, that exchange is named in meta.errors.
formatstringoptional · query
Response format. csv returns the data rows with a header row, for spreadsheet functions such as IMPORTDATA; nested fields become dotted columns and lists one JSON array cell, the next page cursor is returned in X-Next-Cursor and meta.errors in X-Meta-Errors. A result without rows is the header row alone, listing the documented fields of a row. Default json, or csv when format is omitted and the Accept header ranks text/csv above JSON; a format the Accept header does not admit returns 406 not-acceptable.

jsoncsv

Response fields

Returns data as an array of records. All example values are illustrative.

exchange_micstring
exchange mic
exchange_timezonestring
exchange timezone
local_datestring
local date
statusstring
open or closed. A closed day has no sessions; holiday names are not served.
sessionsarray
The day's trading sessions; empty on a closed day.

Response metadata

Responses include meta.timezone. Dataset responses include next_cursor; health and exports have their own metadata. Request tracing uses the X-Request-ID header.

Read the shared data conventions

When something goes wrong

An empty data: [] is a successful query with no matching records. Invalid symbols, permissions and malformed parameters produce an RFC 9457 problem with an actionable detail.

Error codes & retry guidance

Plans

Requires calendar.read. Access, recency and history depth come from the plan definitions the API enforces.

PlanAccessRecencyHistory
FreeIncludedAs publishedNot date-bounded
DeveloperIncludedAs publishedNot date-bounded
ProIncludedAs publishedNot date-bounded
CommercialIncludedAs publishedNot date-bounded
ScaleIncludedAs publishedNot date-bounded

Free requests are limited to AAPL, NVDA, JNJ, PEP, MSFT, SPY, QQQ.

History is how far back a plan may request. How far records actually go for a symbol is history_from in dataset coverage. Nothing is real-time. Compare plans