SEC EDGAR Full-Text Search (Official API) avatar

SEC EDGAR Full-Text Search (Official API)

Pricing

Pay per event

Go to Apify Store
SEC EDGAR Full-Text Search (Official API)

SEC EDGAR Full-Text Search (Official API)

Search every SEC EDGAR filing since 2001 by phrase, form type, ticker and date. Normalized rows with company, ticker, CIK, form, 8-K items, SIC, state and direct document links. Built for AI agents and alerts.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Orvix

Orvix

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

Search the full text of every SEC EDGAR filing since 2001 — 10-K, 10-Q, 8-K, S-1, proxies, exhibits — for any phrase, and get clean, analyst-ready rows: company, tickers, CIK, form, filing date, 8-K item numbers, SIC, state, and direct links to the document and the filing index.

Uses SEC's own full-text search (efts.sec.gov) — no scraping of HTML, no API key, no proxies.

What it does better

  • Past SEC's 10,000-hit wall. EDGAR's search stops at 10,000 results; this Actor automatically splits the date range so you can pull up to 50,000 rows in one run (tested: 32,694 "going concern" documents for 2025 in one run).
  • Ticker or CIK lookups with or without a search phrase (e.g. "every Apple 10-K").
  • Fails loudly on bad input — invalid dates, unknown tickers — instead of silently searching everything.
  • No duplicates, optional one-row-per-filing mode.
  • Fast: ~1,500 rows in ~7 s, 12,000 rows in ~2 min on 256 MB.
  • Fair to SEC: max 5 requests/second (SEC's limit is 10), declared User-Agent, exponential backoff on 429/5xx.

Examples

Going-concern warnings in 8-Ks this quarter

{ "query": "\"going concern\"", "forms": ["8-K"], "startDate": "2026-07-01", "endDate": "2026-09-30", "maxResults": 500 }

Boolean: going concern AND material weakness in 2025 10-Ks

{ "query": "\"going concern\" AND \"material weakness\"", "forms": ["10-K"], "startDate": "2025-01-01", "endDate": "2025-12-31" }

Cybersecurity incident disclosures (Item 1.05)

{ "query": "\"Item 1.05\" OR \"cybersecurity incident\"", "forms": ["8-K"], "startDate": "2026-01-01" }

Every Apple 10-K (no phrase needed)

{ "tickers": ["AAPL"], "forms": ["10-K"] }

Tesla 8-Ks by CIK, one row per filing

{ "ciks": ["1318605"], "forms": ["8-K"], "startDate": "2025-01-01", "dedupeByFiling": true }

New IPO registrations (S-1) since June

{ "query": "\"initial public offering\"", "forms": ["S-1"], "startDate": "2026-06-01" }

Input

FieldDescription
queryFull-text query. "quotes" = exact phrase. Supports AND, OR, NOT. Optional if you give tickers/CIKs.
formsForm types, e.g. 8-K, 10-K, 10-Q, S-1, DEF 14A. SEC includes amendments (8-K/A). Empty = all.
tickersLimit to companies by ticker. Unknown tickers are skipped with a warning; if none are valid the run fails.
ciksLimit by SEC CIK number (works for companies without tickers).
startDate / endDateYYYY-MM-DD. Default: last 30 days for phrase searches, 2001-01-01 for ticker/CIK lookups.
maxResultsStop after N rows (1–50,000, default 100). You pay per row.
dedupeByFilingOff: one row per matching document (main doc + exhibits). On: one row per filing.
userAgentOptional. SEC asks for a name + email.

A SUMMARY record in the key-value store gives total matches, rows returned and timing.

Sample output

{
"companyName": "HEALTHY CHOICE WELLNESS CORP.",
"tickers": ["HCWC"],
"cik": "1948864",
"form": "8-K",
"rootForm": "8-K",
"fileDate": "2026-09-17",
"periodEnding": "2026-09-17",
"accessionNumber": "0001493152-26-043135",
"documentType": "EX-99.1",
"documentDescription": "EX-99.1",
"items8K": ["1.01", "2.01", "2.02", "9.01"],
"sic": "5411",
"state": "FL",
"location": "Hollywood, FL",
"stateOfIncorporation": "DE",
"fileNumber": "001-42274",
"otherFilers": [],
"documentUrl": "https://www.sec.gov/Archives/edgar/data/1948864/000149315226043135/ex99-1.htm",
"filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/1948864/000149315226043135/0001493152-26-043135-index.htm",
"matchScore": 12.39,
"query": "\"going concern\""
}

Pricing (pay per event)

  • $0.005 per run
  • $0.001 per filing row ($1 per 1,000). Platform compute is included — you pay only the per-run and per-row fees above. If your run hits your spending limit, the Actor stops and never returns unpaid rows.

Output fields

FieldTypeDescription
companyNamestringFiler name
tickersarrayTickers (if any)
cikstringSEC Central Index Key
form / rootFormstringForm as filed (e.g. 8-K/A) and root form (8-K)
fileDate / periodEndingdateFiling date and period of report
accessionNumberstringSEC accession number
documentType / documentDescriptionstringMain document or exhibit type (e.g. EX-99.1)
items8Karray8-K item numbers (e.g. 1.01, 2.02, 1.05)
sicstringIndustry SIC code
state / location / stateOfIncorporationstringBusiness address state, city and incorporation state
fileNumberstringSEC file number
otherFilersarrayCo-filers on the same filing
documentUrl / filingIndexUrlURLDirect document link and filing index
matchScorenumberSEC relevance score
querystringQuery that matched

What it costs (worked examples)

RunRowsCost
Daily alert, small50$0.005 + $0.05 = $0.055
Quarter of going-concern 8-Ks1,000$0.005 + $1.00 = $1.005
Full-year research pull50,000$0.005 + $50.00 = $50.005

How it compares

This ActorEDGAR full-text search website
Max results per search50,000 (auto date-splitting)10,000
Ticker → CIK lookupBuilt inManual
OutputNormalized rows: tickers, 8-K items, SIC, state, linksWeb result list
Export / schedule / APIJSON, CSV, Excel, API, schedules, webhooksManual
Bad inputFails with a clear messageSilently broad results

Use with AI agents (MCP), n8n, Make and Zapier

MCP (Claude, Cursor, any MCP client):

{ "mcpServers": { "apify": { "type": "http", "url": "https://mcp.apify.com/?tools=contented_catwalk/sec-edgar-full-text-search" } } }

Ask your agent e.g. "Find 8-Ks filed this week that mention a cybersecurity incident and list the companies." n8n: add the Apify node → Run an Actor and get dataset items → Actor contented_catwalk/sec-edgar-full-text-search → paste an example input. Add a Schedule trigger for daily alerts to Slack, email or Sheets. Make / Zapier: Apify app → Run Actor, then Get Dataset Items. API: POST https://api.apify.com/v2/acts/contented_catwalk~sec-edgar-full-text-search/run-sync-get-dataset-items?token=<YOUR_TOKEN> with the input JSON as the body.

Limits & FAQ

  • Coverage: SEC full-text search covers 2001 onward. Older filings aren't searchable.
  • Max 50,000 rows per run. Schedule daily/weekly runs for alerts instead of huge back-fills.
  • Why more rows than filings? A filing has several documents (main + exhibits); each matching document is a row. Turn on dedupeByFiling for one row per filing.
  • Ordering: by SEC relevance within each date window; newest windows first on very large pulls.
  • Does it download the full text? No — it returns links to the documents. Pair with a document fetcher if you need text.
  • Is a 10-K/A included when I ask for 10-K? Yes, SEC treats amendments as the same root form; filter on form if you don't want them.
  • Empty results finish successfully with 0 rows and a warning; invalid input fails with a clear message (and costs nothing beyond the start fee).

Data source & terms

SEC EDGAR public full-text search and company_tickers.json. SEC data is public; requests follow SEC's fair-access policy. Not affiliated with or endorsed by the U.S. SEC.