Stock Insider Trading - SEC Form 4 Buys, Sells & Cluster Buys
Pricing
from $1.00 / 1,000 results
Stock Insider Trading - SEC Form 4 Buys, Sells & Cluster Buys
Track insider trading from SEC Form 4 filings: insider buys and sells market-wide or per ticker. Filter by trade value, insider role (CEO, CFO, director), and date. Detect cluster buys where multiple insiders buy the same stock. Clean flat JSON for AI agents, LLM pipelines, and trading signals.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Michal Búci
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Track what corporate insiders do with their own money. This actor returns insider trading transactions from SEC Form 4 filings as clean, flat JSON — across the entire US stock market or for specific tickers, with built-in cluster buy detection (multiple insiders buying the same stock).
Built for AI agents, LLM pipelines, trading signal research, and market monitoring. Every field is typed, documented, and compact — one flat row per transaction that drops straight into a spreadsheet, database, or LLM context window. Data comes straight from SEC Form 4 filings, updated continuously throughout the trading day.
What makes it different
- Catch signals across the whole market. Leave the ticker empty and it scans every insider trade in the US market, so you can spot heavy buying or selling at companies that aren't on your radar yet — not just look up names you already know. Pass tickers when you do want a specific company's history. Same flat output either way.
- Cluster buys, detected for you. Several insiders buying the same stock in the same window is one of the strongest bullish signals there is. The actor groups purchases by company and tells you how many distinct insiders are behind each one, so conviction plays surface on their own instead of you hunting for them.
- Compact output, every field usable. Around 25 plain, typed fields per transaction — who, role, buy or sell, price, shares, dollar value, ownership change, dates, and a link to the filing. One row per trade, no nested objects, nothing padded out. A spreadsheet opens clean and an AI agent spends its context on the data instead of parsing it.
- Complete data when you want it. Pagination is automatic, so a full month across the whole market or years of a single company's history comes back whole — set
maxResultsas high as you need. Rows come newest-first, so a smaller limit simply keeps the most recent matches.
What you can do with it
- Morning market scan: "Show me all insider purchases over $100k filed in the last 24 hours"
- Cluster buy signals: "Which companies had 3+ insiders buying this month?" — one of the strongest documented bullish signals
- Portfolio monitoring: "Did any insiders sell at the companies I hold this week?"
- CEO/CFO conviction tracking: "Show me C-suite open-market purchases, market-wide"
- Per-company history: "Full insider transaction history for NVDA back to 2003"
Modes
Market-wide feed (leave tickers empty): latest insider transactions across all US stocks, filtered server-side by trade type, minimum value, insider role, and filing date.
Ticker mode (set tickers): insider transaction history per company. Set daysBack: 0 for the full history.
Both modes return the same flat row format, so your downstream code or agent only needs to understand one schema.
Example input
Market-wide notable buys and sells, last 7 days (this is the default — {} works too):
{"tradeTypes": ["purchase", "sale"],"minTradeValueUsd": 25000,"daysBack": 7,"maxResults": 5000}
Cluster buys only — companies where 2+ insiders bought:
{"clusterBuysOnly": true,"minTradeValueUsd": 25000,"daysBack": 14}
Per-ticker history:
{"tickers": "AAPL, MSFT","daysBack": 0,"tradeTypes": ["purchase", "sale"],"maxResults": 500}
Example output (one row per transaction)
{"filedAt": "2026-06-11T11:17:33Z","tradeDate": "2026-06-09","ticker": "MTDR","companyName": "Matador Resources Co","insiderName": "Stetson Glenn W","insiderCik": "2020289","insiderTitle": "EVP","insiderRoles": ["officer"],"tradeType": "purchase","price": 42.95,"quantity": 2400,"valueUsd": 103080,"sharesOwnedAfter": 26414,"ownershipChangePct": 10.0,"isClusterBuy": true,"clusterInsiderCount": 3,"isAmendedFiling": false,"isMultipleTransactions": false,"hasDerivativeTransactions": false,"tradeTypeRaw": "P - Purchase","ownershipChangeRaw": "+10%","flagsRaw": null,"secForm4Url": "http://www.sec.gov/Archives/edgar/data/.../wk-form4_1781176650.xml","accessionNumber": "0002020289-26-000006","source": "openinsider"}
Field notes
filedAtvstradeDate:filedAtis when the SEC received the filing (freshness; default sort).tradeDateis when the insider actually traded — it can lag the filing by days or occasionally much longer.tradeType: open-marketpurchaseandsaleare the meaningful signals. Grants, option exercises, and tax withholdings are compensation mechanics — excluded by default, but available viatradeTypes.quantity/valueUsdare signed: negative = disposal.ownershipChangePctis null when the source reportsNew(first disclosed stake) or>999%— the raw string is preserved inownershipChangeRaw.accessionNumberis the SEC's unique filing ID — use it to deduplicate across scheduled runs.isAmendedFiling(Form 4/A) rows can duplicate the original filing's transaction with corrected values.hasDerivativeTransactions: only non-derivative transactions are returned as rows (open-market buys/sells, grants, etc.). Derivative legs (options, warrants) are not emitted as rows — when a filing contains them this flag istrueso you know there's more in the underlying Form 4 (followsecForm4Url). This keeps option-exercise noise out of screens by design; occasionally a real signal lives in the derivative section, so check the filing when the flag is set.
Cluster buy detection
With clusterBuysOnly: true, the actor fetches all qualifying purchases market-wide, groups them by company, and returns only purchases at companies where at least minClusterInsiders distinct insiders (matched by SEC CIK) bought within the window. Rows are sorted by cluster size, then filing date.
By default, insiders who are 10%+ owners without any officer or director role are excluded from clusters (excludePureTenPercentOwners) — a fund accumulating shares is not a management-conviction signal.
Use with AI agents (MCP)
This actor works as a tool via the Apify MCP server, so any MCP-compatible agent (Claude, etc.) can call it directly:
$npx @apify/actors-mcp-server --tools michael_b/stock-insider-trading
Typical agent calls:
{}→ notable insider activity, last 7 days{"clusterBuysOnly": true, "daysBack": 14}→ cluster buy signals{"tickers": "AAPL", "daysBack": 365}→ one year of AAPL insider activity
Rows are compact (~25 fields, no long text). The actor paginates automatically past the source's 5,000-rows-per-request limit, so a long window with loose filters can return tens of thousands of rows; lower maxResults to keep responses inside LLM context windows.
Data source & freshness
Data is parsed from SEC Form 4 filings (via OpenInsider, which indexes EDGAR continuously). New filings typically appear within minutes to hours of hitting EDGAR. Filing timestamps are converted to UTC. Coverage: non-derivative transactions (open-market trades); filings that also contain derivative legs are flagged via hasDerivativeTransactions.
Pricing & cost
Pay per result — the bill is simply rows returned × the per-result price, so cost scales linearly with how many rows come back. A tightly filtered scan (cluster buys, or a single ticker) returns tens to a few hundred rows and costs accordingly; runs are fast (seconds), with no browser or proxies.
Cost control: maxResults is hard-capped at 100,000, so no single run can exceed that many rows. Keep typical runs cheap with filters — clusterBuysOnly: true, a minTradeValueUsd floor, a smaller daysBack, or a lower maxResults. The one case to set deliberately is a high maxResults with an unfiltered daysBack: 0 market-wide scan (all insider history), which is what approaches the ceiling.
Related actors
- Stock News Scraper (Finviz) — full-text news by ticker
- Stock Earnings Calendar — earnings dates with EPS/revenue estimates