SEC EDGAR Full-Text Search Scraper avatar

SEC EDGAR Full-Text Search Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
SEC EDGAR Full-Text Search Scraper

SEC EDGAR Full-Text Search Scraper

Search all SEC filings (10-K, 8-K, S-1, etc.) by any keyword or phrase via EDGAR full-text search. Extract company name, ticker, CIK, form type, filing date, accession number, and file URL. No API key required.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

SEC EDGAR Full-Text Search Scraper — Search All SEC Filings by Keyword, Form Type & Date

Search across every public SEC filing ever submitted and extract structured company data, filing metadata, and document links — no API key, no login, no limits.

What does SEC EDGAR Full-Text Search Scraper do?

This actor queries the SEC EDGAR full-text search engine (efts.sec.gov) — the same engine powering the official EDGAR EFTS search interface — to find filings that contain any keyword, phrase, or concept you specify. It supports every form type in the EDGAR database: 10-K annual reports, 8-K material events, S-1 IPO prospectuses, 10-Q quarterly reports, DEF 14A proxy statements, 20-F foreign private issuer filings, and hundreds more.

The actor paginates through results using the from parameter (100 hits per page), collecting up to your maxResults cap. For each matching filing, it parses the Elasticsearch-style hit from the EFTS API and constructs structured output including direct document links, EDGAR filing index URLs, company identifiers, and business metadata. The SEC server is a U.S. government resource with no bot protection — datacenter proxies work reliably, and the official policy merely requires a descriptive User-Agent header, which this actor supplies automatically.

Who is it for?

  • Financial analysts and hedge funds tracking narrative shifts (AI risk, ESG disclosures, supply chain) across thousands of annual reports simultaneously.
  • Compliance and legal teams that need to monitor how specific regulatory language appears in filings across sectors.
  • Journalists and investigative reporters searching for companies mentioning specific topics, events, or counterparties.
  • Academic researchers building datasets of SEC disclosures for NLP, topic modeling, or event studies.
  • Corporate intelligence professionals doing competitive benchmarking by searching for competitor names or product mentions inside rival filings.

Use cases

  • Find every 10-K that mentions "artificial intelligence risk" and build a dataset of AI-related risk disclosures across all public companies.
  • Search for all 8-K filings mentioning a specific executive's name or a named acquisition target to reconstruct M&A timelines.
  • Track which companies filed S-1 prospectuses disclosing "cryptocurrency" holdings or revenue in a given year.
  • Pull all DEF 14A proxy statements referencing a specific activist investor or shareholder proposal language.
  • Monitor real-time filings for new disclosures about a specific geopolitical event, product recall, or regulatory investigation.

Why use SEC EDGAR Full-Text Search Scraper?

  • No API key required — queries the public EFTS endpoint used by EDGAR's own search UI, free forever.
  • 14 output fields per filing — company name, ticker, CIK, form type, filing date, period ending, accession number, document URL, EDGAR index page, description, locations, incorporation states, SIC codes, and relevance score.
  • Bulk pagination — fetches up to 10,000 results per run by paginating 100 hits at a time.
  • Flexible form filtering — filter by one or multiple form types (10-K, 8-K, S-1, etc.) or search across all forms.
  • Date range support — narrow results to a specific date window with dateFrom and dateTo.
  • Export to CSV, JSON, Excel — all results available via Apify's standard dataset export in any format.

What data can you extract?

The actor returns one row per matching filing document with the following fields:

FieldTypeDescription
companyNamestringFull registered company name (e.g. "Apple Inc.")
tickerstringStock ticker symbol(s) (e.g. "AAPL", or "LAAI, VEST" for multiple)
cikstringSEC Central Index Key — unique company identifier
formTypestringSEC form type (10-K, 8-K, 10-K/A, S-1, etc.)
filingDatestringDate the filing was submitted (YYYY-MM-DD)
periodEndingstringPeriod the filing covers (YYYY-MM-DD), e.g. fiscal year end
accessionNostringAccession number (e.g. "0001477932-26-002727") — unique filing ID
fileUrlstringDirect URL to the primary filing document (HTML/HTM)
edgarUrlstringEDGAR filing index page URL for the full filing package
fileDescriptionstringHuman-readable description of the document (e.g. "FORM 10-K ANNUAL REPORT")
bizLocationsstringBusiness/mailing address(es) from the filing header
incStatesstringState(s) of incorporation
sicsstringSIC industry code(s) for the company
relevanceScorestringElasticsearch relevance score (higher = closer match to query)

Example output record:

{
"companyName": "Apple Inc.",
"ticker": "AAPL",
"cik": "0000320193",
"formType": "10-K",
"filingDate": "2024-11-01",
"periodEnding": "2024-09-28",
"accessionNo": "0000320193-24-000123",
"fileUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
"edgarUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/000032019324000123-index.htm",
"fileDescription": "FORM 10-K",
"bizLocations": "Cupertino, CA",
"incStates": "CA",
"sics": "3571",
"relevanceScore": "18.5"
}

How to use

Option A — Search by keyword across all forms

  1. Set query to your search phrase (e.g. "supply chain disruption").
  2. Leave forms empty (or remove it) to search all form types.
  3. Optionally set dateFrom and dateTo for a date window.
  4. Set maxResults to how many results you need.

Input JSON:

{
"query": "supply chain disruption",
"maxResults": 500
}

Option B — Target specific form types and date range

  1. Set query to your keyword.
  2. Set forms to the form types you want (e.g. ["10-K", "10-K/A"]).
  3. Set dateFrom and dateTo for the filing date window.

Input JSON:

{
"query": "cryptocurrency exposure",
"forms": ["10-K", "8-K", "S-1"],
"dateFrom": "2023-01-01",
"dateTo": "2024-12-31",
"maxResults": 1000
}

Input parameters

ParameterTypeDefaultDescription
querystringrequiredFull-text search keyword or phrase
formsarray["10-K"]SEC form types to filter by. Empty = all forms
dateFromstring""Filing date start filter (YYYY-MM-DD)
dateTostring""Filing date end filter (YYYY-MM-DD)
maxResultsinteger200Maximum results to return (1–10000)
proxyConfigurationobjectdatacenterApify proxy settings

Full input JSON:

{
"query": "artificial intelligence risk",
"forms": ["10-K"],
"dateFrom": "2022-01-01",
"dateTo": "2024-12-31",
"maxResults": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": []
}
}

Output example

{
"companyName": "Microsoft Corporation",
"ticker": "MSFT",
"cik": "0000789019",
"formType": "10-K",
"filingDate": "2024-07-30",
"periodEnding": "2024-06-30",
"accessionNo": "0000950170-24-087843",
"fileUrl": "https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/msft-20240630.htm",
"edgarUrl": "https://www.sec.gov/Archives/edgar/data/789019/000095017024087843/000095017024087843-index.htm",
"fileDescription": "FORM 10-K",
"bizLocations": "Redmond, WA",
"incStates": "WA",
"sics": "7372",
"relevanceScore": "22.4"
}

Tips for best results

  • Use quoted phrases for exact matches (e.g. "deepfake risk") to find filings that use that precise language.
  • Combine with date filters to track how disclosure language evolved over time — compare 2021 vs. 2024 for the same query.
  • Filter by 8-K for real-time event disclosures — 8-K filings are submitted within 4 business days of a material event.
  • Use 10-K for annual risk factor analysis — annual reports contain the most detailed risk disclosures in Item 1A.
  • CIK is your stable ID — use it to look up all filings by a company at https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK={cik}.
  • Start broad, then narrow — run with all forms and a wide date range first to understand result volume, then add filters.
  • Cross-reference the accessionNo — it uniquely identifies the filing; use it to fetch exhibit lists or the full filing index.
  • High relevance score = closer keyword match — sort by relevanceScore descending for the most on-topic results.
  • For foreign companies, filter by form type 20-F (annual) or 6-K (periodic reports for foreign private issuers).
  • Set maxResults to 1000+ for comprehensive market-wide studies; the EDGAR index covers filings back to 1993.

Integrations

Connect SEC EDGAR Full-Text Search Scraper to your existing workflow:

  • Google Sheets — export dataset to Sheets via Apify's native Google Sheets integration; auto-refresh on a schedule.
  • Slack — configure webhooks to notify your team when new filings matching your query appear.
  • Zapier / Make — connect to 1000s of apps; trigger workflows when new filing data is available.
  • Webhooks — set up Apify webhooks to POST results to your own API endpoint on run completion.
  • Schedule — run weekly or daily to monitor new filings for your query terms as companies file.

API usage

cURL:

curl -X POST \
"https://api.apify.com/v2/acts/logiover~sec-edgar-fulltext-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "artificial intelligence risk",
"forms": ["10-K"],
"maxResults": 200
}'

Node.js (Apify client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('logiover/sec-edgar-fulltext-scraper').call({
query: 'artificial intelligence risk',
forms: ['10-K'],
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/sec-edgar-fulltext-scraper").call(run_input={
"query": "artificial intelligence risk",
"forms": ["10-K"],
"maxResults": 200,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with AI agents (MCP)

SEC EDGAR Full-Text Search Scraper is compatible with the Apify MCP server, allowing AI agents like Claude, GPT-4, and others to search SEC filings directly via tool calls. Connect the MCP server and your agent can answer questions like: "Find all 10-K filings from 2023 mentioning 'PFAS exposure' and list the companies by relevance score" — without any manual data extraction.

FAQ

Does this actor require an API key or login?

No. The SEC EDGAR full-text search endpoint (efts.sec.gov) is fully public and requires no authentication. The only requirement is a descriptive User-Agent header, which is set automatically.

How far back does the coverage go?

The EDGAR database contains filings from 1993 onwards. Full-text search coverage depends on whether the document was submitted in text/HTML format — most filings from 1996 onward are fully indexed. Very old scanned PDFs may not be searchable.

How many results can I get per run?

The theoretical maximum is 10,000 results per run (EDGAR's ES index caps at 10,000 for any query). Set maxResults up to 10000. Each page fetches 100 results; a 10,000-result run makes 100 API calls.

Why do I get 0 results?

Check your query spelling and try broader terms. Very narrow phrases may have no exact matches. Also verify the form type filter — e.g. 10-K/A is distinct from 10-K. Try removing form and date filters first.

Why are some fields null?

Not all filings have every metadata field populated. Foreign issuers often lack US state fields. Companies without a ticker (e.g. reporting-only entities) will have ticker: null.

Can I export results to CSV or Excel?

Yes. After the run, go to the dataset and click "Export" — choose CSV, JSON, Excel, or XML. You can also use the Apify API to fetch the dataset programmatically.

How fast is a run?

A 200-result run typically completes in under 30 seconds. A 10,000-result run takes about 5 minutes. The SEC EDGAR API is fast and rate-limiting is minimal for well-behaved clients.

Is there a rate limit on the SEC EDGAR server?

The SEC recommends no more than 10 requests per second and requires a descriptive User-Agent. This actor throttles automatically and will not hit rate limits under normal use.

Yes. SEC EDGAR is a U.S. government public database maintained for investor access. All data is in the public domain. The SEC's access policies permit automated access with a proper User-Agent header.

How often is EDGAR updated?

The SEC processes filings continuously on business days. New 8-K filings appear within hours of submission. Schedule this actor daily to capture new filings as they appear.

Can I search for multiple keywords at once?

Yes — EDGAR's full-text search supports boolean operators. Try "supply chain" AND "force majeure" or "cybersecurity" OR "data breach" in your query field.

What form types are available?

All SEC forms are searchable: 10-K, 10-Q, 8-K, S-1, S-11, 20-F, 6-K, DEF 14A, SC 13G, Form 4, Form 13F, and 100+ more. Leave forms empty to search all.

This actor accesses the SEC EDGAR Full-Text Search System, a public U.S. government service provided by the Securities and Exchange Commission. All data returned is in the public domain and freely accessible per U.S. government open data policy. No login, scraping of private content, or circumvention of access controls is involved. Users are responsible for ensuring their use of financial disclosure data complies with applicable securities laws and their organization's policies.