<!-- Agent Datasets docs · stocks_get_insider_trades · canonical: https://www.agentdatasets.com/docs/tools/stocks_get_insider_trades · rendered from https://www.agentdatasets.com -->

# stocks_get_insider_trades

Insider transactions reported on Forms 3/4/5 by one US public company's insiders.

| Field | Value |
| --- | --- |
| Category | Stocks (`stocks`) |
| Exposure | public |
| MCP tool | `stocks_get_insider_trades` |
| Documentation | https://www.agentdatasets.com/docs/tools/stocks_get_insider_trades |

## 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 advertised to MCP clients and mirrored by the REST query string.

| Parameter | In | Type | Required | Default | Constraints | Description |
| --- | --- | --- | --- | --- | --- | --- |
| ticker | input | `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 | input | `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 | input | `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 | input | `string \| null` | no | null | — | Optional case-insensitive substring match on the reporting owner's name ('Cook', 'Buffett'). |
| filed_from | input | `string (date) \| null` | no | null | — | Earliest filed date to include (inclusive, ISO YYYY-MM-DD). |
| filed_to | input | `string (date) \| null` | no | null | — | Latest filed date to include (inclusive, ISO YYYY-MM-DD). |
| include_superseded | input | `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 | input | `integer` | no | 20 | min 1, max 100 | Transactions to return, newest filing first (1-100). |
| cursor | input | `string \| null` | no | null | — | Opaque pagination cursor from a previous response's `pagination.next_cursor`; omit to start from the newest. |

## Provenance

- `sec_edgar_insiders` — U.S. Securities and Exchange Commission (EDGAR), Insider transactions and holdings from structured Forms 3/4/5 (issuer, reporting owner and relationship, transaction date and code, security title, shares, price per share, and post-transaction holdings) (SEC EDGAR public records disseminated without copyright restrictions; substantive content is filer-submitted). See https://www.agentdatasets.com/docs/attribution.md

Dataset registry: `stocks_insider_transactions`.
