SEC Form 4 Insider Trading Transactions Scraper
Pricing
from $10.20 / 1,000 results
SEC Form 4 Insider Trading Transactions Scraper
Scrape SEC Form 4 insider trades as structured transactions: insider name, role, transaction code (buy, sell, grant), shares, price per share, transaction value and shares owned after. Search by ticker or CIK, or pull recent market-wide filings. Export to JSON, CSV or Excel.
Pricing
from $10.20 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
SEC Form 4 Insider Trading Transactions Scraper
Here is one real result. The footnotes array is trimmed to 2 of the 11 real notes for length; every other field is exactly as returned:
{"issuerName": "NVIDIA CORP","issuerTicker": "NVDA","issuerCik": "1045810","insiderName": "HUANG JEN HSUN","insiderCik": "1197649","insiderTitle": "Director, President and CEO","isDirector": true,"isOfficer": true,"officerTitle": "President and CEO","isTenPercentOwner": false,"securityType": "non-derivative","securityTitle": "Common Stock","transactionDate": "2026-06-17","transactionCode": "F","transactionType": "Payment of exercise/tax by shares","acquiredDisposed": "D","shares": 45723,"pricePerShare": 207.41,"transactionValue": 9483407.43,"sharesOwnedAfter": 70146252,"ownedValueAfter": 14549034127.32,"ownershipChangePercent": -0.07,"directOrIndirect": "D","natureOfOwnership": null,"conversionOrExercisePrice": null,"exerciseDate": null,"expirationDate": null,"underlyingSecurity": null,"footnotes": ["Represents shares withheld by the Issuer to satisfy taxes due by the Reporting Person in connection with the vesting of restricted stock units previously reported on a Form 4.","Includes 46,495 shares issued upon the vesting of restricted stock units previously reported on a Form 4."],"is10b51Plan": false,"filingDate": "2026-06-23","accessionNo": "0001197649-26-000010","filingUrl": "https://www.sec.gov/Archives/edgar/data/1045810/000119764926000010/wk-form4_1782208834.xml","source": "SEC EDGAR (Form 4)","observedAt": "2026-07-30T17:53:39.335Z"}
The most complete SEC Form 4 insider-trades scraper available. It parses each ownership document into individual transactions and returns every field the filing exposes: who traded, the code and its plain-English meaning, shares, price, value, and the position held afterward, plus derived analytics like transactionValue, ownedValueAfter, ownershipChangePercent, and a Rule 10b5-1 plan flag.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor finds SEC Form 4 insider-ownership filings for a company (by ticker or CIK) or market-wide, parses each ownership document, and writes one record per individual transaction to the run's dataset. Each record identifies the issuer and the insider, their roles (director, officer with title, 10% owner), and the exact transaction: security type and title, date, transaction code with its plain-English meaning, whether shares were acquired or disposed, share count, price, and the position held afterward. Derived fields add the dollar value of the trade (transactionValue), the market value of the remaining position (ownedValueAfter), the percent change in the insider's holding (ownershipChangePercent), and a is10b51Plan flag for pre-arranged Rule 10b5-1 trading plans. Document footnotes are returned in full.
Leave both ticker and cik empty to pull recent market-wide Form 4 filings. The date window defaults to about the last 30 days.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 40 NVIDIA insider transactions filed since the start of 2026.
{"ticker": "NVDA","maxTrades": 40,"dateFrom": "2026-01-01"}
Use transactionCode to keep only certain trade types (for example P, S for open-market buys and sells). Leave ticker and cik empty for a market-wide sweep.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
ticker | string | no | AAPL | Stock ticker of the issuer, for example AAPL, TSLA, NVDA. Leave ticker and cik empty to pull market-wide Form 4 filings. |
cik | string | no | (empty) | SEC CIK of the issuer, used instead of a ticker. If both are set, ticker wins. |
transactionCode | string | no | (all) | Keep only transactions with these Form 4 codes, comma-separated. P purchase, S sale, A grant, M option exercise, F shares withheld for tax, G gift. |
dateFrom | string | no | ~30 days ago | Only include filings on or after this date (YYYY-MM-DD). |
dateTo | string | no | today | Only include filings on or before this date (YYYY-MM-DD). |
maxTrades | integer | no | 10 | Maximum number of insider transactions to collect. |
Output reference
One dataset item per insider transaction. Types: string, number, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
issuerName | string | Company (issuer) name. |
issuerTicker | string | Issuer trading symbol. |
issuerCik | string | Issuer CIK (no leading zeros). |
insiderName | string | Reporting insider name. |
insiderCik | string | Insider CIK (no leading zeros). |
insiderTitle | string | Combined role label, for example Director, President and CEO. |
isDirector | boolean | Whether the insider is a director. |
isOfficer | boolean | Whether the insider is an officer. |
officerTitle | string | Officer title, or null. |
isTenPercentOwner | boolean | Whether the insider is a 10% owner. |
securityType | string | non-derivative or derivative. |
securityTitle | string | Title of the security, for example Common Stock. |
transactionDate | string | Transaction date (YYYY-MM-DD). |
transactionCode | string | Form 4 transaction code, for example P, S, F. |
transactionType | string | Plain-English meaning of the code. |
acquiredDisposed | string | A acquired or D disposed. |
shares | number | Number of shares in the transaction. |
pricePerShare | number | Price per share, or null. |
transactionValue | number | Derived dollar value (shares times pricePerShare), or null. |
sharesOwnedAfter | number | Shares owned after the transaction. |
ownedValueAfter | number | Derived market value of the position held after, or null. |
ownershipChangePercent | number | Derived percent change in the insider's position from this trade. |
directOrIndirect | string | D direct or I indirect ownership. |
natureOfOwnership | string | Nature of indirect ownership, or null. |
conversionOrExercisePrice | number | Conversion or exercise price for derivatives, or null. |
exerciseDate | string | Derivative exercise date, or null. |
expirationDate | string | Derivative expiration date, or null. |
underlyingSecurity | string | Underlying security title for derivatives, or null. |
footnotes | string[] | Full text of each filing footnote, or null. |
is10b51Plan | boolean | Whether the trade references a Rule 10b5-1 plan. |
filingDate | string | Date the Form 4 was filed. |
accessionNo | string | SEC accession number of the filing. |
filingUrl | string | Direct SEC EDGAR link to the ownership document. |
source | string | Always SEC EDGAR (Form 4). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
On a failed run, a single item with a populated error field is written instead, and it is not charged.
Example output record
The full real record is shown at the top of this page. It comes from a live run with input {"ticker":"NVDA","maxTrades":40,"dateFrom":"2026-01-01"}: NVIDIA CEO Jensen Huang had 45,723 shares withheld to cover taxes on vesting RSUs (code F, a disposition) at $207.41, leaving 70,146,252 shares held afterward.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sec-form4-insider-trades-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"ticker":"NVDA","transactionCode":"P,S","dateFrom":"2026-01-01","maxTrades":50}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sec-form4-insider-trades-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"dateFrom":"2026-08-01","dateTo":"2026-08-08","maxTrades":100}'
Apify CLI:
apify call scrapers_lat/sec-form4-insider-trades-scraper \--input '{"ticker":"NVDA","maxTrades":40,"dateFrom":"2026-01-01"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per transaction returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxTrades.
FAQ and troubleshooting
A run returned 0 transactions. Why?
No Form 4 matched the ticker, date window, and code filter. The default window is only about 30 days, so widen dateFrom/dateTo, or drop transactionCode. Zero-result runs are not charged.
One filing produced several records. Why? One record equals one transaction. A single Form 4 often reports multiple non-derivative and derivative transactions, so it yields several records.
How do I see only open-market buys and sells?
Set transactionCode to P, S. The transactionType field spells out each code in plain English.
What is the 10b5-1 flag?
is10b51Plan is true when the filing references a pre-arranged Rule 10b5-1 trading plan, a signal that the trade was scheduled in advance rather than opportunistic.
Can I scan the whole market?
Yes. Leave both ticker and cik empty to pull recent market-wide Form 4 filings within the date window.
Is this an official SEC tool? No. This actor is independent and has no affiliation with the SEC. It reads only data that is publicly available on SEC EDGAR.
Related scrapers
- SEC 13F Institutional Holdings Scraper: institutional equity positions.
- SEC EDGAR Financials Scraper: company revenue, assets, and XBRL financials.
- SEC Form D Private Placements Scraper: private securities offerings.
- SEC EDGAR Full-Text Search Scraper: full-text search across SEC filings.
- FINRA BrokerCheck Scraper: brokers and investment advisers.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the SEC or EDGAR. Accesses only publicly available SEC Form 4 disclosure data.
