SEC EDGAR Full-Text Filing Search avatar

SEC EDGAR Full-Text Filing Search

Under maintenance

Pricing

Pay per usage

Go to Apify Store
SEC EDGAR Full-Text Filing Search

SEC EDGAR Full-Text Filing Search

Under maintenance

SEC EDGAR full-text filing search by free-text query, CIK, form type, and date range. Returns structured records with form type, accession number, CIK, ticker, and SIC. No API key.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Mori

Mori

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

The SEC publishes every public-company filing since 1994 through its SEC EDGAR full-text search index (efts.search). This SEC EDGAR actor queries that index by free-text phrase, CIK, form type, and date range and returns each filing hit as a structured record — accession number, CIK, ticker, SIC code, filing date, document URL.

Built for the workflows where you need to answer questions like:

  • "Show me all 10-K filings mentioning insider trading policy filed in Q1 2024."
  • "Pull every Form 4 insider-trading report from Apple (CIK 320193) in 2025."
  • "Find recent 8-K disclosures for any issuer in SIC code 737 (software / data processing)."
  • "Get every recent exhibit from any issuer that includes the words going concern in the body."

No API keys, no OAuth, no captchas. Polite-pool only — a descriptive User-Agent and a 120ms inter-request sleep are baked in.

What it returns

One record per SEC EDGAR filing hit. Real sample from a 2026-09-01 smoke run on input {"ciks":"0000320193","forms":"10-K","dateRange":"custom","startdt":"2023-01-01","enddt":"2024-12-31","maxItems":2} (run id 4e4PTHh1dzMeet2cG, dataset zPjRUG11ywzefgVG8):

{
"id": "0000320193-24-000123:aapl-20240928.htm",
"accessionNumber": "0000320193-24-000123",
"accessionUrl": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0000320193&type=10-K&dateb=&owner=include&count=40",
"form": "10-K",
"fileType": "10-K",
"fileDescription": "10-K",
"fileDate": "2024-11-01",
"periodEnding": "2024-09-28",
"cik": "0000320193",
"allCiks": "[\"0000320193\"]",
"displayNames": "[\"Apple Inc. (AAPL) (CIK 0000320193)\"]",
"tickers": "[\"AAPL\"]",
"sic": "3571",
"sicDescription": "Electronic Computers",
"bizState": "CA",
"bizLocation": "Cupertino, CA",
"fileNum": "001-36743",
"filmNum": "241416806",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
"score": null,
"sourceQuery": "(none) + ciks=0000320193 + forms=10-K + dateRange=custom + startdt=2023-01-01 + enddt=2024-12-31",
"fetchedAt": "2026-09-01T23:47:13.000Z"
}

Input

Matches the actor's INPUT_SCHEMA.json exactly:

FieldRequiredDescription
queryconditionalFree-text search. Supports phrase queries ("insider trading") and AND/OR operators. Required if ciks is empty.
ciksconditionalComma-separated CIK numbers (10-digit zero-padded or trimmed, e.g. 0000320193 or 320193). Required if query is empty.
formsnoComma-separated form-type filter (e.g. 10-K,10-Q,8-K,4). Empty for all forms.
dateRangenoEDGAR built-in preset. Allowed: custom, today, yesterday, last-week, last-month, last-quarter, last-year, 1d, 5d, 30d, 90d, 1y. Use custom with startdt/enddt.
startdtconditionalYYYY-MM-DD lower bound. Only when dateRange='custom'.
enddtconditionalYYYY-MM-DD upper bound. Only when dateRange='custom'.
maxItemsnoMax records to return (1–100, default 10). EDGAR /search-index caps page size at 100.

Validation: at least one of query or ciks must be non-empty. The actor fails fast at startup if both are missing.

Example inputs:

# Query mode: "insider trading" in 10-K filings, Q1 2024
echo '{"query":"\"insider trading\"","forms":"10-K","dateRange":"custom","startdt":"2024-01-01","enddt":"2024-03-31","maxItems":5}' > .actor/input.json
# CIK mode: every Form 4 from Apple in 2025
echo '{"ciks":"0000320193","forms":"4","dateRange":"custom","startdt":"2025-01-01","enddt":"2025-12-31","maxItems":10}' > .actor/input.json
# Combined: software industry (SIC 7372) + "data breach"
echo '{"query":"data breach","forms":"8-K","dateRange":"last-month","maxItems":10}' > .actor/input.json

How it works

The actor hits https://efts.sec.gov/LATEST/search-index?q=<query>&ciks=<ciks>&forms=<forms>&dateRange=<preset> (or with startdt/enddt for dateRange=custom), parses the JSON response, and projects each hit into a flat record. List-valued fields (allCiks, displayNames, tickers) are JSON-encoded as strings because Apify's output schema v1 only renders string-typed fields. Pagination beyond maxItems=100 requires an external loop — intentional, because EDGAR caps page size at 100.

Run

make install
make run # local smoke against INPUT_SCHEMA.json
make push # build + push to Apify
make run-prod # cloud smoke on the published build

Limits and gotchas

  • Polite-pool rate limit. SEC guidance: "no more than 10 requests per second" with a descriptive User-Agent. The actor sends one request per run by default.
  • No proxy. This is a keyless public endpoint. SEC blocks anonymous datacenter IPs at peak hours; consumer traffic from Apify's IP pool works fine for typical workloads but heavy commercial usage should consider a polite-pool agreement with SEC.
  • SIC subset is partial. The actor embeds a ~250-entry subset of SEC's SIC table covering finance, real estate, manufacturing, retail, services, and government. Less-common SIC codes will return sicDescription=null — consumers can resolve via SEC's published SIC list.
  • Free-text quirks. EDGAR uses Elasticsearch match-phrase semantics. Bareword queries match across all token positions; quoted strings anchor to phrase order; capitalisation is normalised. Wildcard * returns an empty result set — use forms + date filters to scope instead.
  • Score field. EDGAR's score is null for CIK-only queries (the index does not compute relevance when the query is structurally constrained). For text queries it returns a relevance number.

License

SEC EDGAR is a US SEC public service; filing metadata is in the public domain.