SEC Form 4 Insider Transactions Scraper
Pricing
Pay per event
SEC Form 4 Insider Transactions Scraper
Extract insider stock transactions from SEC Form 4 filings by ticker, CIK, or accession number using EDGAR feeds and XML documents.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Track insider trading disclosures from SEC EDGAR Form 4 filings and export clean transaction-level rows for analysis, alerts, dashboards, and compliance review.
What does SEC Form 4 Insider Transactions Scraper do?
SEC Form 4 Insider Transactions Scraper fetches recent SEC ownership filings for public companies and parses the raw XML filing documents into structured dataset rows.
It accepts stock tickers, SEC CIKs, or direct accession numbers, resolves company identifiers through official SEC feeds, downloads recent Form 4 / 4-A filings, and extracts each reported insider transaction.
Each row represents one transaction, not just one filing. That makes the output ready for spreadsheets, databases, alerting tools, and downstream financial research workflows.
Who is it for?
- ๐ Investors monitoring insider buying and selling across a watchlist
- ๐ฐ Finance journalists looking for newly reported executive transactions
- ๐งพ Compliance teams reviewing insider activity and ownership disclosures
- ๐ Market researchers building signals from SEC Form 4 data
- ๐ฆ Analysts enriching company profiles with recent officer and director trades
- ๐ค Automation teams that need a repeatable EDGAR Form 4 extractor
Why use this scraper?
SEC filings are public, but the raw EDGAR pages are filing-centric and can be awkward to use in automated workflows.
This actor converts Form 4 XML into normalized rows with issuer, reporting owner, relationship flags, transaction code, shares, price, ownership type, accession number, and source URLs.
You get a repeatable Apify actor instead of one-off scripts, manual EDGAR searches, or expensive market-data APIs.
Data you can extract
| Field | Description |
|---|---|
issuerCik | SEC CIK for the issuer |
issuerName | Company name from the Form 4 issuer block |
issuerTicker | Ticker from SEC XML or the SEC ticker map |
reportingOwnerCik | CIK for the insider/reporting owner |
reportingOwnerName | Insider or reporting owner name |
isDirector | Whether the owner is marked as a director |
isOfficer | Whether the owner is marked as an officer |
isTenPercentOwner | Whether the owner is a 10% owner |
officerTitle | Officer title when supplied |
transactionType | Non-derivative or derivative transaction |
securityTitle | Security name, such as common stock or option |
transactionDate | Date of the transaction |
transactionCode | SEC transaction code such as P, S, A, M, F |
shares | Number of shares or derivative securities |
pricePerShare | Transaction price per share when reported |
acquiredDisposedCode | A for acquired, D for disposed |
sharesOwnedFollowingTransaction | Ownership after the transaction |
directOrIndirectOwnership | Direct or indirect ownership flag |
ownershipNature | Nature of indirect ownership when reported |
filingDate | SEC filing date |
periodOfReport | Period of report from the filing |
accessionNumber | SEC accession number |
filingUrl | SEC archive filing folder |
xmlUrl | Raw XML document URL |
How much does it cost to scrape SEC Form 4 insider transactions?
This actor uses pay-per-event pricing.
- A small one-time run-start event is charged when the actor begins.
- A per-transaction event is charged for each dataset row saved.
- You control cost with
maxTransactions,maxFilingsPerEntity, tickers, CIKs, and date filters.
For a cheap first run, keep the default input or reduce maxTransactions to 25.
How to use the actor
- Open the actor on Apify.
- Enter stock tickers such as
NVDA,TSLA,MSFT, orAAPL. - Optionally add SEC CIKs if you already know them.
- Set
maxTransactionsto cap the number of rows. - Optionally set
sinceDateorbeforeDatefor a filing-date window. - Run the actor.
- Export the dataset as JSON, CSV, Excel, XML, or through the Apify API.
Input options
Stock tickers
Use tickers for the most common workflow. The actor resolves tickers through the official SEC company_tickers.json file.
SEC CIKs
Use ciks when you already know the issuer CIK. Leading zeroes are optional.
Direct accession numbers
Use accessionNumbers when you need to reprocess an exact Form 4 filing. Include at least one ticker or CIK so the actor can build the SEC archive path.
Maximum transaction rows
maxTransactions caps the total dataset rows saved during a run.
Maximum filings per company
maxFilingsPerEntity controls how many recent Form 4 / 4-A filings are inspected for each company.
Filing date filters
Use sinceDate and beforeDate in YYYY-MM-DD format to filter by SEC filing date.
SEC User-Agent
SEC requests require a descriptive User-Agent. The default is suitable for testing, but production users should set their own application/company and contact email.
Output example
{"issuerTicker": "MSFT","issuerName": "MICROSOFT CORP","reportingOwnerName": "Jolla Alice L.","isOfficer": true,"officerTitle": "Chief Accounting Officer","transactionDate": "2026-06-15","transactionCode": "A","securityTitle": "Common Stock","shares": 5004,"pricePerShare": 0,"acquiredDisposedCode": "A","sharesOwnedFollowingTransaction": 76152.6646,"accessionNumber": "0000789019-26-000135","filingUrl": "https://www.sec.gov/Archives/edgar/data/789019/000078901926000135/"}
Tips for better results
- Use a focused ticker watchlist for daily monitoring.
- Increase
maxFilingsPerEntitywhen companies have many recent ownership filings. - Use date filters for weekly, monthly, or quarterly review workflows.
- Keep
requestDelayMsat 100 ms or higher to be friendly to SEC systems. - Include derivative transactions when monitoring options, RSUs, and warrants.
- Disable derivative transactions if you only need common-stock Form 4 rows.
Common transaction codes
Pโ open market or private purchaseSโ open market or private saleAโ grant, award, or other acquisitionMโ exercise or conversion of derivative securityFโ payment of exercise price or tax liability by delivering securitiesGโ giftDโ sale or transfer back to issuer
Always review the original filing and SEC code definitions for legal or investment decisions.
Integrations
Use this actor with:
- Google Sheets exports for watchlist monitoring
- BigQuery or Snowflake for historical insider-transaction models
- Slack alerts when executives report large purchases or sales
- CRM enrichment for public-company executive activity
- Newsroom dashboards for filings published during market-moving periods
- Compliance queues for officer and director transaction review
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/sec-form-4-insider-transactions-scraper').call({tickers: ['NVDA', 'MSFT'],maxTransactions: 100,maxFilingsPerEntity: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 3));
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/sec-form-4-insider-transactions-scraper').call(run_input={'tickers': ['TSLA', 'AAPL'],'maxTransactions': 100,'maxFilingsPerEntity': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items[:3])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~sec-form-4-insider-transactions-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"tickers":["NVDA","MSFT"],"maxTransactions":100,"maxFilingsPerEntity":20}'
MCP usage
You can use this actor from Claude Code, Claude Desktop, or another MCP client through Apify MCP.
MCP server URL:
https://mcp.apify.com/?tools=automation-lab/sec-form-4-insider-transactions-scraper
Claude Code setup:
$claude mcp add apify-sec-form-4 "https://mcp.apify.com/?tools=automation-lab/sec-form-4-insider-transactions-scraper"
Claude Desktop JSON configuration:
{"mcpServers": {"apify-sec-form-4": {"url": "https://mcp.apify.com/?tools=automation-lab/sec-form-4-insider-transactions-scraper"}}}
Example prompts:
- "Run the SEC Form 4 Insider Transactions Scraper for NVDA and summarize officer sales this month."
- "Extract Form 4 transactions for MSFT and return purchases above 1,000 shares."
- "Monitor my ticker list for new insider transaction rows and prepare a compliance summary."
SEC fair-access notes
The actor uses public SEC EDGAR JSON and XML endpoints. SEC requires automated tools to identify themselves with a descriptive User-Agent and to avoid abusive request rates.
The input includes secUserAgent and requestDelayMs so users can keep runs compliant and transparent.
Legality
SEC Form 4 filings are public regulatory disclosures. This actor only accesses public SEC endpoints and preserves source filing URLs.
Is scraping SEC Form 4 data legal?
SEC Form 4 filings are public regulatory disclosures. This actor only accesses public SEC endpoints and preserves source filing URLs.
You are responsible for using the data in compliance with applicable laws, SEC terms and guidance, internal policies, and professional obligations. This actor does not provide legal, tax, or investment advice.
FAQ
Can I monitor several companies in one run?
Yes. Add multiple tickers or CIKs and use maxTransactions to cap total output rows.
Does this actor scrape Form 3 or Form 5?
Version 0.1 focuses on Form 4 and 4-A transaction disclosures. Form 3 and Form 5 support can be added later if user demand warrants it.
Troubleshooting
Why did my run return zero rows?
The ticker may have no recent Form 4 filings within your date window, the ticker may be invalid, or maxFilingsPerEntity may be too low. Try removing date filters and increasing the filing limit.
Why do some prices show as zero?
Form 4 filings can report grants, awards, or non-cash transactions with a zero price. Review transactionCode, acquiredDisposedCode, and the original filing.
Why is the reporting owner relationship blank?
The SEC filing controls which relationship fields are present. Some owners include director/officer flags and title; others may not.
Related scrapers
Explore related Automation Lab actors for financial and market research workflows:
- https://apify.com/automation-lab/google-news-scraper
- https://apify.com/automation-lab/website-contact-finder
- https://apify.com/automation-lab/rss-feed-scraper
- https://apify.com/automation-lab/company-information-scraper
Reliability
The scraper avoids browser automation and uses official SEC endpoints. This keeps runs lightweight, fast, and low cost compared with scraping rendered web pages.
Limitations
- It extracts recent filings available in SEC submissions feeds for each issuer.
- Direct accession parsing requires a CIK or ticker to build the archive path.
- Historical backfills beyond recent SEC submissions may require a future archive-index mode.
- Transaction interpretation still requires domain knowledge and review of original filings.
Changelog
0.1.0โ Initial actor for ticker/CIK Form 4 discovery and XML transaction extraction.
Support
If you need help with a Form 4 workflow, include the tickers, CIKs, date range, and run ID when contacting support.