stocks tool
Publicstocks_get_insider_trades
Insider transactions reported on Forms 3/4/5 by one US public company's insiders.
Description
Insider transactions reported on Forms 3/4/5 by one US public company's insiders.
Returns the shared envelope. data echoes issuer identity (ticker,
cik, company_name), coverage_start, and the filters applied
(transaction_type, derivative, insider_name). data.transactions
is one row per Table I/II entry, newest filing first, each carrying the
reporting owner (owner_name, owner_cik, is_director,
is_officer, is_ten_percent_owner, officer_title), the filing
(form_type, filed_date, accession_number for citation), and the
entry itself: transaction_date, transaction_code (the as-reported
SEC code) plus its transaction_type bucket, security_title,
shares, price_per_share, acquired_disposed (A/D),
shares_owned_following, direct_or_indirect (D/I) and
indirect_nature. Decimals are strings and may be null — absent is
never zero (a gift reports no price; a Form 3 initial holding reports
no share count, and holding rows have no code, so they belong to no
bucket). Joint Forms 4 that name several reportingOwner elements
attribute the row to the first owner only in v1. data.summary
describes the WHOLE filtered window rather than the page:
net_nonderivative_shares (shares acquired minus shares disposed
across non-derivative, non-holding rows), buy_transactions and
sell_transactions (counts of P and S rows), and
filed_from/filed_to echoing the window those figures cover. Resolved
amendment chains contribute only their latest filing unless
include_superseded=true requests the full audit history. meta.as_of
is the freshest filing timestamp
on the page; pagination carries limit, has_more and
next_cursor.
Coverage: the S&P 500 pilot issuer universe, SEC structured-XML Forms
3/4/5, a 10-year window from 2016-01-01. Quarterly
institutional-manager holdings (13F) and Schedule 13D/13G
beneficial-ownership filings are different datasets and are NOT served
here. An empty transactions list for a covered company is a normal
success (no insider activity on record for those filters).
Bounds: default 20, max 100 transactions per page; an out-of-range
limit is rejected, never clamped. To page, pass
pagination.next_cursor back as cursor. Errors carry machine codes:
unknown_entity (with did-you-mean suggestions) for an unknown
ticker, out_of_coverage for a company outside the pilot universe,
bad_parameter for an invalid transaction_type, an empty
insider_name, a filed_from after filed_to, or a bad limit or cursor.
Example: stocks_get_insider_trades(ticker="AAPL", transaction_type="buy", filed_from="2026-01-01", limit=10).
Parameters
Input schema
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| ticker | string | Yes | — | A US public company by ticker symbol ('AAPL', 'BRK.B'). Use this to see what its directors, officers and 10% owners reported buying, selling or receiving on SEC Forms 3/4/5. |
| transaction_type | string | null | No | null | Optional bucket filter over the SEC transaction codes: 'buy' (P), 'sell' (S), 'award' (A — grants), 'exercise' (M/C/X — option exercises and conversions), 'gift' (G), or 'other' (every other coded row, e.g. F tax withholding). Filtering never hides the detail: the as-reported SEC code is on every row as `transaction_code`. Holding rows carry no code and so match no bucket. Invalid values return bad_parameter. |
| derivative | boolean | null | No | null | Optional table filter: true = derivative rows only (options, RSUs, convertibles — Table II), false = non-derivative rows only (common stock — Table I). Omit to get both. |
| insider_name | string | null | No | null | Optional case-insensitive substring match on the reporting owner's name ('Cook', 'Buffett'). |
| filed_from | string (date) | null | No | null | Earliest filed date to include (inclusive, ISO YYYY-MM-DD). |
| filed_to | string (date) | null | No | null | Latest filed date to include (inclusive, ISO YYYY-MM-DD). |
| include_superseded | boolean | No | false | Include superseded filings for audit history. Omit or false to return only the latest active filing in each resolved amendment chain. |
| limit | integer | No | 20 | Transactions to return, newest filing first (1-100). |
| cursor | string | null | No | null | Opaque pagination cursor from a previous response's `pagination.next_cursor`; omit to start from the newest. |
Provenance
Sources
- sec_edgar_insidersU.S. Securities and Exchange Commission (EDGAR)
Dataset registry: stocks_insider_transactions