Insider Trading Tracker - SEC Form 4 Insider Buys & Sells avatar

Insider Trading Tracker - SEC Form 4 Insider Buys & Sells

Pricing

from $1.90 / 1,000 trades

Go to Apify Store
Insider Trading Tracker - SEC Form 4 Insider Buys & Sells

Insider Trading Tracker - SEC Form 4 Insider Buys & Sells

Insider trading tracker for SEC Form 4 filings: every insider buy and sell from EDGAR across the market, by ticker or by insider. Price, value, holdings change, 10b5-1 plan flag, derivatives, footnotes and cluster-buy signals. Schedule it for new-trade alerts.

Pricing

from $1.90 / 1,000 trades

Rating

0.0

(0)

Developer

Group Oject

Group Oject

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

This insider trading tracker reads SEC Form 4 filings straight from EDGAR and turns every insider buy and sell into a clean row: who traded, which company, the transaction code in plain English, shares, price, dollar value, holdings before and after, and whether the trade was part of a 10b5-1 plan. Watch the whole market (like OpenInsider's latest-trades screen), a list of tickers, or specific insiders, and flag cluster buys automatically.

Insider Trading Tracker output in Apify: ticker, company, insider, role, trade date, Form 4 transaction code, buy or sell, shares, price and dollar value

Real output from a default run of Insider Trading Tracker in Apify Console.

What can this insider trading tracker do?

  • Three ways to track. latest reads every Form 4 filed across the US market in your date range. tickers follows the companies you name (AAPL, NVDA, BRK.B ...). insiders follows people or funds by SEC CIK or by name ("Elon Musk", "Warren Buffett").
  • One row per transaction, from Table I (common stock) and Table II (options, RSUs, warrants, convertibles, with exercise price, expiration and underlying shares). Every footnote attached to a row is included as text.
  • Filter like a screener. Transaction codes with labels (P purchase, S sale, A grant, M exercise, F tax withholding, G gift ...), an "only open-market buys and sells" switch, minimum trade value, minimum shares, minimum % change in holdings, insider role (director, officer, 10% owner, other) and officer title words (CEO, CFO, President).
  • Separate planned trades. Each row has is10b5_1Plan, read from the row's footnotes and the filing's Rule 10b5-1 checkbox. Turn on excludePlannedTrades to keep only discretionary trades.
  • Signals. clusterBuy / clusterSell (N or more distinct insiders trading the same company within X days), isLargestBuyForIssuer, isLargeTrade, and tags such as c-suite-buy, director-buy, new-position, holdings-up-10pct-plus and sold-entire-position.
  • Amendments and other forms. Form 4/A is included by default with isAmendment and the original filing date. Form 5 (annual) and Form 3 (initial holdings) are optional.
  • Monitoring. onlyNew + stateKey remembers what earlier runs returned, so a scheduled run saves (and bills) only new trades. Cluster detection keeps a memory of recent buys across runs.
  • A summary for every run. The SUMMARY record lists the top open-market buys and sells by value, cluster buys by company, the most-bought companies and counts by transaction code. It is not billed.
  • Plays by SEC's rules. Only official, public SEC EDGAR data. Requests carry a declared User-Agent and stay under 8 per second (SEC allows 10).

What data do you get?

FieldDescription
issuerName, issuerTicker, issuerCikCompany whose shares were traded
insiderName, insiderCikThe insider (reporting person) and their SEC CIK
insiderRole, insiderRoles, officerTitle"Chief Executive Officer, Director", role flags, title as filed
isDirector, isOfficer, isTenPercentOwner, isOtherRoleRelationship to the company
reportingOwnersAll reporting persons on joint filings
transactionDate, deemedExecutionDateTrade date
transactionCode, transactionLabel, transactionCategoryP / "Open market or private purchase" / open-market-buy
acquiredDisposedAcquired or Disposed
shares, pricePerShare, valueUsdShares, price, shares × price
sharesOwnedBefore, sharesOwnedAfter, ownershipChangePct, isNewPositionHoldings before and after, % change
directOrIndirect, natureOfOwnershipDirect, or Indirect "By trust", "By spouse" ...
isDerivative, securityTitle, conversionOrExercisePrice, exerciseDate, expirationDate, underlyingSecurityTitle, underlyingSharesTable II details
is10b5_1Plan, plan10b5_1Source, filing10b5_1CheckboxRule 10b5-1 plan flag and where it came from
footnotes, remarksFootnote text for the row and filing remarks
formType, isAmendment, originalFilingDate4, 4/A, 5, 3 ...
accessionNumber, filingDate, acceptedAt, periodOfReportFiling identifiers and EDGAR acceptance time (US Eastern)
filingUrl, xmlUrlSEC filing index page and the raw Form 4 XML
clusterBuy, clusterSell, clusterInsiderCount, isLargestBuyForIssuer, isLargeTrade, signalsComputed signals

The dataset has two views: Insider trades (the overview table) and Signals.

How much does it cost?

Pay per result: $2.50 per 1,000 trades (one dataset row = one trade). There is no subscription, and you are never charged for errors, for filings that don't match your filters, or for the SUMMARY and ERRORS records. The run stops at the maximum charge you set.

On paid Apify plans the per-result price drops automatically (Bronze and above get volume discounts); the Pricing tab shows your exact rate.

  • Daily market scan of open-market buys and sells. A typical trading day has a few hundred Form 4 filings and roughly 100–400 open-market P/S rows. One run with mode: "latest", lastNDays: 1, openMarketOnly: true returns those rows.
  • Watchlist monitor. 20 tickers checked every hour with onlyNew: true returns only the trades filed since the last run, often 0–30 rows a day. A run that finds nothing new saves no rows, so it has no per-result charge.

How to use it

  1. Open the actor and pick What to track: latest filings, tickers or insiders.
  2. Set the date range (Last N days, or Date from / Date to).
  3. Add filters: open-market only, transaction codes, minimum value, roles, 10b5-1 exclusion.
  4. Click Start. Rows appear in the dataset as Insider trades; open Signals for cluster buys, and the SUMMARY record for top trades.
  5. To get alerts, turn on Only new trades, give the monitor a State key and schedule the actor.

Input example

{
"mode": "latest",
"lastNDays": 1,
"openMarketOnly": true,
"minTransactionValueUsd": 100000,
"excludePlannedTrades": true,
"maxResults": 500
}

Track companies or people instead:

{ "mode": "tickers", "tickers": ["AAPL", "NVDA", "TSLA"], "lastNDays": 90 }
{ "mode": "insiders", "insiderCiks": ["Elon Musk", "1197649"], "lastNDays": 365 }

Output example

Synthetic example row (values invented for illustration):

{
"id": "0001234567-26-000123:N1",
"issuerName": "Example Widgets Corp",
"issuerTicker": "EXWD",
"issuerCik": "0009999999",
"insiderName": "Doe Jane",
"insiderCik": "0009000001",
"insiderRole": "Chief Executive Officer, Director",
"insiderRoles": ["director", "officer"],
"officerTitle": "Chief Executive Officer",
"isDirector": true,
"isOfficer": true,
"isTenPercentOwner": false,
"rowType": "transaction",
"isDerivative": false,
"securityTitle": "Common Stock",
"transactionDate": "2026-10-26",
"transactionCode": "P",
"transactionLabel": "Open market or private purchase",
"transactionCategory": "open-market-buy",
"acquiredDisposed": "Acquired",
"shares": 10000,
"pricePerShare": 25.5,
"valueUsd": 255000,
"sharesOwnedBefore": 40000,
"sharesOwnedAfter": 50000,
"ownershipChangePct": 25,
"isNewPosition": false,
"directOrIndirect": "Direct",
"is10b5_1Plan": false,
"plan10b5_1Source": null,
"filing10b5_1Checkbox": false,
"footnotes": "F1: The price reported is a weighted average of purchases from $25.40 to $25.60.",
"formType": "4",
"isAmendment": false,
"accessionNumber": "0001234567-26-000123",
"filingDate": "2026-10-27",
"acceptedAt": "2026-10-27T17:30:05-04:00",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/9999999/000123456726000123/0001234567-26-000123-index.htm",
"xmlUrl": "https://www.sec.gov/Archives/edgar/data/9999999/000123456726000123/form4.xml",
"clusterBuy": true,
"clusterSell": false,
"clusterInsiderCount": 3,
"isLargestBuyForIssuer": true,
"isLargeTrade": false,
"signals": ["open-market-buy", "cluster-buy", "largest-buy-for-issuer", "c-suite-buy", "director-buy", "holdings-up-10pct-plus"]
}

Monitor new insider trades on a schedule

  1. Set Only new trades (onlyNew: true) and a State key such as my-watchlist. Each state key keeps its own memory in a named key-value store, so different watchlists don't interfere.
  2. In Apify Console, open Schedules and run the actor every hour, or once a day after the market closes (most Form 4s are filed in the evening, US Eastern).
  3. Each run saves only trades it hasn't returned before. Filings it already read are skipped before download, so repeat runs are fast and you pay only for new rows.
  4. Send the new rows where you need them with Apify integrations: a webhook, Slack, e-mail, Google Sheets, Zapier, Make or n8n.

Example: alert on insider buying worth $250k+ by officers at your watchlist companies.

{
"mode": "tickers",
"tickers": ["AAPL", "MSFT", "AMZN", "JPM", "XOM"],
"lastNDays": 7,
"transactionCodes": ["P"],
"minTransactionValueUsd": 250000,
"roles": ["officer"],
"onlyNew": true,
"stateKey": "watchlist-buys"
}

Use with the API

cURL

curl -X POST "https://api.apify.com/v2/acts/groupoject~sec-insider-trading-tracker/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"latest","lastNDays":1,"openMarketOnly":true,"maxResults":200}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("groupoject/sec-insider-trading-tracker").call(run_input={
"mode": "tickers",
"tickers": ["NVDA", "TSLA"],
"lastNDays": 30,
"openMarketOnly": True,
})
for trade in client.dataset(run["defaultDatasetId"]).iterate_items():
print(trade["transactionDate"], trade["issuerTicker"], trade["insiderName"], trade["transactionCode"], trade["valueUsd"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('groupoject/sec-insider-trading-tracker').call({
mode: 'latest',
lastNDays: 1,
transactionCodes: ['P'],
minTransactionValueUsd: 100000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((t) => t.clusterBuy));

Use with AI agents / MCP

Connect the Apify MCP server at https://mcp.apify.com?tools=groupoject/sec-insider-trading-tracker in Claude Desktop, Cursor, VS Code or any MCP client. Example prompt: "Which companies had cluster insider buying in the last 7 days, and who bought the most in dollars?" The flat JSON rows, plain-English transaction labels and the signals tags make the data easy for an agent to filter and summarize.

Use cases

  • Insider buying alerts. Schedule onlyNew runs for open-market purchases above a dollar threshold and send them to Slack or e-mail.
  • Investment research. Pull a year of trades for a ticker, compare discretionary buying with planned 10b5-1 sales, and spot cluster buys. Combine with price data in your own model.
  • AI agents and newsletters. Feed the daily largest buys and cluster buys into an LLM summary or a market newsletter.
  • Compliance and governance. Follow trades by named officers, directors and 10% owners, including amendments, gifts and indirect holdings.

Integrations

Use Apify integrations to send results to Make, Zapier, n8n, Google Sheets, Slack, e-mail or any webhook when a run finishes. Export the dataset as JSON, CSV, Excel or XML.

FAQ

From SEC EDGAR, the US Securities and Exchange Commission's public filing system. Corporate insiders must report their trades on Form 4 within two business days, and the SEC publishes the filings for anyone to read. This actor downloads only those public filings, sends a declared User-Agent and keeps under SEC's fair-access limit of 10 requests per second. No login, no paid data feed.

How fresh is the data?

latest mode uses EDGAR's full-text search index, which lists filings minutes after EDGAR accepts them. Insiders have two business days after the trade to file, so transactionDate can be a day or two before filingDate. Most Form 4s are filed in the late afternoon and evening (US Eastern).

How are amendments handled?

A Form 4/A is returned as its own rows with isAmendment: true and originalFilingDate. It does not delete the original filing's rows; compare the two by insider, issuer and trade date. Drop amendments by removing "4/A" from Form types.

Why do my numbers differ from OpenInsider?

OpenInsider merges all transactions of one filing into a single line with an average price and shows only some transaction types by default. This actor returns every transaction line (several sales at different prices are several rows), includes derivative rows, amendments and all codes unless you filter them. It also uses EDGAR's own filing date. Use openMarketOnly and includeDerivative: false for the closest match.

How does the 10b5-1 flag work?

Since April 2023, Form 4 has a checkbox for trades made under a Rule 10b5-1 plan, and filers usually add a footnote such as "effected pursuant to a Rule 10b5-1 trading plan adopted on ...". A row is flagged when its own footnotes say so. When no footnote in the filing mentions a plan but the checkbox (or remarks) does, open-market P and S rows are flagged and plan10b5_1Source says checkbox or remarks.

Why did I get no rows?

Check the date range first: weekends and holidays have no filings (in latest mode with Last N days, the actor then uses the most recent filing day). Strict filters, such as P only above $1M with officers only, can match nothing on a quiet day. Unknown tickers and names are listed in the ERRORS record. Ticker mode only covers companies in SEC's ticker list; use the company's CIK otherwise.

Do I need a proxy or an SEC account?

No account is needed. SEC data is public. The actor uses Apify's datacenter proxy by default only to spread heavy scans over several IPs, and falls back to a direct connection if the proxy fails. If you run very large scans, add your e-mail in contactEmail so SEC can identify your traffic.

Is this investment advice?

No. This tool reports what insiders filed with the SEC. Insider purchases and sales have many reasons (taxes, diversification, planned sales, option expirations) and are not a recommendation to buy or sell anything.