SEC EDGAR Filings Full-Text Search avatar

SEC EDGAR Filings Full-Text Search

Pricing

from $2.67 / 1,000 results

Go to Apify Store
SEC EDGAR Filings Full-Text Search

SEC EDGAR Filings Full-Text Search

Search the full text of every SEC EDGAR filing: form type, company names and tickers, CIKs, filing and period dates, SIC codes, states, and direct links to the filing documents. Keyless public API, no login.

Pricing

from $2.67 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Search the full text of every SEC EDGAR filing and get structured results: form type, company names and tickers, CIKs, filing and period dates, 8-K item codes, SIC codes, incorporation and business states, and direct links to the filing documents.

Keyless public government API. No login, no browser, no proxy needed.

Input

FieldTypeDefaultDescription
searchQueriesarrayrequiredOne search per entry. "climate risk" in double quotes matches the exact phrase
formsarray—10-K, 8-K, S-1, DEF 14A, …
ciksarray—Zero-padded ten-digit CIKs, e.g. 0000320193
filedFrom / filedTostring—YYYY-MM-DD. Give either one and the actor fills the other — EDGAR ignores a half-open range
locationCodestring—Two-letter state/country of the filer's business address
maxItemsPerQueryinteger300Capped by the API at 10,000
userAgentstringactor idSee "Identifying yourself" below

Output

{
"_input": "\"material definitive agreement\"",
"_source": "S1-edgar-fts",
"_scrapedAt": "2026-09-09T13:02:55Z",
"accessionNumber": "0000035527-22-000119",
"documentId": "0000035527-22-000119:fitbannualreport202110-k.pdf",
"documentFile": "fitbannualreport202110-k.pdf",
"documentUrl": "https://www.sec.gov/Archives/edgar/data/35527/000003552722000119/fitbannualreport202110-k.pdf",
"filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/35527/000003552722000119/",
"form": "10-K", "rootForms": ["10-K"],
"fileType": "10-K", "fileDescription": "ANNUAL REPORT",
"filedAt": "2022-02-24", "periodEnding": "2021-12-31",
"items": ["1.02", "9.01"], // 8-K item codes; empty on other forms
"ciks": ["0000035527"],
"companyNames": ["FIFTH THIRD BANCORP"],
"tickers": ["FITB", "FITBI", "FITBO", "FITBP"],
"displayNames": ["FIFTH THIRD BANCORP (FITB, FITBI, FITBO, FITBP) (CIK 0000035527)"],
"fileNumbers": ["001-31826"], "filmNumbers": ["25834114"],
"sicCodes": ["6022"],
"incorporationStates": ["OH"],
"businessStates": ["OH"],
"businessLocations": ["Cincinnati, OH"],
"score": 12.4
}

Four things worth knowing

EDGAR reports failures inside a 200. Overrunning the result window returns HTTP 200 carrying {"errorType": "ResponseError", "errorMessage": "… Result window is too large …"} — no hits key, no error status. Code that checks only the status reads that as an empty page and stops, quietly, having collected less than it should. This actor inspects the body and emits an api_error row.

A single date bound is silently ignored. startdt without enddt returns exactly the unfiltered result set — same count, same first page, no error and no warning. Both bounds must be present for the range to apply at all. This actor fills the missing side for you (today, or 2001-01-01 where full-text coverage begins) and says so in the log, so a one-sided range does what you meant rather than quietly doing nothing.

total.relation tells you whether the count is real. EDGAR is honest about clamping: eq means an exact count, gte means it stopped counting at 10,000 — and 10,000 is also the paging ceiling (from tops out at 9900, since from + 100 must not exceed it). The actor logs

1454 filings match
versus at least 10000 filings match accordingly, and warns when you have asked for more than can be served. Narrowing by form, date range or CIK is how you reach the rest.

Company names carry their tickers, sometimes several. FIFTH THIRD BANCORP (FITB, FITBI, FITBO, FITBP) (CIK 0000035527) is one string upstream. The names, tickers and CIKs ship separately, with the original in displayNames. Parentheses that are part of a registered name — SMART Modular Technologies (WWH), Inc. — are left alone, because only a trailing parenthesis is treated as a ticker group.

Identifying yourself

SEC's fair-access policy asks automated requesters to identify themselves in the User-Agent, and the default here names this actor rather than impersonating a browser. To be precise about what is enforced versus what is asked: the server rejects only an empty User-Agent (403). Any non-empty value is accepted. If you are running at volume, put your own name and contact in userAgent.

Errors

_errorMeaning
invalid_inputEmpty search query
no_resultsThe search ran and matched no filings
api_errorA 200 carrying an error object — usually the result window is exhausted
unexpected_shapeA 200 without hits, or a hit without _source
blockedEvery TLS profile was refused
network_errorThe ladder never reached the server

If every query fails, the run itself fails rather than reporting success over an empty dataset.