Skip to main content
Financial Data API serves insider transaction activity for any company in the scored universe, assembled from public SEC Section 16 filings (Forms 3, 4, and 5). One call returns a company’s insider trades newest first: who traded, their relationship to the issuer, the transaction date and code, shares and price, and a signed transaction value — with every row traceable to the filing it came from.
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 as x-api-key (or Authorization: Bearer) with the data:read scope. See Authentication.

Look up by ticker, CIK, or entity id

The idOrLookup 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-trades

By CIK

GET /companies/0000320193/insider-trades

By entity id

GET /companies/ent_aapl/insider-trades

Parameters

start_date and end_date bound the transaction date, not the filing date: a late-filed Form 4 surfaces under the date the insider actually traded. As everywhere else, unknown query parameters are rejected with bad_request.

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.
For “real” conviction signals, most workflows start from transaction_code=P (open-market purchases) with include_derivative=false — grants, tax withholding, and option exercises are routine compensation mechanics rather than discretionary trades.

Notes and caveats

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 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.
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.
The MCP server exposes this endpoint as the insider_trades tool, so agents can pull the same rows conversationally.

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.