SEC EDGAR Full-Text Filing Search
Under maintenancePricing
Pay per usage
SEC EDGAR Full-Text Filing Search
Under maintenanceSEC 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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:
| Field | Required | Description |
|---|---|---|
query | conditional | Free-text search. Supports phrase queries ("insider trading") and AND/OR operators. Required if ciks is empty. |
ciks | conditional | Comma-separated CIK numbers (10-digit zero-padded or trimmed, e.g. 0000320193 or 320193). Required if query is empty. |
forms | no | Comma-separated form-type filter (e.g. 10-K,10-Q,8-K,4). Empty for all forms. |
dateRange | no | EDGAR 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. |
startdt | conditional | YYYY-MM-DD lower bound. Only when dateRange='custom'. |
enddt | conditional | YYYY-MM-DD upper bound. Only when dateRange='custom'. |
maxItems | no | Max 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 2024echo '{"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 2025echo '{"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 installmake run # local smoke against INPUT_SCHEMA.jsonmake push # build + push to Apifymake 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 — useforms+ date filters to scope instead. - Score field. EDGAR's
scoreisnullfor 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.