SEC EDGAR Filings Scraper avatar

SEC EDGAR Filings Scraper

Pricing

Pay per event

Go to Apify Store
SEC EDGAR Filings Scraper

SEC EDGAR Filings Scraper

Search SEC EDGAR (US public company filings) by company ticker, CIK, or form type. Returns each filing's CIK, form type, period, filing date, accession number, and primary-document URL. Built on SEC's free EDGAR full-text search API.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share


🎯 What this scrapes

The SEC EDGAR system (sec.gov) publishes every public-company filing — 10-K, 10-Q, 8-K, S-1, proxy statements, you name it — and exposes both per-company and full-text search APIs (free, no key, just a user-agent contact). This Actor wraps the per-company submissions endpoint and writes one row per filing.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Earnings calendar automation — daily diff for 10-Q filings across your covered companies.
  • Material-events monitoring — pull every 8-K for your portfolio.
  • M&A monitoring — filter for S-4 and SC 13D filings.
  • Insider activity — Form 4 filings linked from each issuer.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
tickersarrayyes['AAPL', 'MSFT']List of ticker symbols (e.g. AAPL) or 10-digit CIKs. We resolve tickers to CIKs via SEC's company_tickers.j
formTypesarrayno['10-K', '10-Q']Form types to include (e.g. 10-K, 10-Q, 8-K). Leave empty to include every form.
maxResultsPerCompanyintegerno20Cap on filings returned per company. EDGAR returns ~1000 most recent per submissions call.
userAgentstringno'DevilScrapes-EDGAR/1.0 (contact: apify.com/DevilScrapes)'SEC requires a UA with a contact email. Default identifies as Devil Scrapes; replace if you want SEC to know it's your r
proxyConfigurationobjectno{'useApifyProxy': False}SEC accepts polite anonymous requests. Proxy optional.

Example input

{
"tickers": [
"AAPL"
],
"formTypes": [
"10-K"
],
"maxResultsPerCompany": 3,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
cikstring10-digit CIK (zero-padded).
ticker['string', 'null']Ticker (if we resolved from one).
company_namestringRegistrant name.
form_typestringForm type (10-K, 10-Q, 8-K, S-1, etc.).
accession_numberstringAccession (e.g. 0000320193-24-000123).
filing_datestringFiling date (YYYY-MM-DD).
report_date['string', 'null']Reporting-period end date.
acceptance_datetime['string', 'null']Acceptance timestamp.
primary_document['string', 'null']Primary document filename.
primary_document_urlstringDirect URL to the primary HTML/PDF.
filing_index_urlstringEDGAR filing index URL.
is_xbrl['boolean', 'null']Whether the filing has XBRL data.
scraped_atstringWhen this row was recorded.

Example output

{
"cik": "0000320193",
"ticker": "AAPL",
"company_name": "Apple Inc.",
"form_type": "10-K",
"accession_number": "0000320193-24-000123",
"filing_date": "2024-11-01",
"primary_document_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.005One-off warm-up charge per run
result$0.002Per dataset item

Example: 1 000 results at the rates above ≈ $2.00. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

We pull from each company's submissions/CIK#.json (last ~1000 filings). For older history beyond that, hit the per-year archive endpoints. Mutual-fund and individual-filer CIKs are supported, but ticker resolution only works for the operating-company set in company_tickers.json.

❓ FAQ

Is this real-time?

EDGAR filings appear in submissions JSON within minutes of acceptance. For sub-second push-notifications, use SEC's RSS or PDS feeds.

Do I need an API key?

No — SEC requires only a contact User-Agent (default supplied).

Can I get filing content?

We surface primary_document_url. Pair with a generic HTML fetcher to download the body.

Why is report_date sometimes empty?

Some forms (8-K) don't have a reporting period — only a filing date.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.