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

# Form345

> A single transaction row of an insider trade filing (SEC forms 3/4/5/144). One message per row of the filing; same-typed rows are additionally published in aggregated form as InsiderTradeAgg.

Message
fields**31**
topic[sec-filings](https://api.unusualwhales.com/docs/kafka/topics/sec-filings.md)

**Proto definition**

```protobuf schema.proto theme={null}
message Form345 {
  string ticker = 1;
  string filing_date = 2;
  string transaction_date = 3;
  string formtype = 4;
  string owner_name = 5;
  string officer_title = 6;
  bool is_director = 7;
  bool is_officer = 8;
  bool is_ten_percent_owner = 9;
  string security_ad_code = 10;
  string transaction_code = 11;
  int64 shares_owned_before = 12;
  int64 amount = 13;
  int64 shares_owned_after = 14;
  double price = 15;
  string security_title = 16;
  string director_indirect = 17;
  string natureofownership = 18;
  string date_excercisable = 19;
  double price_excercisable = 20;
  string expiration_date = 21;
  string unique_identifier = 22;
  int64 row_num = 23;
  string accession_no = 24;
  string amended_original_accession_no = 25;
  double raw_filing_price = 26;
  bool is_10b5_1 = 27;
  string reporter_cik = 28;
  string issuer_cik = 29;
  bool reporter_disclaimed_ownership = 30;
  string report_period = 31;
}
```

## Fields

The number on the right of each row is the protobuf field number.

ticker
string
1

the ticker traded by the insider in the filing that company is the filing's issuer

filing\_date
string
2

the date the filing was published to the SEC on

transaction\_date
string
3

the date the filing's transactions were executed

formtype
string
4

the SEC filing form type 3: initial statement of beneficial ownership 4: statement of changes of beneficial ownership 5: annual statement 144: notice of proposed sale of restricted or control securities (intended sale, NOT yet completed) .../A: amendment to a prior filing

owner\_name
string
5

the name of the reporting person owning the traded equity securities

officer\_title
string
6

the reporting person's officer title in the issuer company, if any exists (e.g. CEO)

is\_director
bool
7

whether the reporting person serves on the issuer's board of directors

is\_officer
bool
8

whether the reporting person is an officer of the issuer (e.g., CEO, CFO) typically paired with an officer title field

is\_ten\_percent\_owner
bool
9

whether the reporting person beneficially owns more than 10% of a class of the issuer's registered equity securities

security\_ad\_code
string
10

composite transaction type: NA: Non-derivative, Acquired -> insider gained common stock (a buy, grant, or vesting) ND: Non-derivative, Disposed -> insider gave up common stock (a sale, gift, or withholding). DA: Derivative, Acquired -> insider gained a derivative (option/warrant grant, etc.). DD: Derivative, Disposed -> insider gave up a derivative (exercise, expiration, sale).

transaction\_code
string
11

type of the transaction (e.g. S=Sale, P=Purchase, A=Grant, ...)

shares\_owned\_before
int64
12

the number of holdings owned before the transaction

amount
int64
13

the number of holdings traded in the transaction

shares\_owned\_after
int64
14

the number of holdings owned after the transaction

price
double
15

the price per security paid in the transaction (corrected in case of mis-inputs, e.g. filer input the total transaction value)

security\_title
string
16

the name of the security (e.g. "Common Stock")

director\_indirect
string
17

whether the reporter directly or indirectly owns the equity securities

natureofownership
string
18

explains indirect ownership (e.g. "By Spouse", "By Trust")

date\_excercisable
string
19

date when the derivative becomes exercisable

price\_excercisable
double
20

the derivative's price to exercise

expiration\_date
string
21

date when the derivative lapses

unique\_identifier
string
22

unique identifier computed from multiple fields used to prevent duplication issues

row\_num
int64
23

the index of the row represented by this message in the filing

accession\_no
string
24

the filing's accession no

amended\_original\_accession\_no
string
25

if the filing is an amendment, this contains the accession no of the amended filing

raw\_filing\_price
double
26

raw price input read from the filing

is\_10b5\_1
bool
27

whether the transactions were part of a 10b5-1 plan (prearranged trading plan, that lets insiders buy or sell at a preset schedule)

reporter\_cik
string
28

the CIK of the reporting person

issuer\_cik
string
29

the CIK of the issuer

reporter\_disclaimed\_ownership
bool
30

whether the reporter disclaimed its ownership of the securities sometimes multiple reporters file the same insider trade via separate filings, but only one reporter really has beneficial ownership of the securities and the other reporters disclaim their beneficial ownership (e.g. because they are only managing entities) those are marked to prevent double counting insider trades

report\_period
string
31

date the reportable event occurred.
