Insider Trading Tracker API: SEC Form 4 Trades by Ticker
Pricing
$50.00 / 1,000 up to 100 transactions
Insider Trading Tracker API: SEC Form 4 Trades by Ticker
SEC Form 4 insider trades, one row per transaction: officer, director and 10% owner buys, sells, awards and exercises by ticker, with an open-market filter.
Pricing
$50.00 / 1,000 up to 100 transactions
Rating
0.0
(0)
Developer
SentiSense
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Share
SEC Form 4 insider transactions for US stocks, one flat row per transaction as filed: who the insider is, the transaction code exactly as filed, shares, price, value and holdings afterward, a Rule 10b5-1 flag, and an open-market flag and filter that keep tax withholding from passing as a sale. Give it tickers, get the filed rows back, updated daily.
Who it is for
- Traders who want to know whether insiders are buying their own stock on the open market, not just collecting grants and exercising options.
- Analysts and researchers building an insider-activity series who need the raw SEC codes kept, not a pre-digested buy or sell label that loses them.
- AI agents answering "is there insider selling at this company" with typed rows and a filter that separates decisions from paperwork.
What you get per transaction
- The insider: name, title, primary relation (OFFICER, DIRECTOR, TEN_PCT_OWNER or OTHER) and three role booleans, since one person can be an officer, a director and a 10% owner at once.
- The transaction: the raw SEC code (P, S, A, M, G, F, D and the rest), a simplified rollup (BUY,
SELL, EXERCISE, AWARD, GIFT or OTHER), and
openMarket, true only for codes P and S. - The numbers: shares transacted, price per share, total value, shares owned afterward, and whether the holding is direct.
- The plan:
rule10b51, true when the trade ran under a confirmed Rule 10b5-1 pre-arranged plan. - The dates: transaction date and filed date, newest transaction first.
Built by SentiSense, which ingests news, social media, filings and market data all day and distills it
with AI. For a few insider and congressional rows next to sentiment, quote and analyst data, use the
companion actor stock-research-report.
Data by SentiSense. API docs: sentisense.ai/docs/api.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
tickers | string[] | required | US stock symbols, e.g. ["NVDA", "AAPL"]. Up to 25 per run, case-insensitive, duplicates removed. |
lookbackDays | integer | 90 | Trailing window, 1 to 365, applied to the transaction date. |
openMarketOnly | boolean | false | Keep only open-market purchases and sales (SEC codes P and S), dropping awards, option exercises, gifts and tax withholding. |
maxTradesPerTicker | integer | 100 | Most transactions returned per ticker, 1 to 500. Newest first. Billed per block of up to 100 rows. |
Output
One dataset row per transaction. Illustrative rows, every value invented. An open-market sale under a 10b5-1 plan:
{"ticker": "NVDA", "companyName": "NVIDIA Corporation","insiderName": "Example Insider", "insiderTitle": "EVP, Operations", "insiderRelation": "OFFICER","officer": true, "director": false, "tenPctOwner": false,"transactionDate": "2025-10-28", "filedDate": "2025-10-30","transactionCode": "S", "transactionType": "SELL", "openMarket": true,"securityTitle": "Common Stock", "securityBasis": null,"sharesTransacted": 12000, "pricePerShare": 170.1, "totalValue": 2041200,"sharesOwnedAfter": 338500, "directOwnership": true, "rule10b51": true}
A tax-withholding row from the same company, the kind that is not a sale:
{"ticker": "NVDA", "companyName": "NVIDIA Corporation","insiderName": "Example Officer", "insiderTitle": "Chief Financial Officer", "insiderRelation": "OFFICER","officer": true, "director": false, "tenPctOwner": false,"transactionDate": "2025-10-20", "filedDate": "2025-10-22","transactionCode": "F", "transactionType": "SELL", "openMarket": false,"securityTitle": "Common Stock", "securityBasis": null,"sharesTransacted": 1850, "pricePerShare": 168.4, "totalValue": 311540,"sharesOwnedAfter": 41200, "directOwnership": true, "rule10b51": false}
Reading the fields:
transactionCodeis the SEC code as filed and the field to trust.Pis an open-market purchase andSan open-market sale;Ais an award or grant,Man option exercise,Ga gift,Fshares withheld to cover taxes when stock vests,Da disposition back to the issuer.transactionTyperolls them up toBUY,SELL,EXERCISE,AWARD,GIFTorOTHER, andopenMarketis true only forPandS.- Code
Farrives typedSELLbut is not a market sale and involved no decision by the insider: the company withheld shares to pay the tax bill on vesting stock. At companies that pay heavily in stock,Frows are most of the "sold" dollars. SetopenMarketOnly, or checkopenMarket, before calling anything insider selling. rule10b51is true when the trade ran under a confirmed Rule 10b5-1 plan, set up in advance and executed on a schedule. Those trades generally say less about the insider's current view than a discretionary one. It isfalseboth for trades outside a plan and when the filing does not state a plan clearly, sofalsealone does not prove a trade was discretionary.insiderRelationis the primary relation;officer,directorandtenPctOwnercarry every role, since one person can hold several.pricePerShareisnullon $0 awards.securityBasisis set only when the filing was in foreign ordinary shares rather than the US listing, andpricePerShareis leftnullon those rows on purpose, so a foreign-share price is never mistaken for a price per US share.- A ticker with no Form 4 transactions in the window returns
{"ticker": "XYZ", "error": "no_trades"}, which is also what an ETF or an unknown symbol returns. Failed requests returnrequest_failedorhttp_<status>. Neither is charged.
Pricing
$0.05 per block of up to 100 transactions a ticker returns, rounded up. A ticker with 1 to 100 rows
costs $0.05, one with 101 to 200 costs $0.10, and the 500-row maximum costs $0.25; at the default
maxTradesPerTicker of 100, every ticker with activity costs exactly $0.05. Tickers with nothing filed in
the window and failed requests cost nothing. A 20-ticker watchlist where 14 names had Form 4 activity
costs $0.70 at the default.
FAQ
How fresh is the data? Updated daily from SEC Form 4 filings. Insiders must file within two business
days of a trade, so a transaction is usually in the dataset within a few days of happening. filedDate
says when it reached the SEC.
An insider "sold" millions. Is that bad? Check transactionCode first. If it is F, the company
withheld shares to cover the tax on vesting stock; no one placed a sell order and the insider did not
choose the timing. If it is S with rule10b51 true, the sale was scheduled months earlier under a
plan. An S with rule10b51 false is the likeliest to reflect a fresh choice, and a P means the
insider bought shares on the open market with their own money.
What does openMarketOnly drop? Everything except codes P and S: awards (A), option exercises
(M), gifts (G), tax withholding (F), dispositions to the issuer (D) and the other codes. Leave it
off and read openMarket per row when you want the full filing picture, for example to see the
exercise that fed a sale.
Why no_trades for my ticker? No Form 4 transactions were filed for it in the window. Small
companies can go months without one, and ETFs generally have no Form 4 filers, so a fund symbol
returns no_trades too. Widen lookbackDays up to 365. The row is free.
Why is pricePerShare null? Two cases, both on purpose: $0 awards, where no price exists, and rows
filed in foreign ordinary shares (securityBasis set), where a per-share price would not be comparable
to the US listing.
How often should I run it? Once a day. Filings land on a daily clock and are due within two business
days of the trade, so a daily run with a short lookbackDays, such as 7, keeps each result small; use
the full 365 for a one-time history pull.
Educational and informational use only. Not investment advice.