> From TickerLayer docs, Market Status: https://tickerlayer.com/docs/market-status#markets-status-detail
> REST base URL https://api.tickerlayer.com, API key in the `x-api-key` header. WebSocket wss://stream.tickerlayer.com?apiKey=YOUR_API_KEY. Full API reference: https://tickerlayer.com/llms-full.txt

## Market detail

**Endpoint:** `GET /markets/status`

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

```bash
curl -sS "https://api.tickerlayer.com/markets/status?market=US" \
  -H "x-api-key: YOUR_API_KEY"
```

```javascript
const params = new URLSearchParams({ market: "US" });
const res = await fetch(`https://api.tickerlayer.com/markets/status?${params}`, {
  headers: { "x-api-key": "YOUR_API_KEY" },
});
const data = await res.json();
```

```python
import requests

res = requests.get(
    "https://api.tickerlayer.com/markets/status",
    params={"market": "US"},
    headers={"x-api-key": "YOUR_API_KEY"},
)
data = res.json()
```

### Response

```json
{
  "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"
  }
}
```

### Notes

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=US`
- `GET /markets/status?asset=indices&symbol=UK100`
- `GET /markets/status?asset=etfs&symbol=CASHLIKE`
- `GET /markets/status?asset=crypto&symbol=BTCUSD`
- `GET /markets/status?asset=forex&symbol=EURUSD`
