Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
SEC EDGAR Filings Scraper icon

SEC EDGAR Filings Scraper

Search all SEC EDGAR filings by keyword, ticker or CIK. Get form, company, CIK, date and document link. $2.00 per 1,000.

275 runs on Apify $0.002 per item ($2 / 1,000)
Run this in the cloudRun on Apify →

News & Finance Data

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust mode, query, forms (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.002 per item = $2 per 1,000

You are charged forWhenPrice
Item returnedCharged per filing/result returned.$0.002

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-12, and they are what you are actually charged.

Inputs

FieldWhat it doesType
modeHow to find filings. "search" runs an EDGAR full-text search across all filings using your query. "company" pulls a company's recent filing history by ticker or CIK.string
queryFull-text query for "search" mode (e.g. "artificial intelligence"). Matched as a phrase across filing documents. Required when mode is "search"; ignored in "company" mode. Note: SEC's full-text index is sparse, "search" rows often have null ticker, reportDate, and description (see README). Use "company" mode for more complete records.string
formsComma-separated SEC form types to filter by, e.g. "10-K,8-K". Leave empty for all forms. Applies to both modes.string
tickersFor "company" mode: one or more stock tickers (e.g. AAPL, TSLA) or numeric CIKs. Each company's filing history is fetched. Ignored in "search" mode.array
endDateOnly include filings filed on or before this date (YYYY-MM-DD). Optional.string
startDateOnly include filings filed on or after this date (YYYY-MM-DD). Optional.string
maxItemsMaximum number of filings to return across the WHOLE run (a total budget shared by all companies/queries, not a per-company cap). In "company" mode the run stops once this total is hit, so earlier tickers in the list can consume the budget before later ones. Full-text search itself caps at 10000 results.integer
notionConnectorOptional. Write each item as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string

What you get

A structured dataset — each result includes fields like:

accessionNumbercikcompanyNamedescriptionfilingDatefilingUrlformprimaryDocumentreportDateticker

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

2 ready-to-run use cases

Apple SEC Filings by Ticker, Straight from EDGAR

Every AAPL filing with form type, filing and report date, accession number and a direct document link. Metadata and links, not the filing text.

EDGAR Full Text Search: Find a Phrase in SEC Filings

Searches the text of every filing for your phrase and returns which company filed it, what form, and where to read it. The text itself stays on EDGAR.

Related tools in News & Finance Data

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Google News Scraper iconNews & Finance Data

Google News Scraper

Track Google News by keyword or topic. Get real publisher URLs, source, date and snippet. $3.00 per 1,000 articles.

22 use cases

GDELT Worldwide News Scraper iconNews & Finance Data

GDELT Worldwide News Scraper

Search worldwide news via GDELT 2.0: headline, URL, domain, country, language and date. 250 articles per query. $2.00 per 1,000.

2 use cases

Yahoo Finance Scraper iconNews & Finance Data

Yahoo Finance Scraper

Get Yahoo Finance quotes and OHLCV history with no API key. Ticker search, current quote with change % and the 52-week range. $1.00 per 1,000 rows.

3 use cases

CoinGecko Crypto Market Scraper iconNews & Finance Data

CoinGecko Crypto Market Scraper

Scrape CoinGecko crypto market data with no API key. Get top coins, price, volume, 24h and 7d change, supply, ATH and ATL. $2.00 per 1,000 coins.

3 use cases

See all News & Finance Data →

SEC EDGAR Scraper: search every SEC filing by phrase, ticker or CIK

Give it a phrase and it runs the SEC's own full-text search across every indexed filing. Give it tickers or CIKs instead and it pulls those companies' filing histories. Each row carries the form type, the company, the CIK, the filing date, the accession number and a link straight to the document.

One thing to know before you budget a run: full-text search returns a row per matching document, not per filing. A 10-K whose exhibits all mention your phrase comes back as several rows, and each one is charged.

InputA search phrase, or a list of tickers and CIKs
OutputOne row per matching filing document
Ceiling10,000 filings per run
Account neededNone, and no SEC key
Price$2.00 per 1,000 filings, flat on every plan

🔍 What SEC EDGAR Scraper does

In search mode it asks EDGAR's full-text index for your phrase and pages through the hits. Your words go in as one quoted phrase, so artificial intelligence finds that pair of words together, not documents that happen to contain both somewhere. There are no boolean operators and no wildcards.

In company mode you hand it tickers, CIKs or a mix of the two, and it reads each company's recent filing history from the SEC's submissions feed. These rows are fuller: the ticker, the report date and the document description are all populated, because that feed carries them and the full-text index usually does not.

Both modes take the same form filter and the same date window, and both stop at the same run total. What you get is filing metadata plus filingUrl, which points at the document itself rather than a landing page, so you can hand it straight to whatever reads it next.

📥 What you give it

{
  "mode": "search",
  "query": "artificial intelligence",
  "forms": "10-K,8-K",
  "startDate": "2024-01-01",
  "maxItems": 500
}
{
  "mode": "company",
  "tickers": ["AAPL", "TSLA", "0000320193"],
  "forms": "10-K",
  "maxItems": 200
}
FieldDefaultWhat it is
modesearchsearch for the full-text index, company for filing histories. Anything else is treated as search.
querybox starts at artificial intelligenceThe phrase to search for. Needed in search mode, ignored in company mode.
tickersemptyTickers like AAPL, or numeric CIKs, mixed freely. Needed in company mode, ignored in search mode.
formsemptyComma-separated form types, such as 10-K,8-K. Empty means every form. Works in both modes.
startDateemptyYYYY-MM-DD. Only filings filed on or after this date.
endDateemptyYYYY-MM-DD. Only filings filed on or before this date.
maxItems100The total for the whole run, up to 10,000. Not a per-company figure.
notionConnectornoneOptional. Writes each row into your Notion once the run finishes.
notionParentIdnoneOptional. The Notion data source to write into.
proxyConfigurationoffOptional network settings. Off by default, and a normal run does not need it.

maxItems is a budget for the run, shared by every ticker in the list. Four tickers at maxItems: 100 does not give you 100 each. The first company can spend the whole budget before the fourth is reached, so put the ones you care about first.

📤 What you get back

A real row from a recent run:

{
  "ok": true,
  "form": "20-F",
  "companyName": "Xiao-I Corp",
  "cik": "0001935172",
  "ticker": "AIXI",
  "filingDate": "2023-04-28",
  "reportDate": "2022-12-31",
  "accessionNumber": "0001213900-23-033683",
  "primaryDocument": "f20f2022ex4-19_xiaoicorp.htm",
  "description": "ENGLISH TRANSLATION OF AI CLOUD PLATFORM SERVICE CONTRACT BETWEEN SHANGHAI XIAO-I ROBOT TECHNOLOGY CO., LTD. AND CUSTOMER F DATED JUNE 27, 2022",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/1935172/000121390023033683/f20f2022ex4-19_xiaoicorp.htm"
}
FieldWhat it is
formThe form type, such as 10-K, 8-K or 20-F.
cikThe SEC's company number, zero-padded to ten digits. Stable, unlike a ticker.
tickerOften null in search mode. Always filled in company mode.
reportDateThe period the filing covers, which is not the date it was filed. Often null in search mode.
accessionNumberThe SEC's id for the filing. Pair it with primaryDocument to dedupe across runs.
primaryDocumentThe file inside the filing that matched.
descriptionThe SEC's own label for that document. Often null in search mode.
filingUrlDirect link to the document. null when the CIK or the file name was missing.

🧾 Reading the output

Two kinds of row land in your dataset, and ok tells them apart.

RowHow to spot itCharged
A filingok: true and an accessionNumberyes
A diagnosticok: false and an errorCodeno

The overview table in the Apify console shows the filing columns only, so a diagnostic row looks blank there. Switch to the JSON or All fields view to read it.

CodeWhat it means
BAD_INPUTsearch mode with no query, or company mode with no tickers. The row says which.
NO_RESULTSThe request worked and nothing matched your phrase, forms or dates.
NOT_FOUNDSome tickers or CIKs did not resolve. The unresolved field lists them, and the companies that did resolve still returned rows.
RATE_LIMITEDThe SEC asked for a slower pace than the run could keep. Try a smaller run.
SERVER_ERRORThe SEC answered 5xx. Usually passes.
BLOCKEDThe SEC refused the request. Re-run it.
NETWORKThe SEC was unreachable. Re-run it.

▶️ How to run it

1. Open SEC EDGAR Scraper and click Try for free. 2. Leave Mode on full-text search and type a phrase into Search query, or switch to company filings and fill in Tickers or CIKs. 3. Set Max filings. Start around 50 to see the row shape. 4. Narrow it with Form types and the two date fields if you want, then click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$2.00 per 1,000 filings. Flat on every Apify plan, no volume tiers.

You pay per row delivered. Duplicate documents are dropped before they are counted, diagnostic rows are not charged, and a search that matches nothing is not charged.

💡 What people use it for

  • Finding every company that used a phrase in its filings, then reading the documents that came back.
  • Pulling one company's 10-K and 8-K history for a model that needs the source text, not a summary.
  • Watching a form type on a schedule, using the date fields so each run only picks up what is new.
  • Building a CIK list for an internal database, since the CIK survives ticker changes and renames.

🚧 What it does not do

  • Metadata and a link, never the text. The filing itself is not downloaded or parsed here.
  • Full-text search stops at 10,000 results per query. That is the SEC's ceiling. Narrow a common

phrase with a form filter or a date range instead of trying to page past it.

  • Search rows are thin. ticker, reportDate and description are frequently null, because

the SEC's full-text index does not carry them. Use company mode when you need full records.

  • One row per matching document. A filing with several matching exhibits produces several rows.
  • company mode reads the recent filings block the SEC publishes per company. A start date

further back than that block reaches returns fewer rows without saying so.

  • Dates are taken as given. An impossible date is not rejected, it just matches nothing.
  • The query is one exact phrase. Quotes of your own, AND, OR and wildcards are not

interpreted.

  • A ticker that has been reused resolves to whichever company holds it today. Use a CIK to be

certain.

🧭 Which company data scraper do you need?

If you wantUse
SEC filings by phrase, ticker or CIKThis one
Share prices, OHLCV history and company financialsYahoo Finance Scraper
Trades disclosed by members of CongressCongress Stock Trades Scraper
Newly incorporated UK companiesNew UK Companies Scraper
Company pages and headcount on LinkedInLinkedIn Companies Scraper

❓ Questions people ask

Do I need an SEC account or key? No. EDGAR is a public government system and this reads it directly.

Why did four tickers give me fewer rows than I expected? maxItems is one budget for the whole run. Raise it, or run the companies separately.

Why is ticker empty on my search results? The SEC's full-text index often does not publish it. Take the cik from the row and run company mode on that.

Can I search for two phrases at once? Not in one run. The query goes in as a single quoted phrase. Run them separately and join on accessionNumber.

Can I schedule it? Yes. Set startDate to the day you last ran it, and each run picks up what has been filed since.

Is this legal? EDGAR is published by the SEC for public use, and these are documents companies are required by law to file. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the run ID and the input you used. The errorCode on the diagnostic row usually names the problem on its own.