Tools / SEC Insider Trading Scraper - Form 4 Insider Trades & Buys
SEC Insider Trading Scraper - Form 4 Insider Trades & Buys
Scrape SEC EDGAR Form 3/4/5 insider ownership filings straight from SEC's own keyless endpoints and get one flat row per reported transaction, not a filing index and not a PDF you still have to parse. Every one of the 20 transaction codes is decoded (S = open-market sale, F = shares withheld for taxes, M = option exercise, etc.), transactionValueUsd is signed and pre-computed so you can sum a column without re-deriving the sign, and the Rule 10b5-1 flag plus footnotes are carried through so you can tell a pre-scheduled plan sale from a discretionary one. Optional transactionCodes, minTransactionValue and insiderRoles filters are applied before anything is returned or billed, so you can ask for open-market officer buys over a threshold and pay for those rows only. The insider's personal street address is never emitted. No API key, no start fee, HTTP only.
Run it
Pay-per-result on Apify, no FetchSmith account needed. Use your own Apify API token, or hit Run on the Store page with no token at all.
curl -X POST "https://api.apify.com/v2/acts/fetchsmith~sec-insider-trades-scraper/run-sync-get-dataset-items?clean=true" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"formTypes": ["4"], "issuers": ["AAPL", "NVDA"], "maxFilingsPerIssuer": 3, "maxResults": 25}'
Returns the rows as JSON when the run finishes. A hosted FetchSmith API (one key, no Apify account, see API docs) is planned but not open yet.
Output fields
id rowType accessionNumber formType isAmendment amendsOriginalFilingDate supersedesAccessionNumber supersedesCandidateAccessions amendedByAccessionNumber filingDate periodOfReport issuerName issuerCik ticker insiderName insiderCik isDirector isOfficer isTenPercentOwner isOther officerTitle coFilers derivative securityTitle transactionDate transactionCode transactionCodeMeaning acquiredOrDisposed shares pricePerShare transactionValueUsd sharesOwnedAfter directOrIndirect indirectOwnershipNature exercisePrice expirationDate underlyingSecurityTitle underlyingShares rule10b5_1Plan footnotes filingUrl url
Sample output
{
"accessionNumber": "0001140361-26-037020",
"acquiredOrDisposed": "D",
"coFilers": [],
"derivative": false,
"directOrIndirect": "D",
"exercisePrice": null,
"expirationDate": null,
"filingDate": "2026-09-17",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126037020/form4.xml",
"footnotes": "This transaction was made pursuant to a Rule 10b5-1 trading plan adopted by the reporting person on May 5, 2026.",
"formType": "4",
"id": "0001140361-26-037020-n0",
"indirectOwnershipNature": null,
"insiderCik": "0001780525",
"insiderName": "Newstead Jennifer",
"isDirector": false,
"isOfficer": true,
"isOther": false,
"isTenPercentOwner": false,
"issuerCik": "320193",
"issuerName": "Apple Inc.",
"officerTitle": "SVP, GC and Government Affairs",
"periodOfReport": "2026-09-15",
"pricePerShare": 330.19,
"rule10b5_1Plan": true,
"securityTitle": "Common Stock",
"shares": 1438,
"sharesOwnedAfter": 32914,
"ticker": "AAPL",
"transactionCode": "S",
"transactionCodeMeaning": "Open-market sale",
"transactionDate": "2026-09-15",
"transactionValueUsd": -474813.22,
"underlyingSecurityTitle": null,
"underlyingShares": null,
"url": "https://www.sec.gov/Archives/edgar/data/320193/000114036126037020/0001140361-26-037020-index.htm"
}
Guides
- SEC Form 4 insider trades have a public JSON API with no key — here are the three endpoints — Every Form 4 insider trade filed with the SEC is readable over plain HTTPS with no API key, no login and no quota signup. Three endpoints do the whole job, and all three 403 on one missing header.
- One Form 4 can name ten reporting owners — and EDGAR's daily index lists the filing once per owner — A joint Form 4 (two or more reporting owners on one filing) breaks two things at once: the EDGAR daily index counts the filing once per CIK, so a naive row count overstates the day's filings by 1.4x–2.0x, and any role filter that reads only the first reporting owner silently drops rows that genuinely match. Measured over three consecutive trading days — 1,038 Form 4s, 38 joint — the joint rate swings from 1.3% to 7.4% day to day, so it cannot be quoted from one sample.
- SEC Form 4 amendments correct real numbers, and no insider-trading Actor's input schema can select them — EDGAR records a Form 4 amendment under a distinct form-type string ("4/A"), not as a flag on the original filing. A live pull across 7 large-cap issuers found 4/A filings on 6 of them — and Tesla's and Agilent's actually correct previously-reported share counts, not just footnotes. The published input schema for this niche offered no way to request them — ours now does, and links each amendment to the filing it replaces.
- We checked every other government-data Actor for SEC Form 4's boolean trap — none of them could have it — Cycle 756 found SEC EDGAR's raw ownership XML serializes a boolean field four different ways (0/1/true/false). The natural follow-up question — do our other government-source Actors share the trap? — turns out to be a data-format question, not a coincidence, and a fleet-wide grep answers it in seconds.
- SEC Form 4's 10b5-1 flag is not spelled "true" — 92% of filings write it as 1 or 0 — A 210-filing live pull across 15 large-cap issuers found the aff10b5One element serialized four different ways, with the obvious boolean check ("=== 'true'") wrong on 92% of them. The same 479 rows also show why sorting Form 4 data by USD value quietly discards a third of it, and that genuine open-market insider buying is 1.25% of rows.
Only publicly accessible pages are read. Respect the source site's terms when using the data.