SEC Form 4 Insider Trades Scraper
Pricing
from $0.30 / 1,000 insider trade rows
SEC Form 4 Insider Trades Scraper
Extract transaction-level insider trades from public SEC Form 4 filings by ticker or CIK.
Pricing
from $0.30 / 1,000 insider trade rows
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract transaction-level insider trades from public SEC EDGAR ownership filings by ticker or CIK. The Actor saves one row per reported transaction with issuer details, reporting owner roles, shares, prices, values, ownership fields, and SEC source URLs.
At a glance
- Primary job: Monitor public-company insider transactions from official SEC filings.
- Input: Tickers and/or CIKs, filing date bounds, form types, and per-issuer filing limits.
- Output: Insider owner, role flags, transaction code/date, shares, price, value, ownership, and SEC source URLs.
- Best for: Investor research, compliance exports, BI dashboards, news monitoring, and scheduled watchlists.
Who is this for?
- Investors and analysts tracking insider purchases, sales, grants, and ownership changes.
- Compliance teams exporting auditable public Form 4 transaction records by issuer or CIK.
- Financial journalists monitoring recent insider activity around public companies.
- Data teams feeding SEC insider transactions into dashboards, alerts, or warehouses.
Input recipes
- Single ticker smoke test:
{"tickers":["AAPL"],"formTypes":["4"],"maxFilings":10} - Watchlist:
{"tickers":["AAPL","MSFT"],"formTypes":["4","4/A"],"maxFilings":10} - Compliance export by CIK:
{"ciks":["0000320193","789019"],"formTypes":["3","4","4/A","5"],"maxFilings":25,"includeFootnotes":true}
What data can you extract?
| Field | Description |
|---|---|
ticker, cik, issuerName | Public company identifiers resolved from SEC data. |
accessionNumber, formType, filedAt, periodOfReport | Filing metadata. |
filingUrl, xmlUrl | Audit links back to SEC EDGAR source documents. |
reportingOwnerName, reportingOwnerCik | Insider/reporting owner identity. |
isDirector, isOfficer, isTenPercentOwner, officerTitle | Deterministic relationship flags from the filing. |
transactionDate, transactionCode, transactionAcquiredDisposedCode | Transaction timing and SEC transaction codes. |
securityTitle, shares, pricePerShare, transactionValue | Transaction economics when reported. Gifts/grants may have null price/value. |
sharesOwnedFollowingTransaction, ownershipNature, isDerivative | Post-transaction and derivative/non-derivative ownership details. |
footnotes | Optional filing footnotes when enabled. |
source, scrapedAt | Provenance and scrape timestamp. |
The Actor also writes RUN_SUMMARY to the default key-value store with processed issuer counts, matched filing counts, saved transactions, warnings, and per-input failures.
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Tickers | tickers | Resolve public company ticker symbols. | ["AAPL", "MSFT"] |
| CIKs | ciks | Query known SEC CIKs directly; padded and unpadded values work. | ["0000320193", "789019"] |
| Start/end date | startDate, endDate | Bound by SEC filing date. | "2026-01-01" |
| Form types | formTypes | Include Forms 3, 4, 4/A, or 5. | ["4", "4/A"] |
| Maximum filings | maxFilings | Cap filings inspected per issuer. | 10 |
| Derivatives | includeDerivativeTransactions | Include derivative transaction table rows. | false |
| Footnotes | includeFootnotes | Attach SEC filing footnotes to output rows. | true |
| Proxy | proxyConfiguration | Optional Apify proxy settings; normally leave disabled. | { "useApifyProxy": false } |
Example input
{"tickers": ["AAPL", "MSFT"],"formTypes": ["4"],"maxFilings": 10,"includeDerivativeTransactions": false,"includeFootnotes": false,"proxyConfiguration": { "useApifyProxy": false }}
Example output
{"ticker": "AAPL","cik": "0000320193","issuerName": "Apple Inc.","accessionNumber": "0000320193-26-000001","formType": "4","filedAt": "2026-01-15","periodOfReport": "2026-01-13","filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/...-index.htm","xmlUrl": "https://www.sec.gov/Archives/edgar/data/320193/.../form4.xml","reportingOwnerName": "Example Owner","reportingOwnerCik": "0000000000","isDirector": true,"isOfficer": false,"isTenPercentOwner": false,"officerTitle": null,"transactionDate": "2026-01-13","transactionCode": "P","transactionAcquiredDisposedCode": "A","securityTitle": "Common Stock","shares": 1000,"pricePerShare": 150.25,"transactionValue": 150250,"sharesOwnedFollowingTransaction": 5000,"ownershipNature": "D","isDerivative": false,"footnotes": null,"source": "SEC_EDGAR","scrapedAt": "2026-07-21T00:00:00.000Z"}
Pricing
| Event | Price | Charged when |
|---|---|---|
| Run start | $0.005 per run | Once when the Actor starts. |
| Transaction row saved | Free $0.000575, Bronze $0.0005, Silver $0.00039, Gold $0.0003, Platinum $0.0002, Diamond $0.00014 per row | Each parsed transaction row saved to the dataset. |
API usage
cURL
curl "https://api.apify.com/v2/acts/fetch_cat~sec-form-4-insider-trades-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"tickers":["AAPL"],"formTypes":["4"],"maxFilings":10}'
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/sec-form-4-insider-trades-scraper').call({tickers: ['AAPL'],formTypes: ['4'],maxFilings: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('MY-APIFY-TOKEN')run = client.actor('fetch_cat/sec-form-4-insider-trades-scraper').call(run_input={'tickers': ['AAPL'],'formTypes': ['4'],'maxFilings': 10,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
MCP and AI agents
Use this Actor from Apify MCP Server when an agent needs structured SEC insider-trade rows. Configure the MCP endpoint with:
https://mcp.apify.com/?tools=fetch_cat/sec-form-4-insider-trades-scraper
Add it to Claude CLI with:
$claude mcp add apify-sec-form-4 'https://mcp.apify.com/?tools=fetch_cat/sec-form-4-insider-trades-scraper'
JSON config example:
{"mcpServers": {"apify-sec-form-4": {"url": "https://mcp.apify.com/?tools=fetch_cat/sec-form-4-insider-trades-scraper"}}}
Example prompts:
- "Get recent Form 4 insider transactions for AAPL, maximum 10 filings."
- "Export Form 4 and 4/A rows for CIK 0000320193 with footnotes."
- "Check AAPL and MSFT insider trades and summarize the transaction codes."
Good agent prompts include the ticker/CIK list, date range, whether derivatives are needed, and the maximum filings per issuer.
Tips for best results
- Use focused watchlists: Split very large universes into smaller scheduled runs.
- Keep
maxFilingsbounded: Start with 10-25 filings per issuer, then increase if needed. - Use CIKs for compliance workflows: CIK inputs avoid ticker ambiguity and survive ticker changes.
- Expect nullable economics: Gifts, grants, and some derivative rows may not report a cash price.
Limits and responsible use
This Actor only extracts official public SEC EDGAR ownership filings. It does not provide investment advice, buy/sell recommendations, AI scoring, private brokerage data, or Congress disclosure data. Use the data for research, compliance, and reporting, and verify important decisions against the linked SEC filing.
Related Actors
- SEC EDGAR Company Filings Scraper for broader company filing discovery.
- SEC Form 4 Insider Trades Scraper for transaction-level ownership filings once published.
FAQ
Does this Actor give investment advice?
No. It returns structured public filing data only.
Can I input CIKs instead of tickers?
Yes. Use ciks with padded or unpadded SEC CIK values.
Why are price or value fields sometimes null?
Some transaction codes, grants, gifts, or derivative records do not report a cash price.
Where do diagnostics live?
The default key-value store contains RUN_SUMMARY with status, warning, and failure details.
Support
If a run does not return what you expected, open an Apify issue and include:
- the run ID or run URL;
- the exact input JSON;
- the expected output;
- the actual output or empty dataset detail;
- a reproducible public URL such as an SEC filing URL, plus the ticker or CIK used.