Skip to main content
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