Skip to main content
NOTE: This is the documentation for the websocket channel sec:13dg_filings. Websocket access for personal use is only available through the Advanced plan. You can find fully-functional examples that stream data from many channels here: Connect to the websocket URI: wss://api.unusualwhales.com/socket?token=<YOUR_API_TOKEN> then join the sec:13dg_filings channel. Each message carries one beneficial ownership report: a filer discloses its stake in a class of an issuer’s securities. Schedule 13D and Schedule 13G reports, and the amendments of both, arrive on this one channel. Use formtype to tell them apart. Two companies appear in every message. company, ticker and filed_by_cik describe the filer, the beneficial owner. issuer_name, issuer_symbol and cik describe the issuer, the company whose securities are owned.

Delivery characteristics

  • Updates are event driven. The channel stays silent until a Schedule 13D or 13G report is processed. There is no heartbeat and no fixed schedule.
  • Messages are not deduplicated. If the same report is published twice, you receive it twice. Identify a report 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 filer and issuer at once. A join on sec:13dg_filings:<TICKER> is answered with an {"error": "..."} frame.
Payload format:

Field reference

Every field is present in every message. A value that is not available is sent as an empty string, 0 or an empty array, never as null. A 0 can therefore mean either zero or not reported. Dates are strings in YYYY-MM-DD format.
The payload has the fields of the Kafka message Form13DG, published to the topic sec-filings under the key form13dg.
Last modified on October 1, 2026