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