Skip to content
WebSocket (Namespace: /sec)

Listen for new SEC filings (10-K, 8-K, 4, etc.) as they are ingested.

Listen for new SEC filings (10-K, 8-K, 4, etc.) as they are ingested.

100 tokens/conn-daySince v1.0.0

Why use this

Real-time push stream of newly-accepted SEC filings — connect once via Socket.IO and receive every filing as it lands in our DB (typically within 30-60 seconds of EDGAR acceptance). Drop-in replacement for sec-api.io's WebSocket: same event shape, same field naming, same per-form-type subscription model. The right choice for low-latency trading workflows that need filing-level signals (8-Ks for material events, Form 4s for insider trades, 13D/G for ownership changes) faster than polling the REST endpoints can deliver. Per-form-type rooms (e.g. `join: form_4`) let you filter server-side rather than receiving the firehose. The 100-token cost is a FLAT per-UTC-day connection fee — reconnects on the same UTC day are free, so disconnects (network blips, deploys) don't multiply your costs. For per-message billing semantics, no charge per event — just the daily connection fee.

Common use case

Triggering an analysis pipeline instantly when a specific company files an 8-K.

Socket.IO WebSocket stream for real-time SEC filings. Connect to namespace /sec and subscribe to events: new_filing (any form), or per-form-type rooms (e.g. join: form_4). Messages include the full filing metadata (accession_number, cik, ticker, form_type, filed_date, filing_url) at the moment EDGAR accepts them. The 100-token cost is a flat per-UTC-day connection fee — reconnects on the same UTC day are free. Drop-in replacement for sec-api.io WebSocket — same event shape.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
api_keyauthrequiredAPI key. Three methods (first match): Socket.IO `auth.api_key` payload (recommended), HTTP header `X-API-Key` or `Authorization: Bearer`, or `?api_key=` query (logs in access logs). 100-token/day fee on first connect of the UTC day. Free-tier OK. `?token=` removed v3.20.2.tok_test_abc123
namespaceconfigrequired/secSocket.IO namespace to connect to. `/sec` is the canonical SEC-filings stream. The connection URL is `<base>/socket.io/?EIO=4&transport=websocket` and the namespace is selected via Socket.IO client API (`io('/sec')`), NOT via URL path./sec

Response schema

FieldTypeNullableDescription
eventstringnoAlways the literal string `"new_filing"` for individual-filing events. For batch events the per-row event field is omitted — the wrapping event name is `new_filings_batch` and each row is a FilingObject.
accession_numberstringnoSEC accession number in canonical `XXXXXXXXXX-YY-NNNNNN` format. Use as a deduplication key client-side — same filing will NOT be re-emitted within a session, but reconnects may replay the last few minutes.
cikstringnoFiler CIK in 10-character zero-padded form. Use for client-side per-issuer filtering (e.g. only process filings from your watchlist of CIKs).
tickerstringyesResolved ticker from CIK→ticker lookup at filing time (canonical hyphen form). Null when the filer has no public-equity ticker. Useful as the primary filter key for trading-desk consumers.
form_typestringnoCanonical form type (`4`, `8-K`, `10-K`, `13F-HR`, `S-1`, etc.). Subscribe to per-form-type rooms (`join: form_4`) to filter server-side and reduce event volume.
filed_datestringnoISO `YYYY-MM-DD` filing acceptance date in ET. Distinct from `accepted_at` — `filed_date` is the calendar date for compliance/UI display; `accepted_at` is the precise timestamp.
accepted_atstringnoISO-8601 UTC timestamp of SEC EDGAR's acceptance moment. Use for intra-day ordering and latency measurement (compare against your client receipt time — should typically be < 60 seconds).
filing_urlstringnoCanonical SEC EDGAR URL for the filing's index page. Use as the human-readable link in dashboards; for programmatic content access drill into `/api/v1/sec/filings/{accession_number}/html` or `/scrapping/extractor`.

Sample response

·
  • "event": "new_filing"
  • "accession_number": "0001127602-26-001234"
  • "cik": "0000320193"
  • "ticker": "AAPL"
  • "form_type": "4"
  • "filed_date": "2026-05-01"
  • "accepted_at": "2026-05-01T20:14:32.000Z"
  • "filing_url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193"
}

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 -X WS "https://api.finradar.aiWebSocket (Namespace: /sec)?api_Token=YOUR_API_KEY" \
  -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).

Related endpoints