SEC Insider Trading Alerts: Form 4 Buys & Sells
Pricing
from $2.50 / 1,000 insider transaction returneds
SEC Insider Trading Alerts: Form 4 Buys & Sells
Get every insider buy or sell (SEC Form 4) for a list of tickers or the whole market, filtered by role (CEO and CFO insider buys), type and size (purchases over $100k), with cluster detection. Alerts to Slack, Discord or Telegram when filed. Export insider transactions to Google Sheets or n8n.
Pricing
from $2.50 / 1,000 insider transaction returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Every insider buy or sell (SEC Form 4) for your tickers or across the whole market, as it is filed. Each non-derivative transaction an officer, director or 10% owner reports to the SEC: the insider, their role and title, the shares, the price, the dollar value, the shares they hold afterwards, and a link to the real filing. Filter by transaction type, role and dollar size. Turn on monitoring and each new transaction goes to your Slack, Discord or Telegram the day it is filed. Turn on cluster mode and you only get companies where several different insiders bought within the same window.
This reports public SEC filings. It is not investment advice and contains no trading signals.
How to use
- In the Apify Console. Open the actor page and click Start — the
tickersfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~sec-insider-trading-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"tickers":[""]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"tickers": [""]}
Optional. One stock ticker per line (e.g. AAPL, NVDA). Leave empty to get insider transactions from the whole market in the date window below. Each ticker is matched to its SEC filer and only Form 4 filings for that company are searched. Accepted formats: AAPL, NVDA, TSLA.
{"sinceDays": 7,"industryKeywords": ["Biotechnology"],"states": ["CA", "NY"],"minAmountUsd": 1000000,"onlyNewSinceLastRun": true}
This actor is one search over a date window, not a per-line lookup: sinceDays sets how far back to
search (default 7, up to 90), industryKeywords/states/minAmountUsd are optional filters applied
before you're billed, and maxResults (default 100, up to 1,000) is what actually caps the run's cost
— SEC files hundreds of Form D filings a day across all industries. Turn on onlyNewSinceLastRun to
get only filings this watchlist hasn't returned before, charged nothing on a quiet day.
Output
One row per item, for example:
| query | found | status | transactionCount | issuerName | issuerCik | ticker | insiderName | insiderCik | role | officerTitle | transactionDate | filedAt | transactionCode | transactionType | shares | pricePerShare | valueUsd | sharesOwnedAfter | directOrIndirect | accessionNumber | filingUrl | isAmendment | isNew | firstSeenAt | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| true | OK | <company (issuer)> | <insider (reporting owner)> | <price per share (usd)> | <value (usd)> | <direct (d) or indirect (i) ownership> | <is this an amended form 4 (4/a)?> | <is this new since the last run?> | 1970-01-01T00:00:00.000Z |
A miss comes back as a row with "found": false and is never charged.
Pricing
- Insider transaction returned: $5 per 1,000 transactions
Plus a $0.002 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~sec-insider-trading-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"tickers":[""]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~sec-insider-trading-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"tickers":[""]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~sec-insider-trading-alerts/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"tickers":["{{transaction}}"]}, mapping the row's transaction into the tickers array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "SEC Form 4 insider trading alerts" — the agent will find and run this actor.
What this is not
- Not investment advice. The actor reports SEC filings and applies the filters you set. It has no ratings, no scores and no recommendations.
- Not a real-time feed. An insider has two business days after a trade to file, so a transaction shows up here on the day it is filed, not the day it happened.
- Not every insider transaction. Only non-derivative transactions (shares, not options) are returned. A filing with options only has nothing to return and is not billed.
Monitoring and alerts
Turn on Only return transactions that are new since the last run to make this an alert. Each transaction is recorded in a named store for 90 days after its filing date, so a repeat run returns only what is new. A quiet run costs only the start fee.
Paste a Discord or Slack webhook, a Telegram bot link, or any URL into Send alerts to and each new transaction is posted there as one message. Only transactions that are billed are posted. A failed message never fails the run; the row's notifyErrors says why, without the link.
Cluster mode
Set Cluster: minimum number of different insiders buying to 2 or more. The actor counts distinct insiders who made open-market buys in one company within the cluster window (default 14 days). The count uses this run's buys plus the buys the watchlist already saw, so it works across scheduled runs. Only transactions from qualifying companies are returned. Cluster mode needs buys (P) in the transaction code.
Related actors
- SEC EDGAR API: Company Lookup by Ticker or CIK, Latest Filings: company details and latest filings by ticker or CIK.
Example runs
Open-market buys across the market, last 2 days (the default daily test)
{ "sinceDays": 2, "transactionCodes": "P", "maxResults": 10 }
C-suite open-market buys of $100k or more, for two tickers, last 7 days
{ "tickers": ["AAPL", "NVDA"], "sinceDays": 7, "transactionCodes": "P", "roles": "cSuite", "minValueUsd": 100000 }
Cluster: 3 or more different insiders bought the same company within 14 days (schedule this one)
{ "transactionCodes": "P", "clusterMinInsiders": 3, "clusterDays": 14, "sinceDays": 14, "onlyNewSinceLastRun": true, "deltaName": "cluster-buys" }