SEC EDGAR Full-Text Search — Search All Filings by Keyword
Pricing
Pay per usage
SEC EDGAR Full-Text Search — Search All Filings by Keyword
Search the full text of every SEC EDGAR filing by keyword. Find 10-K, 10-Q, 8-K and all other filings mentioning any term — company, product, risk factor, or person — with filing dates and direct document URLs. Official SEC full-text search API. No API key.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
parker odam
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
SEC Full Text Search API — Search SEC Filings by Keyword
Search all SEC EDGAR filings by keyword using the official EDGAR full-text search API (EFTS). Find any company that mentions a specific term, phrase, or topic in their 10-K, 10-Q, 8-K, proxy statements, or any other SEC filing.
What It Does
This actor calls the SEC EDGAR full text search endpoint (efts.sec.gov) which indexes the full text of every document ever filed with the SEC. Unlike the EDGAR company search (which only searches by company name), this actor lets you search SEC filings by keyword — the actual content of the documents.
Use cases:
- Investment research: Find all 10-K filings that disclose exposure to a specific risk (e.g., "climate risk", "supply chain disruption", "PFAS")
- Competitive intelligence: Search which competitors mention your company by name in their filings
- Due diligence: Find all filings discussing a specific contract, litigation, or regulatory issue
- Legal research: Locate filings referencing specific legal cases, settlements, or regulations
- Academic research: Track how disclosure language evolves over time for any topic
- ESG screening: Find companies with specific environmental, social, or governance disclosures
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Full-text search query. Use quotes for phrases: "climate risk". Supports AND, OR, NOT. |
forms | string[] | No | Filter by form type: ["10-K"], ["10-K", "10-Q"]. Leave empty for all forms. |
startDate | string | No | Only filings on or after this date (YYYY-MM-DD). |
endDate | string | No | Only filings on or before this date (YYYY-MM-DD). |
ciks | string[] | No | Filter by specific CIK numbers (SEC company identifiers). |
maxResults | integer | No | Maximum results to return (default: 100, max: 10000). |
userAgent | string | No | Your app name + contact email (required by SEC policy). |
Example input:
{"query": "artificial intelligence","forms": ["10-K"],"startDate": "2023-01-01","maxResults": 50,"userAgent": "my-research-tool/1.0 researcher@example.com"}
Output
Each result is a FilingHit object:
| Field | Type | Description |
|---|---|---|
query | string | The search query that produced this hit |
company | string | Filer company / entity name |
cik | string | SEC Central Index Key (10-digit, zero-padded) |
formType | string | Specific document type (e.g., "10-K", "EX-99.1") |
rootFormType | string? | Parent filing type (e.g., "10-K" for an exhibit) |
filingDate | string | Date filed (ISO YYYY-MM-DD) |
periodEnding | string? | Reporting period end date (ISO YYYY-MM-DD) |
accessionNumber | string | Unique SEC accession number (e.g., "0001018724-26-000004") |
documentUrl | string | Direct URL to the matched document on sec.gov |
fileDescription | string? | Human-readable document description |
Example output record:
{"query": "artificial intelligence","company": "AMAZON COM INC","cik": "0001018724","formType": "10-K","rootFormType": "10-K","filingDate": "2026-02-06","periodEnding": "2025-12-31","accessionNumber": "0001018724-26-000004","documentUrl": "https://www.sec.gov/Archives/edgar/data/1018724/000101872426000004/amzn-20251231.htm","fileDescription": "10-K"}
SEC User-Agent Requirement
The SEC requires all programmatic access to include a descriptive User-Agent header with a contact email. Without it, requests may be rejected with HTTP 403. Set the userAgent input to something like:
my-company-tool/1.0 developer@mycompany.com
See: SEC Webmaster FAQ for Developers
Rate Limits
The SEC allows up to 10 requests per second. This actor stays well within that limit using a 120ms minimum interval between requests.
Notes
- The EFTS API can return 10,000+ results for broad queries. Use
maxResultsto cap the output. - Results are ordered by relevance score (BM25), not by date. Use
startDate/endDateto narrow by time. formTypereflects the specific document within a filing (e.g., "EX-99.1"), whilerootFormTypereflects the parent filing type (e.g., "10-K"). Filter byformsinput to restrict to a specific root form type.documentUrlpoints directly to the matched HTML/text document. Some older filings may return 404 if the document was later amended.