Home / Products / Ownership & insiders
Form 3/4/5

Insider Trading API: SEC Forms 3, 4 and 5 as JSON

Every insider transaction from SEC Forms 3, 4 and 5 since 2006 as clean JSON: insider, role, transaction code, shares, price, value and 10b5-1 flag.

14.3Minsider transactions
4.5MForms 3, 4, 5
2006parsed since
curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/insider-trading?ticker=NVDA&code=S&size=2"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/insider-trading",
    params={'ticker': 'NVDA', 'code': 'S', 'size': '2'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
)
print(r.json())

Overview

Corporate insiders report their trades on Forms 3, 4 and 5. EDGAR publishes them as XML with nested tables, footnote references and a different shape for options than for common stock. The Insider Trading API flattens all of it into one row per transaction, joined to the insider's name, title and relationship to the company.

Filter by ticker, CIK, insider, transaction code, minimum value or date range. Ask for open market purchases above $100,000 across the whole market in one call, or stream new Form 4 filings the moment EDGAR accepts them.

What you get

Built for developers who would rather not parse EDGAR.

Every table, every row

Non-derivative and derivative tables, holdings and transactions, with footnotes resolved inline.

Roles that read like people

Director, officer title, 10% owner and other, straight from the reporting owner block.

10b5-1 flag

Know whether a sale was made under a pre-arranged trading plan, as reported since April 2023.

History since 2006

Loaded from the SEC insider datasets and kept current every 30 minutes on weekdays.

Filter server side

ticker, cik, owner, code, minValue, startDate, endDate, formType, paging up to 200 rows.

Endpoints

Authenticate with Authorization: Bearer YOUR_KEY. Responses are JSON.

GET/v1/insider-tradingDocs →

Forms 3, 4, 5: every transaction and holding with owners, roles, prices, footnotes, 10b5-1 flag.

Parameters: ticker, cik, owner, code (P,S,A,M...), minValue, startDate, endDate, formType, table, from, size

GET/v1/form-144Docs →

Proposed sales of restricted and control securities: flat fields (seller, relationship, shares, market value, broker, sale date, past 3 months of sales).

Parameters: cik, startDate, endDate, flat.<field>=value, fields=flat

Response fields

The main fields in every result. The raw filing data is always one level down.

FieldMeaning
ticker, issuer_name, issuer_cikThe company whose stock was traded.
ownersWho traded: name, CIK and relationship (director, officer title, 10% owner).
tx_date, code, codeDescriptionTransaction date and SEC code (P purchase, S sale, A award, M exercise, F tax withholding, G gift).
shares, price, value, acq_dispShares, price per share, total dollar value, acquired (A) or disposed (D).
owned_after, direct_indirectHoldings after the transaction and whether they are held directly.
aff10b5one, footnotesRule 10b5-1 plan flag and the filing's footnotes.

Use cases

Datasets behind this API

The SEC forms this API reads, with live filing counts.

Tutorials

FAQ

How far back does insider trading data go?

Parsed transactions start in 2006, from the SEC's Forms 3, 4 and 5 datasets. Every Form 4 filing since 2003 is also in the filing index.

How quickly do new Form 4 filings show up?

The real-time stream delivers them seconds after EDGAR accepts them, and the parsed API picks them up on the next ingest, every 30 minutes on weekdays.

Can I get only open market buys?

Yes. Pass code=P, and minValue to set a dollar floor. code=S returns open market sales.

Try the Insider Trading API free

500 API calls a month on the free plan. No sales call.

Get free API key →