> ## Documentation Index
> Fetch the complete documentation index at: https://api.unusualwhales.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> API requests use the base URL https://api.unusualwhales.com and require a bearer token in the `Authorization` header (`Authorization: Bearer <API_KEY>`). Create and manage API tokens at https://unusualwhales.com/dashboard/api.
> For live market data inside an AI tool, use the Unusual Whales MCP server at https://unusualwhales.com/public-api/mcp.
> Instructions for agents using Unusual Whales tools: https://unusualwhales.com/skill.md

# All SEC filings

> Receive every filing published to SEC EDGAR as it is processed, whatever its form type.

**NOTE:**
This is the documentation for the websocket channel `sec:filings`.
Websocket access for personal use is only available through the [Advanced plan](https://unusualwhales.com/pricing?product=api).

You can find fully-functional examples that stream data from many channels here:

* Python: [https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output](https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output)
* Javascript: [https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output-nodejs](https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output-nodejs)

Connect to the websocket URI:

`wss://api.unusualwhales.com/socket?token=<YOUR_API_TOKEN>`

then `join` the `sec:filings` channel.

Each message carries one filing published to SEC EDGAR, of any form type. Insider trade
filings, 13F reports, Schedule 13D and 13G reports, company reports and Rule 497 filings
arrive here as well. Their own channels carry them with more detail. See
[SEC filings](/docs/websocket/sec-filings) for the list.

### Delivery characteristics

* **Updates are event driven.** The channel stays silent until a filing is processed. There
  is no heartbeat and no fixed schedule.
* **A filing with several filers is sent once per filer.** The messages share
  `document_url` and differ in `ticker`, `name`, `is_public_listed` and `filing_url`.
* **Messages are not deduplicated.** If the same filing is published twice, you receive it
  twice. Identify a message by `filing_url`, which contains the CIK of the filer and the
  accession number of the filing.
* **The channel sends nothing when you join.** Messages sent while you are disconnected are
  not replayed.
* **The channel is global only.** It covers every filer at once. A join on
  `sec:filings:<TICKER>` is answered with an `{"error": "..."}` frame.

Payload format:

```
[
  "sec:filings",
  {
    "ticker": "KMB",
    "name": "KIMBERLY CLARK CORP",
    "is_public_listed": true,
    "filing_date": "2026-10-01",
    "filing_url": "https://www.sec.gov/Archives/edgar/data/0000055785/0001104659-26-112571-index.html",
    "document_url": "https://www.sec.gov/Archives/edgar/data/55785/000110465926112571/tm2626685d1_8k.htm",
    "tags": [],
    "form": "8-K"
  }
]
```

### Field reference

Every field is present in every message. A value the filing does not provide is sent as an
empty string, `false` or an empty array, never as `null`. Dates are strings in `YYYY-MM-DD`
format.

<div className="field-table">
  | Field | Type | Description |
  | - | - | - |
  | `ticker` | string | Ticker of the filing company. Empty string when the company is not publicly listed. |
  | `name` | string | Company name from the filing. |
  | `is_public_listed` | boolean | `true` when a ticker is available for the company. |
  | `filing_date` | string | Date the filing was published to the SEC. |
  | `filing_url` | string | URL of the filing's index page on SEC EDGAR. |
  | `document_url` | string | URL of the filing's primary document. |
  | `tags` | string\[] | Tags that describe the filing, such as `odd-lot`. Empty when the filing has none. |
  | `form` | string | SEC form type of the filing, such as `8-K`, `S-4`, `424B3` or `4`. |
</div>

The payload has the fields of the Kafka message
[`GeneralFiling`](/docs/kafka/types/GeneralFiling), published to the topic
[`sec-filings`](/docs/kafka/topics/sec-filings) under the key `general`.
