Get started
Ownership

Insider trading data
from Form 4 disclosures.

Purchases, sales, grants, tax withholdings and gifts reported by officers, directors and other insiders of U.S.-listed companies. Each row keeps the original transaction code, the shares, the price and the holding after the transaction.

Original transaction codes

transaction_code keeps the code from the disclosure, such as P, S, A, F or G, so you decide what counts as a discretionary trade.

Direction you can filter

side=acquisition or side=disposition splits additions from reductions. A disposition is not necessarily a sale on the market.

Who, and in what role

owner_name, a stable owner_id and the relationship as disclosed, such as Director or EVP, Chief Financial Officer.

One company or the whole market

Query a ticker, a batch, or omit symbols to read every disclosure in a date range.

What an insider transaction record contains

FieldMeaning
transaction_dateDate of the trade, award or other transaction
filed_onDate the disclosure was filed
filed_atAlways null: the source gives the filing date, not the time
filing_idSEC accession number of the Form 3, 4 or 5
instrument_idThe listing the security trades as, when security_title identifies it
owner_name, owner_id, relationshipThe insider, a stable ID for them, and their role at the issuer
security_titleThe class of security, as the disclosure names it
transaction_codeThe source transaction code, unchanged
sideacquisition or disposition
shares, price, shares_afterShares in the transaction, price per share, and holding afterwards
ownership_typeAlways unknown: the source does not say whether the holding is direct or indirect

Share counts are decimal strings and keep fractions as reported, so a withholding of 977.658 shares stays 977.658. company_id always identifies the issuer. instrument_id names the listing when the disclosure's security_title identifies it: the company's one listed common stock for plain common or ordinary shares, or the listed class the title names. It is null for preferred shares, awards, unlisted classes and companies with several listed classes when the title does not say which. filing_id is the SEC accession number; ownership forms are not part of /v1/filings, so look the filing up on SEC EDGAR. Rows cover non-derivative transactions; option and other derivative transactions are not included.

Reading Form 4 transaction codes

The transaction code matters more than the direction. These are the codes you will see most often:

CodeMeaning on Form 4Usually discretionary?
POpen-market or private purchaseYes
SOpen-market or private saleOften, though some are pre-planned
AGrant or award from the companyNo
FShares withheld to pay tax or an exercise priceNo
GGiftNo

Around vesting dates, grants (A) and tax withholdings (F) far outnumber trades, so a signal built on side alone mostly measures compensation. Filter on P and S for discretionary activity. The record does not say whether a sale was made under a 10b5-1 trading plan. The API filters by side, not by code, so apply the code filter in your own code.

Several rows often share one filing date: a Form 4 can report a grant, the shares withheld for tax on the same day, and a later sale, each with its own code and shares_after. Keep them as separate events rather than netting them, or you lose the difference between compensation and choice.

Use cases

  • Insider buying screens: read the whole market for the last 30 days and keep P rows.
  • Alerts when a named executive sells, keyed on the stable owner_id.
  • Event studies that join disclosures to daily bars on the filing date, when the market learned of the trade.
  • Governance research that follows an insider's holding through shares_after.

Timing, point in time and history

Insiders generally have two business days to report a transaction, so transaction_date and filed_on differ. For a backtest, key the signal on filed_on. as_of excludes disclosures OHLC recorded after the cutoff; knowledge history starts when OHLC began recording the dataset in late September 2026, so earlier cutoffs return no rows. The transactions themselves go back further: on October 3, 2026, Apple's insider history started in April 2015, within the 15 years a Pro plan reads.

Plans and credits

Insider transactions are included on Pro, Commercial and Scale. A query costs 50 credits per symbol, or 500 credits for a page across the whole market. Pro is for internal use; showing insider activity to your own users needs Commercial's display rights. See pricing.

The most recent insider disposition at Apple

RequestcURL
curl 'https://api.ohlc.io/v1/insider-transactions?symbols=XNAS:AAPL&side=disposition&order=desc&limit=1' \
  -H "Authorization: Bearer $OHLC_API_KEY"
Response · Illustrative sampleJSON
{
  "data": [
    {
      "id": "record_acf6795ecad7e1ecd681",
      "company_id": "01M35H2KDW9VT69S5ZCEGMCPAX",
      "instrument_id": "01M35H2KE2ZJHXFY5C3E7FPC66",
      "security_title": "Common Stock",
      "owner_id": "cik:0001780525",
      "owner_name": "Newstead Jennifer",
      "relationship": "SVP, GC and Government Affairs",
      "transaction_date": "2026-09-22",
      "filed_at": null,
      "filed_on": "2026-09-24",
      "transaction_code": "S",
      "side": "disposition",
      "shares": "2399",
      "price": { "amount": "340.06", "currency_code": "USD" },
      "shares_after": "44391",
      "ownership_type": "unknown",
      "filing_id": "0001140361-26-037584"
    }
  ],
  "meta": {
    "timezone": "UTC",
    "as_of": "2026-10-03T15:04:21Z",
    "next_cursor": "AetKEtoo206b...",
    "coverage": { "status": "partial", "reason": "Coverage is partial for the entitled query scope." }
  }
}

Prices delayed 15 minutes · Illustrative sample data

Questions, answered.

What is insider trading data?

It is the record of legal trades and other transactions by a company's officers, directors and large holders in that company's stock, which they must disclose to the SEC. Investors read it for signs of how insiders view the business.

Where does OHLC's insider data come from?

From insider disclosures filed with the SEC, delivered through licensed sources and structured with their original transaction codes, owners and holdings.

How do I find insider buying with the API?

Request side=acquisition for a date range, then keep rows whose transaction_code is P. Acquisition alone also returns grants and other awards that involve no purchase.

Which plan includes insider transactions?

Pro ($149/month), Commercial and Scale. Free and Developer do not include insider data.

Does it include institutional holders?

No. Positions held by institutions and funds are in institutional ownership.

A little JSON.
A lot of possibility.

Explore the API