SEC EDGAR full-text search

EDGAR full-text search lets you find every SEC filing that contains a specific word or phrase, going back to 2001. It is one of the most powerful free research tools in finance, but it has limits worth understanding before you build a pipeline on top of it.

Want this data via API instead of reading about it? Get a free API key →

What it is

EDGAR full-text search (EFTS) is the SEC's keyword-search engine over the body content of every filing submitted since 2001. You enter a search term, optionally filter by form type, date range, or filer CIK, and EFTS returns matching filings with snippets.

The web interface is at efts.sec.gov/LATEST/search-index?q=... and there's a JSON API exposed at the same path. You can query EFTS programmatically and get structured responses, though the API is undocumented and the SEC reserves the right to change it.

  • Every 10-K or 10-Q mentioning a specific product, technology, or company name.
  • All 8-K filings referencing a specific accounting standard, regulation, or counterparty.
  • Filings that cite a particular legal case or settlement.
  • Risk-factor mentions of new themes (AI, supply chain, cyber, geopolitical risk, etc.).
  • Footnote searches for specific terms that don't appear in headlines.

For research and competitive intelligence, full-text search is an unusually high-leverage tool. A single well-chosen query can surface dozens of relevant filings that would take hours to find through other means.

What it does not do well

  • It is keyword-based, not semantic. A search for "AI" misses "machine learning" unless you query both.
  • It indexes text content, not XBRL or table data. You can search for "$5 billion" in a 10-K paragraph; you cannot use full-text search to query structured financial line items.
  • It returns filings, not specific passages. You get the filing-level match, then have to click through to find the matching context. Snippets help but aren't always sufficient.
  • It does not respect filing time. Results are ordered by relevance by default; date ordering is available but the API surface is finicky.
  • It has no first-class boolean operators. EFTS supports basic AND/OR/quoted phrases but lacks the precision of Google's operators.
  • Rate-limited. Like the rest of EDGAR, EFTS enforces request limits. Heavy programmatic use trips throttling fast. See SEC EDGAR rate limits.

API query examples

The EFTS endpoint accepts query parameters via GET:

curl -A "Research research@example.com" \
  "https://efts.sec.gov/LATEST/search-index?q=%22climate+risk%22&forms=10-K&dateRange=custom&startdt=2026-01-01&enddt=2026-06-19"

Parameters:

  • q, the search query (URL-encoded). Use quoted phrases for exact match.
  • forms, comma-separated form types (10-K, 10-Q, 8-K, etc.).
  • dateRange=custom&startdt=YYYY-MM-DD&enddt=YYYY-MM-DD, date filter.
  • ciks, comma-separated CIKs to restrict to specific filers.
  • entityName, filter by entity name fuzzy match.

The response is JSON with hit objects. Each hit contains the filing accession number, form type, filing date, filer CIK, entity name, file URL, and highlight snippets.

Use cases that work well

Tracking regulatory or policy terms

Search for "Inflation Reduction Act" in 10-K and 10-Q filings to track which companies are calling out the IRA in their MD&A. Use date ranges to see adoption curves.

Activist campaign monitoring

Search for "strategic alternatives" in 8-K filings. The phrase is shorthand for "we're exploring a sale or major restructuring," and the 8-K is usually the first public hint.

Counterparty exposure

Search for a specific customer or supplier name across all 10-K and 10-Q filings to see which public companies disclose material exposure to them.

Industry-wide language shifts

Search for emerging risk terms ("artificial intelligence", "supply chain disruption", "cyber incident") to see how often they appear in risk factors over time. Useful for thematic research.

What EdgarKit adds

EdgarKit doesn't replace EFTS for ad-hoc keyword research. The free SEC tool is fine for that.

Where EdgarKit helps is when you want to combine full-text matching with structured data:

  • Find all 8-Ks that mention "going concern" AND were filed by issuers in a specific market-cap or sector bucket.
  • Find all Form 4 filings where the footnote text references "10b5-1" AND the issuer has had cluster buying in the last 30 days.
  • Hydrate a full-text-search hit list with the filer's recent insider transaction history.

For these cross-joins, you pull the structured filing data from EdgarKit and run keyword filtering on the body content yourself, or use EFTS to get the initial candidate list and then hydrate each via EdgarKit.

# Pull all 8-Ks filed in the last 30 days, then filter by your own keyword logic
curl "https://api.edgarkit.com/v1/filings?form_type=8-K&since=2026-05-20&limit=200" \
  -H "Authorization: Bearer YOUR_API_KEY"

Practical limits to know

  • Snippets are truncated. You get a few lines of context; if you need more, fetch the filing.
  • Results cap. EFTS returns the top several thousand hits per query; beyond that you have to refine the query.
  • OCR for older filings is imperfect. Pre-2001 filings are not indexed; some 2001-2003 filings have OCR artifacts.
  • iXBRL tag content is not always reflected. Numbers embedded in XBRL tags may not surface in full-text matches.

FAQ

How far back does EDGAR full-text search go?

  1. Earlier filings exist in EDGAR but are not in the full-text index.

Is there an official API?

The endpoint at efts.sec.gov returns JSON and is broadly stable, but it is not officially documented and the SEC can change it without notice.

Can I do boolean queries?

Basic AND, OR, and quoted phrases work. Complex boolean logic and proximity operators are not well supported.

The same 10 req/sec per IP that applies to the rest of EDGAR. EFTS specifically gets throttled faster than the document servers; treat it as a stricter limit in practice.

Should I use full-text search for real-time filing alerts?

No. For real-time alerts, poll the Atom feed for new filings and apply your own keyword filtering on the body. Full-text search is better suited for ad-hoc research queries than for streaming.