All insider trades are derived from public SEC Forms 3, 4, and 5, so values are official-source and redistribution-safe. The insider-trades endpoint requires the
data:read scope.What data is available
GET /companies/{idOrLookup}/insider-trades returns one row per reported transaction, newest first by transaction date. All 15 SEC transaction codes are covered, and every row carries a human-readable transaction_code_label so you can render without a lookup table.
Who
insider_name, insider_cik, is_director, is_officer, is_ten_percent_owner, officer_title.What
transaction_date, transaction_code, transaction_code_label, security_title, shares, price_per_share, value, acquired_disposed, shares_owned_following, direct_or_indirect, is_derivative.Provenance
form, filed_at, accession_number, filing_url, source_id, attribution, plus observation_id for the full provenance chain.value is signed USD: positive when shares were acquired, negative when shares were disposed. acquired_disposed carries the SEC’s own A/D flag, so you can branch on either.Authentication
Send your key asx-api-key (or Authorization: Bearer) with the data:read scope. See Authentication.
Look up by ticker, CIK, or entity id
TheidOrLookup path segment accepts a Financial Data API entity id, a ticker, or a CIK — the same resolution as the financials endpoint. There is no separate resolve step required:
By ticker
GET /companies/AAPL/insider-tradesBy CIK
GET /companies/0000320193/insider-tradesBy entity id
GET /companies/ent_aapl/insider-tradesParameters
Example: AAPL open-market sales
Response
Example rows above are illustrative, with a placeholder insider. Pull live trades from the endpoint.
Transaction codes
The SEC’s Section 16 code table has 15 transaction codes, and all of them are served. The most common:
The remaining codes are served the same way; every row’s
transaction_code_label carries the human-readable label, and the transaction_code filter accepts any of the 15 letters, case-insensitively.
Notes and caveats
Where the data comes from
Where the data comes from
Rows are parsed from public SEC Forms 3 (initial ownership), 4 (changes), and 5 (annual). Each row keeps the
form, accession_number, and filing_url of the filing it came from, and observation_id feeds GET /provenance/observations/{id} for the named source and ingestion run.Derivative vs. non-derivative rows
Derivative vs. non-derivative rows
Derivative transactions (options, RSUs, convertible securities) are included by default and flagged with
is_derivative: true. Set include_derivative=false to keep only non-derivative rows. Derivative rows may omit price_per_share where the filing does not report one.History depth by plan
History depth by plan
Free-plan keys see the most recent 2 years of insider-trade history; the window is clamped server-side, not errored. Paid plans read the full history.
Agent access
Agent access
The MCP server exposes this endpoint as the
insider_trades tool, so agents can pull the same rows conversationally.Related
Institutional ownership
Quarterly SEC 13F holdings for 25 headline institutional filers.
Companies
The scored universe and entity resolution by ticker or CIK.
Financial statements
Structured statements for the same companies, from SEC XBRL filings.
Provenance
Trace any trade back to its named SEC filing and ingestion run.

