SEC EDGAR Filings Scraper
Pricing
$2.00 / 1,000 item returneds
SEC EDGAR Filings Scraper
Scrape SEC EDGAR filings via the official public APIs. Full-text search across all filings, or pull a company's filing history by ticker/CIK. Returns normalized rows with form, company, dates, accession number and a direct document URL. No API key.
Pricing
$2.00 / 1,000 item returneds
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Pull filings from the U.S. SEC's EDGAR system through its official public APIs — no API key, no login, no anti-bot to fight. Two modes:
- Full-text search — search the text of every filing for a phrase (e.g.
artificial intelligence), optionally narrowed to specific form types and a date window. - Company filings — give one or more tickers or CIKs (e.g.
AAPL,TSLA) and get that company's recent filing history.
Both modes return the same normalized shape, including a direct link to the primary filing document.
What you get per filing
form, companyName, cik, ticker, filingDate, reportDate, accessionNumber, primaryDocument, description, and filingUrl (a direct link to the document in https://www.sec.gov/Archives/...).
Which fields can be null. SEC's full-text search index does not return every field for every hit, so search-mode rows are sparser than company-mode rows. In particular, ticker, reportDate, and description are often null in search mode (EDGAR's full-text engine doesn't index a ticker for many filers, and report/period dates and document descriptions are inconsistently present). company mode (driven by the submissions API) is more complete, but reportDate, description, and ticker can still be null for some filings. filingUrl is null only when SEC didn't supply enough identifiers (cik + accession + primary document) to build a canonical Archives link. Treat these fields as best-effort, not guaranteed.
Input
| Field | Notes |
|---|---|
mode | search (full-text) or company (by ticker/CIK). Default search. |
query | Phrase for search mode, e.g. "artificial intelligence". Required in search mode. |
forms | Comma-separated form types, e.g. 10-K,8-K. Optional; applies to both modes. |
tickers | Array of tickers or CIKs for company mode, e.g. ["AAPL","TSLA"]. |
startDate / endDate | Optional YYYY-MM-DD filing-date window. |
maxItems | Cap on total rows across the whole run (a shared budget, not per-company). In company mode, earlier tickers can use up the budget before later ones. Full-text search itself caps at 10000 results. |
proxyConfiguration | Optional. SEC's public API has no anti-bot, so a proxy gives no scraping benefit and this actor does no IP rotation. Off by default; enable only for anonymity, geolocation, or your own network's rate limits. |
Output
One dataset row per filing, deduplicated by accessionNumber + primaryDocument. Empty results return a single diagnostic row and are not charged.
Examples
Full-text search:
{ "mode": "search", "query": "artificial intelligence", "forms": "10-K", "maxItems": 50 }
Company filings:
{ "mode": "company", "tickers": ["AAPL", "TSLA"], "forms": "10-K,8-K", "maxItems": 50 }
Sample output row
{"ok": true,"form": "10-K","companyName": "Example Corp","cik": "0000320193","ticker": "EXMP","filingDate": "2024-02-01","reportDate": "2023-12-31","accessionNumber": "0000320193-24-000006","primaryDocument": "exmp-20231231.htm","description": "10-K","filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000006/exmp-20231231.htm"}
In search mode, ticker, reportDate, and description are frequently null (EDGAR's full-text index is sparse). See "Which fields can be null" above.
Pricing
Pay-per-result: you are charged once per filing row returned. Empty runs, blocked/error runs, and diagnostic rows (ok:false) are never charged — only genuine filing rows (ok:true) bill. Bad input (e.g. an empty query in search mode, or no tickers in company mode) returns a single uncharged BAD_INPUT diagnostic row rather than failing the run.
Troubleshooting
- Sparse rows / null ticker or dates — expected in
searchmode; SEC's full-text index omits these for many filers. Usecompanymode for richer records. - Some tickers returned nothing in company mode — the run pushes a
NOT_FOUNDdiagnostic row listing exactly which ticker(s)/CIK(s) failed to resolve or had no matching filings. - A
BLOCKED/RATE_LIMITEDdiagnostic — SEC has no anti-bot, so this almost always means your own network or a misconfigured proxy is being throttled; the actor already backs off and retries. Try again, or turn the proxy off if you enabled one.
Notes
This actor follows SEC's fair-access policy: every request carries a descriptive contact-style User-Agent (required — SEC returns 403 without one), uses gzip, and keeps a polite gap between requests. Full-text search covers filings indexed by EDGAR's full-text engine and is limited to 10000 results per query — split large jobs by form type or date window. Company mode returns the most recent ~1000 filings per company from the submissions API.