Financial data is informational and may be inaccurate. See Disclaimer.

drillr.ai
API keys →

Ownership · US only

Insider trades

GET/api/v2/insider-tradesUS only
Coverage
US
Billing
20 cr / thousand calls

One row per insider transaction, sourced from per-transaction SEC Form 4 / Form 5 filings (Form 3 reports only initial holdings and has no transaction rows). The endpoint restates only the transaction facts in the filing (who, when, how much was bought or sold); it includes no profiling or evaluation of the reporting person.

  • The date axis is the filing date filing_date; omitting from / to returns every record ingested so far, paginated by filing_date desc, accession_number desc.
  • transaction_type is a normalized enum; the original SEC transaction code is in transaction_code. To filter for open-market buys and sells only, use buy / sell (neither exercise nor tax_withholding is an open-market trade).
Shared ownership conventions

Both endpoints in this group cover only US-listed companies, with the data parsed from the as-filed SEC documents; a non-US ticker returns 404.

Query parameters

ParameterTypeRequiredDescription
tickerstringrequiredA single ticker.
fromdateoptionalStart of the filing date (filing_date) range, inclusive of that day; to query a single day, set from = to.
todateoptionalEnd of the filing date range, inclusive of that day.
transaction_typestringoptionalbuy | sell | award | exercise | tax_withholding | other, multiple values allowed, comma-separated. Default All.
limitintoptionalMaximum 500. Default 50.
pageintoptionalStarts at 1. Default 1.

Sorted filing_date desc, accession_number desc; within one filing, in the row order of the filed form. Paged with limit and page (pages start at 1); fewer rows than limit means the last page.

Response fields

FieldTypeDescription
tickerstringcanonical ticker
insider_namestringName of the reporting person (uppercase, as in the as-filed document)
insider_titlestringTitle of the reporting person, as filed
is_directorboolDirector status as checked on the filed form
is_officerboolOfficer status as checked on the filed form
transaction_typestringNormalized enum: buy (P, open-market or private purchase) / sell (S, open-market or private sale) / award (A, award) / exercise (M, shares acquired on the exercise or conversion of options or derivative securities) / tax_withholding (F, shares disposed of for tax withholding at vesting, a reduction in holdings) / other (G gift, C conversion, D returned to the issuer, J other, and so on)
transaction_codestringOriginal SEC transaction code
transaction_datedateTransaction date
security_titlestringSecurity name (Common Stock / RSU / Option, and so on)
ownership_typestringdirect | indirect
sharesnumberNumber of shares transacted
price_per_sharenumberTransaction price; null for awards
total_valuenumbershares × price_per_share; null when price_per_share is null
shares_owned_afternumberShares held after the transaction
accession_numberstringSEC accession number (e.g. 0000320193-25-000123) identifying this filing
form_typestringSEC form name, either 4 or 5. Only original filings are returned; amendments (4/A / 5/A) do not get their own rows
filing_urlstringDeep link to the filing on SEC EDGAR; opens directly
filing_datedateFiling date: the date the filing became public on EDGAR

No key yet? Create one under API Keys — it is shown once, so store it where your shell can read it. Connecting an agent over MCP instead? That signs in through the browser and needs no key at all.

Authentication, conventions, rate limits and error shapes are the same for every endpoint — they live on REST API.