SEC EDGAR Insider Trading Crawler (Form 4)
Pricing
Pay per event
SEC EDGAR Insider Trading Crawler (Form 4)
Scrape SEC EDGAR Form 4 insider trading filings. Extract structured transaction data: who bought or sold, how many shares, at what price, and their role. Filter by ticker, date range, and transaction type. 500K+ filings per year.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Scrapes Form 4 filings from SEC EDGAR. Returns one structured transaction record per buy, sell, grant, or disposition — with the insider's name, role, shares traded, price, and company — across 500K+ filings per year.
SEC EDGAR Insider Trading Crawler Features
- Extracts every transaction in a date range — non-derivative and derivative positions both covered
- Filters by ticker symbol, transaction code (P/S/A/D/F/M), or both
- Returns 23 fields per transaction including insider identity, role flags, and SEC accession number
- Parses SEC XML directly — no browser required, no proxies needed
- Handles SEC rate limits automatically (10 req/sec cap, politely observed)
- Configurable max items so you can sample before committing to a full pull
What Can You Do With SEC Form 4 Data?
- Quantitative researchers — build insider-trading signals for systematic strategies, or at least the dataset that makes building them less miserable
- Compliance teams — monitor executive transactions at portfolio companies in near-real-time
- Journalists and analysts — surface large purchases or unusual sales around earnings announcements
- Financial data vendors — backfill or supplement insider ownership datasets with structured EDGAR records
- Retail investors — track what officers and directors at specific companies are actually doing with their own shares
How the SEC EDGAR Insider Trading Crawler Works
- Queries the EDGAR Full-Text Search API for Form 4 filings in your specified date range, paginating through results in batches of 100
- For each filing, fetches the raw XML document directly from the SEC Archives
- Parses each XML with full transaction detail — issuer info, reporting owner identity, transaction codes, share counts, prices, and footnotes
- Applies any ticker or transaction code filters you configured, then saves matching records
Input
{"startDate": "2025-01-01","endDate": "2025-01-07","tickers": ["AAPL", "MSFT"],"transactionCodes": ["P", "S"],"maxItems": 100}
| Field | Type | Default | Description |
|---|---|---|---|
startDate | string | 30 days ago | Start of the filing date range (YYYY-MM-DD) |
endDate | string | today | End of the filing date range (YYYY-MM-DD) |
tickers | array | [] | Filter by stock ticker symbols. Empty = all tickers |
transactionCodes | array | [] | Filter by SEC code. P=Purchase, S=Sale, A=Award, D=Disposition, F=Tax withholding, M=Option exercise. Empty = all codes |
maxItems | integer | 15 | Maximum transaction records to return |
Pull everything for a week:
{"startDate": "2025-03-10","endDate": "2025-03-14","maxItems": 10000}
Just purchases at one company:
{"startDate": "2025-01-01","endDate": "2025-12-31","tickers": ["TSLA"],"transactionCodes": ["P"],"maxItems": 500}
SEC EDGAR Insider Trading Crawler Output Fields
{"accession_number": "0000320193-25-000035","filing_date": "2025-02-27","period_of_report": "2025-02-25","reporting_owner_name": "SUGAR RONALD D","reporting_owner_cik": "0001216519","reporting_owner_is_director": true,"reporting_owner_is_officer": false,"reporting_owner_officer_title": "","reporting_owner_is_ten_percent_owner": false,"issuer_name": "Apple Inc.","issuer_cik": "0000320193","issuer_ticker": "AAPL","transaction_type": "non-derivative","security_title": "Common Stock","transaction_date": "2025-02-25","transaction_code": "A","acquired_or_disposed": "A","shares_traded": 2416,"price_per_share": 0,"total_value": 0,"shares_owned_after": 37481,"ownership_nature": "D","footnotes": "","filing_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000035/wk-form4_1740699290.xml"}
| Field | Type | Description |
|---|---|---|
accession_number | string | SEC EDGAR accession number (unique filing identifier) |
filing_date | string | Date the Form 4 was filed with the SEC (YYYY-MM-DD) |
period_of_report | string | Date of the reported transaction (YYYY-MM-DD) |
reporting_owner_name | string | Full name of the insider/reporting owner |
reporting_owner_cik | string | SEC CIK number of the reporting owner |
reporting_owner_is_director | boolean | True if the insider is a board director |
reporting_owner_is_officer | boolean | True if the insider is a company officer |
reporting_owner_officer_title | string | Officer title (e.g. Chief Executive Officer) if applicable |
reporting_owner_is_ten_percent_owner | boolean | True if the insider owns 10% or more of the issuer |
issuer_name | string | Name of the company (issuer) |
issuer_cik | string | SEC CIK number of the issuer company |
issuer_ticker | string | Stock ticker symbol of the issuer |
transaction_type | string | Type of security: non-derivative or derivative |
security_title | string | Name/title of the security (e.g. Common Stock, Stock Option) |
transaction_date | string | Date the transaction occurred (YYYY-MM-DD) |
transaction_code | string | SEC code: P=Purchase, S=Sale, A=Award, D=Disposition, F=Tax-withholding, M=Option-exercise |
acquired_or_disposed | string | A if shares were acquired, D if disposed |
shares_traded | number | Number of shares bought, sold, or transferred |
price_per_share | number | Price per share (0 for awards, withholding, and other non-cash events) |
total_value | number | Computed total value: shares_traded x price_per_share |
shares_owned_after | number | Total shares owned by the insider after the transaction |
ownership_nature | string | D for direct ownership, I for indirect (e.g. held by a family trust) |
footnotes | string | Footnotes from the filing, concatenated with pipe separator |
filing_url | string | URL to the Form 4 XML document on SEC EDGAR |
🔍 FAQ
How do I scrape SEC Form 4 insider trading data?
SEC EDGAR Insider Trading Crawler queries the EDGAR full-text search API for Form 4 filings in your date range, fetches each XML document, and parses every transaction. Set startDate, endDate, and maxItems — that's the minimum. Ticker and transaction code filters are optional.
How much does the SEC EDGAR Insider Trading Crawler cost to run?
The actor charges $0.10 per run plus $0.001 per transaction record. A week of Form 4 data covering all companies typically runs a few hundred to a few thousand records depending on your filters.
Does the crawler need proxies?
No. SEC EDGAR is a government data service designed for public access. The crawler identifies itself via the required User-Agent header and respects the 10 req/sec rate limit.
Can I filter by specific companies?
Yes. Pass one or more tickers in the tickers field — e.g. ["AAPL", "MSFT", "NVDA"]. The filter is applied after parsing, so the crawler fetches all filings in the date range and returns only matching records. Narrow your date range for faster results when filtering by ticker.
What's the difference between transaction codes?
P = open-market purchase. S = open-market sale. A = award or grant (note price_per_share will be 0 — these are non-cash events). D = disposition other than sale. F = shares withheld for tax at vesting. M = option exercise. Most insider-trading signals focus on P and S.
How far back does the data go?
EDGAR Full-Text Search covers filings back to the late 1990s. The pagination limit is 10,000 results per query, so for high-volume date ranges split your pull into narrower windows.
Need More Features?
Need custom fields, additional filing types, or a bulk historical pull? File an issue or get in touch.
Why Use SEC EDGAR Insider Trading Crawler?
- Structured output, not raw XML — returns clean JSON records with typed fields, not the raw SEC filing format you'd otherwise have to parse yourself
- No auth, no proxies, no maintenance — SEC EDGAR is a stable government API. The crawler runs the same today as it did last quarter.
- Granular transaction-level records — one Form 4 can contain multiple transactions across different securities. The crawler expands all of them.