OrbTop

SEC EDGAR Insider Trading Crawler (Form 4)

BUSINESSOTHER

SEC EDGAR Insider Trading Crawler (Form 4)

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

  1. Queries the EDGAR Full-Text Search API for Form 4 filings in your specified date range, paginating through results in batches of 100
  2. For each filing, fetches the raw XML document directly from the SEC Archives
  3. Parses each XML with full transaction detail — issuer info, reporting owner identity, transaction codes, share counts, prices, and footnotes
  4. 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.