/api/market/statusGet current NYSE market session state with countdown to next session change.
Get current NYSE market session state with countdown to next session change.
freeSince v1.3.0
Why use this
Real-time NYSE market session probe — returns whether the market is currently in pre-market (4:00-9:30 AM ET), regular session (9:30 AM-4:00 PM ET), after-hours (4:00-8:00 PM ET), or closed. Includes countdown to next session transition and full holiday awareness (MLK, Presidents', Memorial, Good Friday, Juneteenth, Independence Day, Labor Day, Thanksgiving, Christmas) with the canonical Saturday→Friday / Sunday→Monday observed-on-weekday rules. Public endpoint — no authentication required and free (`cost: 0`) so dashboards can poll aggressively without quota concerns. The right endpoint for market-hours-gated UIs (price-action displays, real-time order entry), session-aware notification systems, and rate-aware polling clients that want to back off during closed sessions.
Common use case
Displaying a market status indicator on a dashboard. Color-code UI elements by session state (green=open, amber=pre/post, grey=closed). Show countdown to next session transition.
Real-time NYSE session state — open/closed flag, current session phase (pre-market, regular, after-hours, closed), countdown to next event, holiday-awareness. Public endpoint (no auth required, cost: 0). Useful for dashboards that gate on market hours and for clients implementing rate-aware polling.
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| is_open | boolean | no | True ONLY during regular trading session (9:30 AM-4:00 PM ET on non-holiday weekdays). False during pre-market, after-hours, weekends, and holidays. Use as the canonical 'should I display real-time price ticks?' gate. |
| phase | string | no | Current session phase — one of `pre_market` (4:00-9:30 AM ET), `regular` (9:30 AM-4:00 PM ET), `after_hours` (4:00-8:00 PM ET), `closed` (8:00 PM ET-4:00 AM ET on weekdays + all weekend), `holiday` (NYSE holiday — see `holiday_name`). Use for color-coded session badges (green=regular, amber=pre/post, grey=closed/holiday). |
| next_event | string | no | Next phase transition label — `pre_market_open`, `regular_open`, `regular_close`, `after_hours_close`, or `next_trading_day_open`. Useful for countdown UIs ('Regular session in 1h 30m'). |
| next_event_at | string | no | ISO-8601 UTC timestamp of the next phase transition. Use to render absolute-time countdowns; pair with `seconds_until_next_event` for relative displays. Holiday-aware — skips weekends and NYSE holidays in the next-event computation. |
| seconds_until_next_event | integer | no | Countdown in whole seconds until `next_event_at`. Always positive. Use for client-side countdown timers ('Market opens in 5,400 seconds = 1h 30m'). |
| is_holiday | boolean | no | True when today is a NYSE-observed holiday (federal holidays + Good Friday — NYSE-specific). Holiday rules: Saturday holidays observed on prior Friday; Sunday holidays observed on following Monday. False on regular weekdays AND on weekends-without-observed-holiday. |
| holiday_name | string | yes | Holiday name when `is_holiday=true` (e.g. `Memorial Day`, `Independence Day`, `Thanksgiving`, `Christmas Day`, `Good Friday`). Null on non-holiday days. Use for tooltip display ('Market closed — Memorial Day'). |
| as_of | string | no | ISO-8601 UTC timestamp the snapshot was generated server-side. NOT cached — always reflects request time, since stale market-status display would be confusing during active trading. |
Sample response
·
- "data":
- "session": "open"
- "label": "Market Open"
- "current_time_et": "2:30 PM ET"
- "countdown": "1h 30m"
- "next_event": "After-Hours at 4:00 PM ET"
- "is_trading_day": true
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/api/market/status" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).