> From TickerLayer docs, Market Status: https://tickerlayer.com/docs/market-status#markets-status-overview
> 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 overview (default)

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

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

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

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

```python
import requests

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

### Response

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

### Notes

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.
