NOTE:
This is the documentation for the websocket channel sec:company_reports.
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:company_reports channel.
Each message carries one periodic report that a company filed with the SEC, together with
the income statement, balance sheet and cash flow statement items parsed from the filing’s
XBRL data. The channel covers the annual and quarterly reports of domestic and foreign
issuers: forms 10-Q, 10-K, 20-F and 40-F, and their amendments. Use formtype to tell them
apart.
Delivery characteristics
- Updates are event driven. The channel stays silent until a company report is
processed. There is no heartbeat and no fixed schedule.
- An item the filing does not report is
0.0. Every statement item is present in every
message, so a 0.0 can mean either zero or not reported.
- Messages are not deduplicated. If the same report is published twice, you receive it
twice. Identify a report by
unique_identifier.
- The channel sends nothing when you join. Messages sent while you are disconnected are
not replayed.
- The channel is global only. It covers every company at once. A join on
sec:company_reports:<TICKER> is answered with an {"error": "..."} frame.
Payload format (shortened, a real message carries every field listed below):
Field reference
Every field is present in every message. Strings the filing does not provide are sent as
empty strings, never as null. Dates are strings in YYYY-MM-DD format.
The name deffered_income_tax is spelled as shown.
Filing
Income statement
Balance sheet
Cash flow statement
Shares, stock awards and buybacks
The payload has the fields of the Kafka message
Form10K, published to the topic
sec-filings under the key company-reports. The message is
named Form10K for all four form types. Last modified on October 1, 2026