Skip to content
/api/market/trading-halts

Current NASDAQ trading halts + resumptions, each enriched with stock attributes (market cap / price / sector / industry).

Current NASDAQ trading halts + resumptions, each enriched with stock attributes (market cap / price / sector / industry).

Why use this

The current set of NASDAQ-published trading halts and resumptions, served from a single server-side fetch and enriched with the four stock attributes (market_cap, price, sector, industry) from the same daily snapshot the rest of the API uses. This is the REST companion of the live `halt` event broadcast on the `/sec` WebSocket — IDENTICAL field shape, so a client can render the current-halts list from REST and then receive new halts live over the socket with no per-source remapping. Public + free (`cost: 0`). One central fetcher of the upstream NASDAQ feed (no per-client polling).

Common use case

Rendering a live trading-halts panel: load the current halts via this endpoint, then subscribe to the `halt` event on the /sec WebSocket for real-time additions. Color-code by reason_code; show resumption times when present.

Current NASDAQ trading halts, enriched and served as the REST companion to the live halt event on the /sec WebSocket. SINGLE SOURCE: a server-side poller fetches the NASDAQ trade-halt feed ONCE, enriches each halt with the four stock attributes from all_stocks_strategies_yf_daily (the same table the stock-attributes path uses), caches the current list, and broadcasts new halts live on /sec. Both transports therefore carry IDENTICAL fields (field parity). Public endpoint (no auth, cost: 0). Returns an empty array when the poller cache is cold (just-started worker).

Response schema

FieldTypeNullableDescription
data[].idstringnoStable dedup key = symbol + '_' + halt_date (slashes→dashes) + '_' + halt_time. Matches the `halt` WebSocket event id exactly.
data[].symbolstringnoHalted issue ticker (NASDAQ IssueSymbol).
data[].namestringyesIssue name (IssueName).
data[].marketstringyesListing market (Market).
data[].reason_codestringyesNASDAQ halt reason code (e.g. LUDP volatility pause, T1 news pending, T12 additional info).
data[].halt_datestringyesHalt date, MM/DD/YYYY (HaltDate).
data[].halt_timestringyesHalt time, HH:MM:SS ET (HaltTime).
data[].resumption_datestringyesResumption date if set (ResumptionDate); empty while still halted.
data[].resumption_quote_timestringyesResumption quote time if set (ResumptionQuoteTime).
data[].resumption_trade_timestringyesResumption trade time if set (ResumptionTradeTime); presence indicates the halt has resumed.
data[].pause_threshold_pricestringyesLULD pause threshold price if provided (PauseThresholdPrice).
data[].market_capnumberyesMarket cap (USD) from all_stocks_strategies_yf_daily latest snapshot. Null when the ticker has no row (fail-closed for market-cap rule filters).
data[].pricenumberyesLatest daily close (USD) from the same snapshot. Null when absent.
data[].sectorstringyesSector from the same snapshot ('' when unclassified).
data[].industrystringyesIndustry from the same snapshot ('' when unclassified).

Sample response

·
  • "data":
    ]
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/market/trading-halts" \
  -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).