SEC Form 4 Insider Transactions Scraper avatar

SEC Form 4 Insider Transactions Scraper

Pricing

Pay per event

Go to Apify Store
SEC Form 4 Insider Transactions Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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

FieldDescription
issuerCikSEC CIK for the issuer
issuerNameCompany name from the Form 4 issuer block
issuerTickerTicker from SEC XML or the SEC ticker map
reportingOwnerCikCIK for the insider/reporting owner
reportingOwnerNameInsider or reporting owner name
isDirectorWhether the owner is marked as a director
isOfficerWhether the owner is marked as an officer
isTenPercentOwnerWhether the owner is a 10% owner
officerTitleOfficer title when supplied
transactionTypeNon-derivative or derivative transaction
securityTitleSecurity name, such as common stock or option
transactionDateDate of the transaction
transactionCodeSEC transaction code such as P, S, A, M, F
sharesNumber of shares or derivative securities
pricePerShareTransaction price per share when reported
acquiredDisposedCodeA for acquired, D for disposed
sharesOwnedFollowingTransactionOwnership after the transaction
directOrIndirectOwnershipDirect or indirect ownership flag
ownershipNatureNature of indirect ownership when reported
filingDateSEC filing date
periodOfReportPeriod of report from the filing
accessionNumberSEC accession number
filingUrlSEC archive filing folder
xmlUrlRaw 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

  1. Open the actor on Apify.
  2. Enter stock tickers such as NVDA, TSLA, MSFT, or AAPL.
  3. Optionally add SEC CIKs if you already know them.
  4. Set maxTransactions to cap the number of rows.
  5. Optionally set sinceDate or beforeDate for a filing-date window.
  6. Run the actor.
  7. 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 maxFilingsPerEntity when companies have many recent ownership filings.
  • Use date filters for weekly, monthly, or quarterly review workflows.
  • Keep requestDelayMs at 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 purchase
  • S โ€” open market or private sale
  • A โ€” grant, award, or other acquisition
  • M โ€” exercise or conversion of derivative security
  • F โ€” payment of exercise price or tax liability by delivering securities
  • G โ€” gift
  • D โ€” 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 ApifyClient
client = 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().items
print(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.

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.

Explore related Automation Lab actors for financial and market research workflows:

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.