sifting/io
GET/v1/fnd/markets/:market/calendar

Holiday calendar

Holidays and half-days for an exchange in a date range. Built for backtesting clients ('which days was the market closed in 2023?') and dashboard 'next holiday' widgets. Forex and crypto return an empty array. They don't observe holidays.

Format
JSON

Example

request · shell
curl -H "X-API-Key: $KEY" \
  "https://api.sifting.io/v1/fnd/markets/us_equities/calendar?from=2026-11-01&to=2026-12-31"
200OKapplication/json
{  "data": [    {      "date": "2026-11-26",      "name": "Thanksgiving Day",      "kind": "holiday",      "state": "closed"    },    {      "date": "2026-11-27",      "name": "Day after Thanksgiving",      "kind": "half_day",      "state": "early_close",      "early_close": "2026-11-27T18:00:00Z"    },    {      "date": "2026-12-25",      "name": "Christmas Day",      "kind": "holiday",      "state": "closed"    }  ],  "meta": {    "market": "us_equities",    "from": "2026-11-01",    "to": "2026-12-31",    "as_of": "2026-05-20T14:30:00Z"  }}
Loading runner…
First load only

Parameters

Parameter
marketrequiredstring · path
Market slug. Case-insensitive.
fromISO date / RFC3339 · query
Inclusive lower bound on date. Defaults to today (UTC). Accepts 2026-01-01 or full RFC3339.
toISO date / RFC3339 · query
Inclusive upper bound on date. Defaults to from + 90 days. Must be strictly after from. Max range = 730 days (2 years).

Response fields

Field
data[]array
Holidays and half-days in the range, ascending by date; empty for forex and crypto.
data[].datestring (YYYY-MM-DD)
Venue-local calendar date.
data[].namestring
Human-readable holiday name.
data[].kindstring
holiday (full closure) | half_day (early close).
data[].statestring
closed (full closures) | early_close (half-days).
data[].early_closestring (RFC 3339)
Early-close time in UTC; present only on half-days, DST handled.
meta.marketstring
Echoed market slug.
meta.fromstring (YYYY-MM-DD)
Resolved lower bound.
meta.tostring (YYYY-MM-DD)
Resolved upper bound.
meta.as_ofstring (RFC 3339)
When the response was computed.

Reference

Coverage
General
2022 through 2027 for most markets.
Forward-limited
cn_equities (through 2025); in_equities and sg_equities (through 2024). Queries beyond return empty results, not errors.
Forex / crypto
Always empty. These markets don't observe holidays.

Error responses

  • 400invalid_parameter

    to must be strictly after from, or the requested range exceeded the 730-day cap.

    {  "error": "invalid_parameter",  "message": "range too large; max 730 days"}
  • 404unknown market

    :market is not in our catalog.

    { "error": "unknown market" }

More in Market hours & calendars

See all