SEC filings & market structure

Insider Transactions

Open-market trades, option exercises, RSU vesting, gifts, and tax-withholding events by corporate insiders, officers, directors, and 10%+ owners, disclosed on SEC Forms 4 and 5. Pulled from EDGAR and normalized with the insider, their role, the SEC transaction code, shares, price, and total value.

EndpointGET /v1/insider-transactions
SourceSEC EDGAR, Forms 4 & 5
Authx-api-key, a free key works

Live from the data

Loading the latest numbers…

What it returns

One record per reported transaction line, with the reporting owner(s), the security, and the trade. Key fields:

Filters

tickerStock symbol, e.g. AAPL. Case-insensitive.
company_cikSEC CIK (10-digit, zero-padded), alternative to ticker.
officer_nameFull or partial insider name; case-insensitive substring.
transaction_typebuy or sell.
transaction_codesOR-filter on raw SEC codes, ['P'] open-market buys, ['S'] sales, ['M'] option exercises.
is_derivativetrue for options / RSUs / warrants, false for common-stock rows.
min_valueOnly trades with total_value ≥ this amount (USD).
include_unpricedWith min_value only: also keep rows where the insider stated no price (their total_value is null, so judge them on shares). Default false. bulk_v2 only.
aff10b5one10b5-1 trading-plan flag, '1' = plan adopted, '0' = none.
since / untilISO dates (YYYY-MM-DD) bounding the window, on the sort_by date field.
sort_bydisclosure_date (default), transaction_date, or total_value (legacy only).
sort_orderdesc (default) or asc.
limitMaximum records to return. Default 50, max 500.
cursorPass the previous response's next_cursor verbatim to read the next page. Keep sort_by and sort_order the same across pages.
include_baselineAlso return matching Form 3 initial-ownership baselines.
merge_co_reportsDefault true: when a fund, its general partner and the person in control each file a Form 4 for the same purchase, they are merged into one row. Set false for one row per filing (totals then double-count).
include_non_open_marketInclude gifts, transfers, conversions, and tax-withholding events alongside open-market trades.
data_sourcebulk_v2 (default, full SEC bulk corpus) or the legacy collection.
reporting_owner_cikReporting owner CIK (10-digit, zero-padded). bulk_v2 only.
reporting_owner_nameReporting owner name substring, case-insensitive. bulk_v2 only. Anchor it with ticker, company_cik or reporting_owner_cik to search full history; on its own it scans only recent filings.
row_typenonderiv (direct common-stock activity) or deriv (options, RSUs, warrants). bulk_v2 only.
trans_codesThe bulk_v2 spelling of transaction_codes: same codes, same OR-filter, max 30.
schema_erapre_2023 (filed 2006 to 2022) or 2023_plus (filed 2023 on, with the 10b5-1 flag). Driven by filing quarter. bulk_v2 only.

Advanced (bulk_v2) filters: reporting_owner_name, reporting_owner_cik, row_type, trans_codes, schema_era, plus sort_by / sort_order / limit, see the OpenAPI spec.

Example request

curl "https://api.keyvex.com/v1/insider-transactions?ticker=AAPL&limit=1" \
  -H "x-api-key: YOUR_KEY"

Response

{
  "results": [
    {
      "ticker": "AAPL",
      "company_name": "Apple Inc.",
      "officer_name": "Newstead Jennifer",
      "officer_title": "SVP, GC and Secretary",
      "is_officer": true,
      "transaction_code": "F",
      "transaction_type": "sell",
      "security_title": "Common Stock",
      "shares": 32528,
      "price_per_share": 250.12,
      "total_value": 8135903.36,
      "shares_owned_after": 27680,
      "transaction_date": "2026-03-15",
      "disclosure_date": "2026-03-17",
      "is_derivative": false,
      "footnotes": [
        { "ref": "F2", "text": "Shares withheld by Apple to satisfy tax withholding on vesting of RSUs. No shares were sold." }
      ],
      "sec_filing_url": "https://www.sec.gov/Archives/edgar/data/320193/..."
    }
  ],
  "count": 1,
  "has_more": true
}

Example questions you can answer

Related datasets

Query insider transactions from your AI

Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. A free key works: 60 requests/day, one year of history.

Get a free key OpenAPI spec → REST docs →
← All 60+ datasets