SEC Form 4 Insider Trading Scraper
parseforge/sec-form4-scraper
BusinessLead generationDeveloper tools
Scrapes SEC Form 4 insider trading filings from EDGAR by company ticker, CIK, or latest market-wide filings. Returns each transaction as a flat row with insider name, title, trade code, shares, price, and post-trade holdings.
- Total users
- 1
- Monthly active
- 0
- Total runs
- 110
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
SEC Form 4 Insider Trading Scraper
Scrape SEC Form 4 insider trading filings by ticker, CIK, or market-wide, up to a million per run. Every transaction comes with the insider's name, title, trade code, shares, price, and post-trade holdings. No API key. Export to CSV, JSON, Excel, or XML.
SEC EDGAR's official full-text search is built for documents, not data. This Actor reads the Form 4 filing index directly, resolves tickers to CIKs, and returns each insider transaction as one flat row. Filter by date range, transaction code, or derivative type before the data ever reaches your dataset.
| Who uses it | What they scrape SEC EDGAR for |
|---|---|
| Quantitative analysts | Build insider sentiment signals from open market buys and sells |
| Compliance officers | Monitor executive trading at peer companies for policy benchmarking |
| Financial journalists | Find notable insider purchases or sales for story leads |
| Retail investors | Track what corporate insiders are doing with their own stock |
| Academic researchers | Assemble large Form 4 datasets for event studies |
What it does
This Actor collects SEC Form 4 insider trading filings by company ticker, CIK number, or the latest market-wide filings, and returns each transaction as a flat row.
- ๐ข Company mode: pass tickers like AAPL or CIKs like 0000320193 and get every Form 4 filing for those issuers.
- โก Latest mode: pull the most recent Form 4 filings across the entire market, no ticker list needed.
- ๐ Date range filter: restrict filings to a start and end date, inclusive, in YYYY-MM-DD format.
- ๐ท๏ธ Transaction code filter: keep only P/S open market trades, A grants, M option exercises, or any of the 20 SEC codes.
- ๐ Derivative toggle: include or exclude options, RSUs, warrants, and convertible notes from the output.
- ๐ Ticker to CIK resolution: every ticker is resolved to its SEC Central Index Key automatically.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with SEC EDGAR data
๐ Build an insider sentiment dashboard.
A quant fund runs the Actor daily in latest mode, filters to P and S codes, and feeds the net insider buy/sell ratio into their alpha model.
๐ Monitor executive selling at a watchlist.
A compliance analyst passes 50 tickers in company mode with a 90-day date range and reviews every open market sale for pre-clearance violations.
๐ฐ Find story leads from unusual insider activity.
A financial journalist runs the Actor weekly in latest mode, filters to large A grants or P purchases, and cross-references the insiders with recent news.
๐ Assemble a research dataset.
An academic researcher pulls five years of Form 4 data for the S&P 500, excludes derivatives, and exports to CSV for an event study on insider trading windows.
Why choose this scraper
| What you get | |
|---|---|
| No SEC API key | Reads the public EDGAR filing index directly, no registration or rate-limit headaches |
| One row per transaction | Each insider trade is a flat record with insider name, title, code, shares, price, and holdings |
| Market-wide or company-specific | Track a watchlist of tickers or scan every new Form 4 filed today |
| Clean derivative handling | Keep or drop options, RSUs, and warrants with one checkbox |
How it compares
No other Store actor targets SEC EDGAR the same way, so the honest comparison is with the alternatives teams actually weigh.
| SEC Form 4 Insider Trading Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When SEC EDGAR changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor from tickers, CIKs, or the latest market-wide feed, and filters run as each filing is read so only matching transactions reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10,
"tickers": [
"AAPL",
"TSLA",
"NVDA"
]
}
A larger pull:
{
"maxItems": 200,
"tickers": [
"AAPL",
"TSLA",
"NVDA"
]
}
Pricing
Pay-per-result: $0.04999 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $5.00 |
| 1,000 results | $49.99 |
| 10,000 results | $499.90 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the SEC Form 4 Insider Trading Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to SEC EDGAR through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/sec-form4-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your date range. If startDate and endDate are set, they must include the filing dates you expect. Also verify your tickers or CIKs are valid and that transactionCodes, if set, matches the trade types in those filings.
Why are some tickers not resolving?
Ticker resolution uses the SEC's company ticker mapping. If a ticker fails, try passing the CIK directly. CIKs are more stable and avoid ambiguity.
Why do I see fewer rows than maxItems?
maxItems is the upper limit, not a target. The Actor returns every matching transaction up to that limit. If filters are restrictive, the actual count will be lower.
Why am I getting a 403 or rate-limit error?
SEC EDGAR enforces fair use. The Actor throttles requests automatically, but for heavy production runs, set a custom User-Agent with your organization name and contact email as recommended by the SEC.
Why are derivative transactions missing?
Check the includeDerivatives checkbox. It defaults to true, but if you disabled it, options, RSUs, warrants, and convertible notes are excluded from the output.
FAQ
| Question | Answer |
|---|---|
| What is SEC Form 4? | Form 4 is the statement of changes in beneficial ownership that corporate insiders, officers, directors, and 10% owners, must file with the SEC within two business days of a transaction in their company's securities. |
| Do I need an API key or SEC EDGAR account? | No. The Actor reads the public EDGAR filing index directly. The only requirement is a User-Agent header, which is pre-filled with a default you can override. |
| Can I scrape by ticker symbol? | Yes. Pass tickers like AAPL or TSLA in company mode. Each ticker is resolved to its SEC CIK and all matching Form 4 filings are fetched. |
| Can I scrape by CIK number? | Yes. Pass CIKs with or without leading zeros, for example 0000320193 or 320193, in company mode. |
| What is the difference between company mode and latest mode? | Company mode pulls Form 4 history for the tickers or CIKs you specify. Latest mode pulls the most recent Form 4 filings across the entire market, regardless of issuer. |
| What transaction codes can I filter by? | All 20 SEC transaction codes are supported: P, S, V, A, D, F, I, M, C, E, H, O, X, G, L, W, Z, J, K, and U. Leave the filter empty to include every coded transaction. |
| Does the output include derivative transactions? | By default, yes. Options, RSUs, warrants, and convertible notes are included. Disable the includeDerivatives checkbox to keep only share-level transactions. |
| Can I filter by date range? | Yes. Set startDate and endDate in YYYY-MM-DD format. Both are inclusive and apply to company mode and latest mode. |
| How many filings can I collect per run? | Up to 1,000,000 Form 4 filings per run. Set maxItems to control the volume. |
| What format is the data exported in? | The Actor returns a flat dataset that can be exported to CSV, JSON, Excel, or XML from the Apify platform. |
| Is this legal to scrape? | Yes. SEC EDGAR is a public government database. The SEC requires a descriptive User-Agent header, which the Actor provides by default. |
| How often is the data updated? | The Actor reads EDGAR live on every run. In latest mode, each run returns the most recent filings available at that moment. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Securities and Exchange Commission. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| mode | string (2 options) | How to discover filings. `company` pulls Form 4 history for the tickers/CIKs you specify. `latest` pulls the most recent Form 4 filings across the entire market. | company |
| maxItems | integer | How many Form 4 filings to collect per run. | 10 |
| tickers | array | Stock ticker symbols. Each ticker is resolved to its SEC CIK and all Form 4 filings are fetched. Used when mode = `company`. | ["AAPL","TSLA","NVDA"] |
| ciks | array | SEC Central Index Keys, with or without leading zeros (e.g. 0000320193 or 320193). Used when mode = `company`. | not set |
| startDate | string | Earliest filing date to include, in YYYY-MM-DD format. Inclusive. | not set |
| endDate | string | Latest filing date to include, in YYYY-MM-DD format. Inclusive. | not set |
| transactionCodes | array | Only output transactions matching these SEC transaction codes. Leave empty to include every coded transaction. | not set |
| includeDerivatives | boolean | Include rows for derivative securities (options, RSUs, warrants, convertible notes). Disable for cleaner share-level data only. | true |
| userAgent | string | SEC requires a contact User-Agent header on every request. The default is fine for casual use; supply your own "Sample Company Name AdminContact@samplecompany.com" for production runs. | ParseForge SEC Form 4 Scraper contact@pa |
Pricing
from $37.49 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged once when the run starts. | $0.005 |
| Result Item | Charged once per result collected. | $0.03749 to $0.04999 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~sec-form4-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
Related scrapers
Run SEC Form 4 Insider Trading Scraper on Apify All scrapers
