Blog / Developer guides
Developer guides

EDGAR Full Text Search: Find Any Phrase in SEC Filings

Learn what EDGAR full text search covers, its query syntax, and how to pull matching filings as structured JSON instead of paging through results by hand.

By the SecFeed teamOctober 15, 20266 min read
Key takeaways

Most of the fields on an EDGAR filing, like the company name, form type and filing date, are already indexed and easy to search. The actual prose inside a 10-K's risk factors, an 8-K's description of an event, or an exhibit buried five documents deep is a different problem. EDGAR full text search solves that by indexing the words inside filings themselves, not just their metadata.

This guide covers what the system indexes, how to write a query that actually matches, where its coverage stops, and how to run the same kind of phrase search from code.

What EDGAR full text search covers

EDGAR full text search, often called EFTS, indexes the complete text of filings and their exhibits submitted to EDGAR from 2001 to the present. That includes the body of forms like 10-K, 10-Q and 8-K, as well as attached exhibits, press releases filed as exhibits, and other documents that are part of a submission.

It is separate from EDGAR's structured company and filing search, which matches on fields like ticker, CIK and form type but does not look inside the document text. Full text search is the tool for the opposite case: you know roughly what a filing says, not which company or form it is.

How to write a query that matches

The search accepts plain keywords by default, but a few syntax rules change how it matches:

SyntaxWhat it doesExample
"exact phrase"Matches the words in that exact order"going concern"
word*Wildcard, matches any endingrestat* matches restatement, restated
AND, OR, NOTCombine terms"data breach" AND "material weakness"
NEAR/nMatches terms within n words of each other"supply chain" NEAR/5 disruption

Without quotation marks, a multi word query is treated as separate keywords rather than a phrase, so it tends to return far more filings than you expect. If you are looking for specific wording, always quote it.

Full text search on sec.gov also lets you filter by form type, filer, and a date range in the same query. Narrowing by date is the fastest way to cut down noise when a phrase is common, like "material weakness" or "cybersecurity incident".

Filtering by form type and date

A phrase search alone can return thousands of filings once a term becomes common. Combining it with a form type filter (for example, only 8-K or only 10-K) and a filing date range turns a vague search into something you can actually read through. This matters more every year, since the volume of filings that happen to contain any given common phrase keeps growing.

Get this data as clean JSON

SecFeed turns SEC filings into structured data with one API call: GET /v1/full-text-search. 500 free calls a month.

Get a free API key →

Reading the results

Each result points to a specific filing: its accession number, the filer's name and CIK, the form type, the filing date, and a short snippet showing the matched text in context. The snippet is useful for a quick scan, but it is just the matched sentence or two. To read the full context, like the paragraph before and after a risk factor disclosure, you still need to open the filing document itself.

Results are also capped per page, so a broad query across a long date range needs to be paged through, or narrowed with a form type and date filter before you rely on the result count as a measure of how common something is.

What full text search cannot do

A few limits matter when you build on top of this tool:

  1. No coverage before 2001. The index starts with filings submitted in 2001. A phrase from a 1998 10-K will not match, even if the document is on EDGAR.
  2. It is a text index, not a financial database. It can tell you a filing contains the word "goodwill impairment", but it will not extract the dollar amount next to it.
  3. Snippets, not full passages. You get the matching sentence, not the surrounding section, until you fetch the document.
  4. Exhibits count, but not every attachment is text. Scanned images or PDFs without an extracted text layer will not match a text query.

Searching filing text with SecFeed

SecFeed exposes the same kind of phrase search over the API, so you can pull matching filings as rows instead of a web page. Searches require a quoted phrase for an exact match, and you can scope by form type and date range:

curl "https://secfeedapi.com/v1/full-text-search?query=\"going concern\"&formTypes=10-K&startDate=2026-01-01" \
  -H "Authorization: Bearer YOUR_API_KEY"

Each row includes the filer, form type, filing date, accession number and the matched snippet:

{
  "cik": "1067983",
  "companyName": "EXAMPLE HOLDINGS INC",
  "formType": "10-K",
  "filedAt": "2026-02-18",
  "accessionNo": "0001067983-26-000012",
  "snippet": "...management has concluded there is substantial doubt about the company's ability to continue as a going concern..."
}

In Python, with the stdlib only SDK:

from secfeed import Client

sf = Client("YOUR_API_KEY")
rows = sf.full_text_search('"material weakness"', form_types=["10-K"], start_date="2026-01-01")
for r in rows:
    print(r["companyName"], r["filedAt"], r["accessionNo"])

From there, use the accession number with /v1/files to list the documents in that filing, or /v1/extractor to pull a specific item's text directly. For a broader look at what the full EDGAR API surface covers beyond text search, see our guide to the SEC EDGAR API.

Frequently asked questions

How far back does EDGAR full text search go?

It covers filings submitted from 2001 to the present. Filings submitted before 2001 are on EDGAR but are not part of the full text index.

Does full text search look inside exhibits, or just the main document?

Both. The index covers the complete text of a filing and the exhibits attached to it, including attached press releases and other documents filed as part of the submission.

Why do I get so many results without quotation marks?

Without quotes, the words in your query are treated as separate keywords that can appear anywhere in the document, not as a phrase in that exact order. Quoting the phrase matches the words together and in sequence.

Can I search for a company's filings and a phrase at the same time?

Yes. You can scope a full text query by filer, form type and date range in the same search, whether through the SEC's own interface or the equivalent parameters in an API.

Is EDGAR full text search free?

Yes. It is a free tool on sec.gov. Paid tools add convenience on top, like structured rows, combining text search with other filters, and pulling results directly into code.

Get this data as clean JSON

SecFeed turns SEC filings into structured data with one API call: GET /v1/full-text-search. 500 free calls a month.

Get a free API key →

For information only, not investment advice. Data from public SEC filings; verify important figures on SEC.gov. See our AI Disclosure.