Market Status
Check whether supported markets are open, closed, in pre-market, in post-market, or observing a holiday. Use market status to build smarter dashboards, polling schedules, alerts, and trading-hours-aware workflows.
Base path /markets. Send x-api-key on every request, same as other REST routes. Responses use ISO-8601 UTC timestamps plus helpful local timezone fields where applicable. Calendar data is indicative — suitable for integration timing, not compliance-grade guarantees.
Endpoints
Market overview
Broad snapshot for crypto, forex, regional equities, selected indices, ETFs, and commodities.
Market detail
Single status object for a region or resolved instrument.
Bulk status
Multiple asset/symbol pairs in one round trip.
Holiday calendar
Indicative closures and early-close rows by market and year.
Trading sessions
Session windows for a specific market and date.
/markets/statusMarket overview (default)
With no asset, symbol, or market, returns overview mode: one JSON document with rolled-up lines and nested per-calendar objects. Adding any of those parameters switches to detail mode (see the next section).
Query parameters
| Parameter | Type | Description |
|---|---|---|
| asset | string | Optional. Narrow routing: crypto, forex, stocks, indices, etfs, commodities, cfds. Omit with symbol/market for overview vs detail rules below. |
| symbol | string | Optional. Instrument code when routing depends on it (for example indices). For equities, optional; often omitted when using market=US, market=GB, etc. |
| market | string | Optional. CRYPTO, FOREX, COMMODITIES, GLOBAL, or a regional code: US, AR, BR, MX, GB, DE, FR, ES, IT, TR, IN, JP, CN, HK, KR, SA, AE, SE, TW, TH. With asset/symbol, selects detail mode. |
| at | string | Optional. ISO-8601 instant; defaults to request time. Invalid values return 400. |
| includeSessions | boolean | Optional. When true, includes a static session template for that calendar (detail mode). Regional equity calendars, the global calendar and commodities carry one; the continuous crypto and forex calendars have no template, so the field is absent. Default false. |
| includeHoliday | boolean | Optional. When true, may include holiday metadata for the local trading date (detail mode). Default true. |
Request
curl -sS "https://api.tickerlayer.com/markets/status" \
-H "x-api-key: YOUR_API_KEY"Response 200 OK
{
"server_time": "2026-05-04T13:44:27.672Z",
"market": "mixed",
"early_hours": false,
"after_hours": false,
"currencies": {
"crypto": "open",
"forex": "open"
},
"regions": {
"us": "open",
"gb": "open",
"de": "open",
"fr": "open",
"es": "open",
"tr": "open",
"in": "closed",
"jp": "closed"
},
"markets": {
"stocks": {
"us": {
"asset": "stocks",
"market": "US",
"status": "open",
"is_open": true,
"phase": "primary",
"next_close": "2026-05-04T20:00:00.000Z",
"timezone": "America/New_York"
}
}
},
"meta": {
"calendar_version": "v1-static-2026-2027"
}
}Optional fields such as symbol, next_open, or nested holiday rows appear only when meaningful. Overview responses include meta.data_notice alongside calendar_version in live payloads.
/markets/statusMarket detail
Pass asset, symbol, and/or market to retrieve a single status object. For regional equities, prefer market=US, market=GB, market=DE, etc. Symbols are optional for many equity queries and are most useful when resolving calendar routing (for example global listings or indices).
Query parameters
| Parameter | Type | Description |
|---|---|---|
| asset | string | Optional. Narrow routing: crypto, forex, stocks, indices, etfs, commodities, cfds. Omit with symbol/market for overview vs detail rules below. |
| symbol | string | Optional. Instrument code when routing depends on it (for example indices). For equities, optional; often omitted when using market=US, market=GB, etc. |
| market | string | Optional. CRYPTO, FOREX, COMMODITIES, GLOBAL, or a regional code: US, AR, BR, MX, GB, DE, FR, ES, IT, TR, IN, JP, CN, HK, KR, SA, AE, SE, TW, TH. With asset/symbol, selects detail mode. |
| at | string | Optional. ISO-8601 instant; defaults to request time. Invalid values return 400. |
| includeSessions | boolean | Optional. When true, includes a static session template for that calendar (detail mode). Regional equity calendars, the global calendar and commodities carry one; the continuous crypto and forex calendars have no template, so the field is absent. Default false. |
| includeHoliday | boolean | Optional. When true, may include holiday metadata for the local trading date (detail mode). Default true. |
Request
curl -sS "https://api.tickerlayer.com/markets/status?market=US" \
-H "x-api-key: YOUR_API_KEY"Response 200 OK
{
"asset": "stocks",
"market": "US",
"status": "open",
"is_open": true,
"phase": "primary",
"reason": "Primary session",
"timestamp": "2026-05-04T13:44:27.872Z",
"timezone": "America/New_York",
"local_time": "2026-05-04T09:44:27.872-04:00",
"next_close": "2026-05-04T20:00:00.000Z",
"meta": {
"calendar_version": "v1-static-2026-2027"
}
}Commodities use a broad overnight metals/energy reference schedule: Sunday 18:00 through Friday 17:00 in America/New_York, with a 17:00–18:00 daily pause. UTC boundaries follow US daylight saving time. This is not a per-instrument calendar: agricultural contracts, holidays and special closures can differ. Status describes scheduled hours, not feed health. Do not use it alone to stop data consumption; check observation timestamps and your instrument requirements as well. The sessions endpoint returns windows overlapping the requested local calendar date.
Additional detail examples (same route):
GET /markets/status?asset=stocks&market=USGET /markets/status?asset=indices&symbol=UK100GET /markets/status?asset=etfs&symbol=CASHLIKEGET /markets/status?asset=crypto&symbol=BTCUSDGET /markets/status?asset=forex&symbol=EURUSD
/markets/status/bulkBulk market status
Evaluate many instruments at once. Each item uses asset:symbol — for example crypto:BTCUSD, forex:EURUSD, stocks:US:AAPL, indices:UK100, commodities:XAUUSD. Ideal for dashboards and watchlists.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| itemsreq | string | Comma-separated asset:symbol pairs, 1-25 per request (see Bulk section). Unresolved items return a row-level error without failing the whole response; more than 25 entries returns a 400. |
| at | string | Optional. ISO-8601 instant evaluated for every resolved item. |
Request
curl -sS "https://api.tickerlayer.com/markets/status/bulk?items=crypto:BTCUSD,forex:EURUSD,stocks:US:AAPL,indices:UK100,commodities:XAUUSD" \
-H "x-api-key: YOUR_API_KEY"Response 200 OK
{
"data": [
{
"asset": "crypto",
"market": "CRYPTO",
"status": "open",
"is_open": true
},
{
"item": "stocks:INVALID",
"error": { "code": "UNRESOLVED", "message": "…" }
}
],
"meta": { "calendar_version": "v1-static-2026-2027" }
}error — the overall HTTP status stays 200 when the request is well-formed./markets/holidaysHoliday calendar
Returns seeded holiday and early-close rows for a resolved regional calendar. Useful for UI hints and scheduling — treat rows as indicative; schedules can change.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| market | string | Optional if asset/symbol resolves a calendar (for example market=US). |
| asset | string | Optional. Used with symbol to resolve the regional calendar. |
| symbol | string | Optional. Used with asset to resolve the calendar. |
| year | integer | Optional. Defaults to the current UTC year. |
| start | string | Optional. yyyy-mm-dd inclusive lower bound within the year. |
| end | string | Optional. yyyy-mm-dd inclusive upper bound within the year. |
Request
curl -sS "https://api.tickerlayer.com/markets/holidays?market=US&year=2026" \
-H "x-api-key: YOUR_API_KEY"Response 200 OK
{
"market": "US",
"year": 2026,
"timezone": "America/New_York",
"holidays": [
{
"date": "2026-01-01",
"name": "New Year's Day",
"schedule": "closed",
"is_open": false,
"observed": true,
"memo": null
},
{
"date": "2026-11-27",
"name": "Post-holiday early close",
"schedule": "early_close",
"is_open": true,
"observed": true,
"memo": "Early close"
}
],
"meta": {
"calendar_version": "v1-static-2026-2027",
"completeness": "full",
"data_notice": "Holiday calendars are indicative and may change."
}
}schedule is closed or early_close. meta.completeness is full or partial when a regional list is not fully seeded for the requested year. Live responses also include meta.start and meta.end range strings for the filtered holiday list. Rows on this route always carry memo, null when there is no note; the holiday object nested in a status response omits it instead, so read it defensively.
/markets/sessionsTrading sessions
Ordered session windows for a given market and local date. Where modeled, equities may include pre-market, primary, and post-market phases; simpler calendars may return a single primary window, and a market with an intraday break (TH) returns one window per trading block. Each window carries status: open for the primary block, available for extended hours, and closed for every window on a weekend or holiday, so the list still describes the shape of a normal day.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| market | string | Optional if asset/symbol resolves a calendar. |
| asset | string | Optional. Used with symbol to resolve the calendar. |
| symbol | string | Optional. Used with asset to resolve the calendar. |
| date | string | Optional. yyyy-mm-dd in that market’s context; defaults to “today” in the market timezone. |
Request
curl -sS "https://api.tickerlayer.com/markets/sessions?market=US&date=2026-05-04" \
-H "x-api-key: YOUR_API_KEY"Response 200 OK
{
"market": "US",
"date": "2026-05-04",
"timezone": "America/New_York",
"is_open": true,
"holiday": null,
"sessions": [
{
"phase": "pre_market",
"status": "available",
"start": "2026-05-04T08:00:00.000Z",
"end": "2026-05-04T13:30:00.000Z"
},
{
"phase": "primary",
"status": "open",
"start": "2026-05-04T13:30:00.000Z",
"end": "2026-05-04T20:00:00.000Z"
},
{
"phase": "post_market",
"status": "available",
"start": "2026-05-04T20:00:00.000Z",
"end": "2026-05-05T00:00:00.000Z"
}
],
"meta": { "calendar_version": "v1-static-2026-2027" }
}holiday key is always present on this route: an object when a holiday row applies to that local date, and null otherwise. On a day the market does not open, the windows are still returned with their scheduled times, each carrying "status": "closed".Field reference
| Field | Role |
|---|---|
| asset | Asset class for this status row. |
| symbol | Present when a symbol was supplied or resolved for routing. |
| market | Public market or calendar code (for example US, GB, CRYPTO). |
| status | High-level state (open, closed, pre_market, post_market, maintenance, unknown). |
| is_open | Whether an active trading session window applies — use together with phase for precision. |
| phase | Finer session context (primary, pre_market, post_market, weekend, holiday, early_close, …). |
| reason | Short human-readable explanation for the current row. |
| timestamp | Evaluation instant (UTC ISO-8601). |
| timezone | IANA timezone for local calendar logic. |
| local_time | Wall-clock instant in timezone. |
| next_open | UTC instant the regular (primary) session next opens. Omitted while the regular session is in progress and for 24/7 markets. |
| next_close | UTC instant the current or next regular session ends. During pre-market, post-market, weekend, holiday, and closed phases it pairs with next_open; extended-hours window boundaries are available via session and the sessions endpoint. |
| holiday | Optional holiday metadata for the local trading date (detail mode when enabled). |
| session | Optional static session template when includeSessions=true. |
| meta | Includes calendar_version and data_notice on status payloads. |
status is the simple line; phase is the more specific session state; is_open reflects an active session window for the model.
| status values |
|---|
|
| phase values |
|---|
|
What this API is — and is not
Helps with: market-aware polling, dashboard open/closed badges, alert scheduling, holiday display, and skipping unnecessary work when markets are quiet.
Does not guarantee: venue-specific “official” calendars, emergency closures or halts, instrument-level commodity accuracy in v1, or that live quotes exist whenever status reads “open”. Status describes modeled sessions for integration timing — not a trading mandate.
Static-first design: schedules are curated for product use and do not call third-party calendar services at request time. Pair with your product disclaimers — see also Market data disclaimer.