Construct a GET request to https://efts.sec.gov/LATEST/search-index with query parameters: q for your search terms (supports boolean operators, exact phrases with quotes, and wildcards), dateRange for a custom date window, and forms to filter by form type (e.g., 10-K, 8-K, DEF 14A)
Add the category parameter to scope the search to form-type level or exhibit level as needed; the EFTS API searches the full text of all electronically filed EDGAR documents since 2001
Parse the JSON response; each hit includes metadata fields such as accession number, CIK, entity name, form type, filing date, and a document URL pointing to the filing on sec.gov
Use the accession number and CIK to retrieve the full filing index from https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK={cik}&type={formType}&dateb=&owner=include&count=40 or the submissions API
Paginate using the from and size parameters; the API returns results in configurable page sizes
Set a User-Agent header that identifies your organization and contact email per SEC fair-access guidelines — unauthenticated bots without a proper User-Agent may be rate-limited or blocked
Known gotchas
The EFTS only covers filings submitted electronically since 2001; older paper-converted filings and many pre-2001 documents are not indexed for full-text search
No API key is required, but the SEC enforces a rate limit of approximately 10 requests per second per IP; exceeding this results in HTTP 429 responses — implement exponential backoff
Exhibit-level search can surface the same underlying information in multiple result hits (e.g., the same exhibit filed as part of different form types); deduplicate by accession number when counting unique disclosures
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp