> ## 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

# SEC 13F filings

> Receive every 13F filing as it is processed, with the reported holdings totalled per security type.

**NOTE:**
This is the documentation for the websocket channel `sec:13f_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:13f_filings` channel.

Each message carries one 13F filing of an institution (13F-HR, 13F-NT, 13F-CTR and their
amendments). The holdings are not listed one by one. The message totals their value and
their share count per security type: shares, funds, warrants, call options, put options,
preferred stock and debt.

The [`sec:13f_alerts`](/docs/websocket/sec-filings/13f-alerts) channel carries a summary of the
position changes and the top holdings of a report.

### Delivery characteristics

* **Updates are event driven.** The channel stays silent until a 13F filing is processed.
  There is no heartbeat and no fixed schedule.
* **A notice filing carries no holdings.** A 13F-NT states that another manager reports the
  holdings, so its values and counts are `0`.
* **Messages are not deduplicated.** If the same filing is published twice, you receive it
  twice. Identify a filing by `accession_no`.
* **The channel sends nothing when you join.** Messages sent while you are disconnected are
  not replayed.
* **The channel is global only.** It covers every institution at once. A join on
  `sec:13f_filings:<TICKER>` is answered with an `{"error": "..."}` frame.

Payload format:

```
[
  "sec:13f_filings",
  {
    "accession_no": "0001104659-26-112606",
    "cik": "0001452208",
    "company": "CACTI ASSET MANAGEMENT LLC",
    "formtype": "13F-HR",
    "total_holdings": 79,
    "unique_holdings": 79,
    "total_value": 1894004518,
    "report_period_end_date": "2026-09-30",
    "is_amendment": false,
    "amendment_no": 0,
    "amendment_type": "",
    "filing_date": "2026-10-01",
    "file_number": "028-14121",
    "share_value": 1833017288,
    "share_holdings_cnt": 11154523,
    "fund_value": 60987230,
    "fund_holdings_cnt": 325493,
    "warrant_value": 0,
    "warrant_holdings_cnt": 0,
    "call_value": 0,
    "call_holdings_cnt": 0,
    "put_value": 0,
    "put_holdings_cnt": 0,
    "pfd_value": 0,
    "pfd_holdings_cnt": 0,
    "debt_value": 0,
    "debt_holdings_cnt": 0,
    "agg_total_value": 1894004518,
    "agg_total_holdings": 79,
    "agg_unique_holdings": 79,
    "agg_total_holdings_cnt": 11480016,
    "buy_value": 0.0,
    "sell_value": 0.0
  }
]
```

### Field reference

Every field is present in every message. A value the filing does not provide is sent as an
empty string, `0` or `false`, never as `null`. A `0` can therefore mean either zero or not
reported. Dates are strings in `YYYY-MM-DD` format, and values are in USD.

The fields that start with `agg_`, and `buy_value` and `sell_value`, cover the whole report
period, including the amendments filed for it. The other totals cover this filing only.

<div className="field-table">
  | Field | Type | Description |
  | - | - | - |
  | `accession_no` | string | SEC accession number of the filing. |
  | `cik` | string | SEC CIK of the filing institution. |
  | `company` | string | Name of the filing institution. |
  | `formtype` | string | SEC form type, such as `13F-HR`, `13F-HR/A` or `13F-NT`. |
  | `total_holdings` | int | Number of holdings reported in the filing. |
  | `unique_holdings` | int | Number of distinct tickers held. |
  | `total_value` | int | Value of all reported holdings. |
  | `report_period_end_date` | string | End date of the quarter the holdings are reported for. |
  | `is_amendment` | boolean | Whether the filing amends an earlier 13F filing. |
  | `amendment_no` | int | Amendment number. `0` when the filing is not an amendment. |
  | `amendment_type` | string | Type of the amendment, such as `NEW HOLDINGS` or `RESTATEMENT`. Empty string when the filing is not an amendment. |
  | `filing_date` | string | Date the filing was published to the SEC. |
  | `file_number` | string | SEC file number assigned to the filer, such as `028-14121`. |
  | `share_value` | int | Value of the equity share holdings. |
  | `share_holdings_cnt` | int | Number of shares across the equity share holdings. |
  | `fund_value` | int | Value of the fund holdings (mutual funds and ETFs). |
  | `fund_holdings_cnt` | int | Number of shares across the fund holdings. |
  | `warrant_value` | int | Value of the warrant holdings. |
  | `warrant_holdings_cnt` | int | Number of shares across the warrant holdings. |
  | `call_value` | int | Value of the call option holdings. |
  | `call_holdings_cnt` | int | Number of shares across the call option holdings. |
  | `put_value` | int | Value of the put option holdings. |
  | `put_holdings_cnt` | int | Number of shares across the put option holdings. |
  | `pfd_value` | int | Value of the preferred stock holdings. |
  | `pfd_holdings_cnt` | int | Number of shares across the preferred stock holdings. |
  | `debt_value` | int | Value of the debt holdings. |
  | `debt_holdings_cnt` | int | Number of shares across the debt holdings. |
  | `agg_total_value` | int | Value of all holdings for the report period. |
  | `agg_total_holdings` | int | Number of holdings for the report period. |
  | `agg_unique_holdings` | int | Number of distinct tickers for the report period. |
  | `agg_total_holdings_cnt` | int | Number of shares across all holdings for the report period. |
  | `buy_value` | float | Total value bought in the report period. |
  | `sell_value` | float | Total value sold in the report period. |
</div>

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