SEC EDGAR Scraper - Filings and Full-Text Search avatar

SEC EDGAR Scraper - Filings and Full-Text Search

Pricing

Pay per event

Go to Apify Store
SEC EDGAR Scraper - Filings and Full-Text Search

SEC EDGAR Scraper - Filings and Full-Text Search

Pull SEC filings by ticker or CIK, or search the full text of every filing. Returns form type, filing and report dates, XBRL flags and direct document links from the SEC's own public APIs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Categories

Share

SEC EDGAR Scraper

Pull SEC filings for any public company by ticker or CIK, or search the full text of every filing to find which companies used a phrase. Form type, filing and report dates, XBRL flags, and a direct link to the document itself.

This reads the SEC's own public APIs. No key, no login.

Two questions, two modes

"What has this company filed?"

companies: ["AAPL", "MSFT"]
forms: "10-K,10-Q"

Tickers are resolved to CIK numbers against the SEC's own published ticker file, so you do not need to look them up. CIK numbers work directly too, padded or not.

"Which companies talk about this?"

search: "climate risk"
forms: "10-K"

Full-text search runs across every filing on EDGAR. Searching "climate risk" in 10-K filings returns 10,000 hits across hundreds of companies. This is the mode that answers questions a company-by-company pull cannot: which filers disclose a material weakness, mention a competitor by name, or first used a term and when.

Why this Actor connects directly

Worth explaining, because it is unusual in this collection. Measured on 3 September 2026, same URL:

RouteResult
DirectHTTP 200, 164 KB, Apple Inc., 1,001 filings
Through a residential proxy, US-pinnedCONNECT tunnel failed, response 491

A 491 on the CONNECT is the proxy refusing to tunnel to the host, not the SEC refusing us. Routing around that would be solving the wrong problem: the SEC publishes these APIs for automated use. Their fair-access policy asks only that callers identify themselves and stay under ten requests a second, and this Actor does both — it paces itself well under that, and puts your contact_email in the User-Agent.

Supplying a real address is the polite thing and the more reliable one. Runs work without it, but a bare library default is what gets throttled, and deservedly.

The trap in this data

filings.recent is columnar. It is not a list of filings — it is a dozen parallel arrays, form[], filingDate[], accessionNumber[], primaryDocument[] and more, each 1,001 entries long for Apple. There is no per-filing object anywhere in the response.

Zip them by index and you get filings. Index them independently and every field belongs to a different filing, and nothing raises. You get a 10-K with a 10-Q's date and a link to the wrong document, in a run that reports success.

This Actor takes the length from the shortest array and builds every row at one index, so a ragged response truncates rather than misaligning. The tests pin that.

Fields

  • Filer: cik, company, ticker, tickers, exchanges, sic, sic_description, state_of_incorporation, fiscal_year_end
  • Filing: accession_number, form, filing_date, report_date, acceptance_datetime, file_number, size_bytes
  • Documents: primary_document, primary_doc_description, document_url (a direct link to the filing), filing_index_url
  • Structured data: is_xbrl, is_inline_xbrl
  • 8-K only: items, the item numbers cited

filing_date and report_date are different and both matter: a 10-K filed on 31 October 2025 reports on a fiscal year that ended 27 September 2025. Comparing companies on the wrong one mixes up reporting periods.

On full-text search results, EDGAR crams three facts into one string — CARNIVAL CORP (CCL) (CIK 0000815097) — and this Actor splits them into company, ticker and cik rather than writing that whole line into a name column.

Input reference

FieldTypeDefault
companiestickers or CIKs["AAPL","MSFT"]
searchfull-text phrase
formscomma separated form typesall
date_from, date_toYYYY-MM-DD, search mode only
contact_emailgoes in the User-Agenta generic address
limit1-5000100
retries1-63

Typical uses

  • Filing monitoring. Watch a set of companies for new 8-K or 10-Q filings on a schedule, and pull document_url straight into whatever reads them.
  • Disclosure research. Full-text search for a risk factor, an accounting term or a competitor's name across every 10-K, and see who says it.
  • Insider activity. Filter forms: "4" for a company and you have its insider transaction filings. On a typical recent-30 pull for Microsoft, 20 of 30 filings were Form 4.
  • Peer sets. sic and sic_description group filers by industry as the SEC classifies them, which is often cleaner than a vendor's sector labels.
  • XBRL pipelines. is_inline_xbrl tells you which filings carry machine readable financials before you download anything.

Notes on behaviour

A ticker with no company on EDGAR returns a not_found error naming it, never a row of nulls. A 404 is definitive and not retried; a 429 is the SEC throttling and is waited out rather than retried immediately, because rotating away from a throttle you caused is the wrong response.

Full-text search covers filings from 2001 onward and caps at 10,000 hits per query, which the run summary reports as totalHits so you can narrow rather than assume you have everything.

The submissions endpoint returns roughly the last 1,000 filings per company. Older ones live in separate archive files that this Actor does not currently fetch.