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

Search SEC EDGAR full-text filing index by free-text query and/or CIK. Returns structured filing records (form type, file date, accession number, CIK, ticker, SIC) without API keys or captchas.

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

3 days ago

Last modified

Share

SEC EDGAR Full-Text Search

Search the SEC EDGAR full-text filing index by free-text query and/or CIK. Returns structured filing records — form type, file date, accession number, CIK, tickers, SIC, headquarter location — without API keys, OAuth, or captchas.

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."

Backed by SEC's public efts.search index — no proxy rotation, no scheduler, no quota to burn. Polite-pool only: a descriptive User-Agent and a soft 120ms inter-request sleep are baked in.

Input

FieldRequiredDescription
queryconditionalFree-text search. Supports phrase queries ("insider trading") and AND/OR operators. Must be supplied if ciks is empty.
ciksconditionalComma-separated CIK numbers (10-digit zero-padded or trimmed, e.g. 0000320193 or 320193). Must be supplied if query is empty.
formsnoComma-separated form-type filter (e.g. 10-K,10-Q,8-K,4). Leave empty for all forms.
dateRangenoEDGAR built-in date range (custom, today, 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 rule: at least one of query or ciks must be non-empty. The actor fails fast at startup if both are missing.

Output

One JSON record per filing hit. Every field is a string (Apify's output schema v1 only renders string-typed properties — arrays are JSON-encoded).

FieldDescription
idEDGAR _id (filename within accession)
accessionNumber0001213900-24-003044-style accession
accessionUrlEDGAR archive URL for the filing
formFiling form type (10-K, 10-Q, 8-K, 4, ...)
fileTypeDocument type within filing (10-K, EX-19.1, ...)
fileDescriptionFree-text description
fileDateFiling date YYYY-MM-DD
periodEndingPeriod of report YYYY-MM-DD (or null)
cikPrimary CIK (10-digit zero-padded)
allCiksJSON array of all CIKs in the filing
displayNamesJSON array of issuer names (incl. ticker + CIK suffix as EDGAR publishes them)
tickersJSON array of ticker symbols parsed from displayNames
sic4-digit SIC code
sicDescriptionHuman-readable SIC industry (resolved against an inline SEC SIC subset)
bizStateState of incorporation
bizLocationHeadquarter location string
fileNumFile number (001-41866-style)
filmNumFilm number (legacy SEC id)
documentUrlDirect URL to the document
filingIndexUrlFiling index page
edgarCompanyUrlSEC EDGAR company filings page for primary CIK
scoreEDGAR full-text relevance score
sourceQueryAudit trail — the query + filters as dispatched
fetchedAtActor fetch timestamp (ISO-8601)

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
apify run -p
# 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
apify run -p
# Combined: software industry (SIC 7372) + "data breach"
echo '{"query":"data breach","forms":"8-K","dateRange":"last-month","maxItems":10}' > .actor/input.json
apify run -p

Limits and gotchas

  • Rate limit. SEC guidance: "no more than 10 requests per second" with a polite-pool User-Agent. The actor sends one request per run by default; pagination beyond maxItems=100 requires an external loop (intentional — EDGAR caps /search-index page size at 100).
  • 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 https://www.sec.gov/corpfin/division-of-corporation-finance-standard-industrial-classification-sic-code-list.
  • Free-text quirks. EDGAR uses Elasticsearch's match-phrase semantics. A bareword query matches 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).

Pricing

Free tier: 10 runs/month on the Apify Free plan. Pro: pay-as-you-go compute units (negligible for single-call API actors — typically <0.001 CU per run).

Changelog

  • 0.1.0 — initial release.