Skip to main content

SEC Full-Text Search

Keyword full-text search ACROSS SEC filings — finds which filings mention a term or phrase, spanning many companies at once. Thin wrapper around the sec-api.io full-text-search API; ticker symbols are resolved to CIKs automatically. Supports AND, OR, NOT, wildcards (*), and exact phrases ("quoted").

Use this when: you want to find every filing that mentions a term across companies ("who disclosed a 'material weakness' this quarter?"), scan for an event or risk phrase, or discover filings for a company by ticker without knowing the specific document.

Do NOT use this when: you already know the specific filing and want to READ one named section from it ("risk factors", "MD&A") — use sec_filing_section instead (it calls this concept filingType, a singular enum string, not the array formTypes here). For general company background (revenue, employees, technographics) use company_research; for non-SEC web info use web_search.

CORPUS: Covers incident-reporting and event-driven filings. Common financial terms ("revenue", "earnings") are not indexed and return zero results.

DATE WARNING: startDate defaults to the last 30 days. Annual filings (10-K, 20-F, 40-F) are filed yearly — pass startDate "2020-01-01" for them or you get zero results.

QUERY EXAMPLES: "material weakness" · cybersecurity AND breach · layoff* · "going concern" OR "substantial doubt" · acquisition NOT merger.

Foreign issuers: formTypes ["20-F"] (Barclays/BP/Toyota/Shell), ["6-K"] (interim), ["40-F"] (Canadian) — some ADR issuers (e.g. SAP) have no 20-F on EDGAR.

Returns up to 100 filings per page with direct EDGAR URLs. If resolvedCiks in searchParams is empty after passing tickers, the ticker filter was NOT applied and results are unfiltered — check it (and any warnings) before treating results as company-specific.

Credits

1 — Per call. See the full credit table for how AI Credits work.

Parameters

NameTypeDefaultDescription
querystringcybersecurity incidentKeyword/phrase query to match in filing text. Supports AND, OR, NOT, wildcards (*), and exact phrases ("quoted"). This searches ACROSS filings — it does not extract a named section from one known filing (use sec_filing_section for that). Common financial terms ("revenue", "earnings") are not indexed and return zero results.
formTypesarray-Filter by SEC form type (e.g., ["8-K", "10-K", "20-F"]). Recommended for wildcard queries to reduce noise: ["8-K", "10-K", "10-Q"]. Matching is family-based, not exact: ["10-K"] also returns 10-K/A and NT 10-K; ["8-K"] also returns 8-K/A and CORRESP. Post-filter on each result's formType field if you need exact types. Note: sec_filing_section calls this concept filingType — a singular enum string, not an array.
tickersarray-Filter by company ticker symbol (e.g., ["MSFT", "AAPL", "SAP"]). Resolved to CIKs automatically via the sec-api.io Mapping API for real server-side filtering. IMPORTANT: if resolvedCiks in the response is empty, the ticker(s) could not be resolved and NO filter was applied — results are the full unfiltered corpus, not company-specific. Always check resolvedCiks (and the warnings array) before trusting results as company-specific. Some foreign/ADR issuers (e.g., SAP, LVMH) may not resolve.
startDatestring-Start date (YYYY-MM-DD). Defaults to 30 days ago. For annual filings (10-K, 20-F, 40-F) pass "2020-01-01" — the 30-day default misses most annual reports.
endDatestring-End date (YYYY-MM-DD). Defaults to today.
pagestring1Page of results (default "1"). Each page returns up to 100 filings. Use "2", "3", etc. to paginate.

Required Integrations

This tool is only available when your organization has the following integration configured in the Phoenix Integrations settings:

  • SEC API (sec_api)

Use Cases

  • Find every filing mentioning a term across companies — "who disclosed a 'material weakness'?"
  • Scan for a risk or event phrase: "going concern", "substantial doubt", "cybersecurity incident"
  • Track M&A language across the market: acquisition, merger, "definitive agreement"
  • List recent filings for a company by ticker without knowing the specific document
  • Search foreign-issuer disclosures via formTypes (["20-F"], ["6-K"], ["40-F"])

Example Usage

Companies disclosing a material weakness in the last 30 days

{
"tool": "sec_full_text_search",
"arguments": {
"query": "\"material weakness\""
}
}

Cyber breach language in 8-Ks since 2020

{
"tool": "sec_full_text_search",
"arguments": {
"query": "cybersecurity AND breach",
"formTypes": [
"8-K"
],
"startDate": "2020-01-01"
}
}

Going-concern mentions in Microsoft filings

{
"tool": "sec_full_text_search",
"arguments": {
"query": "\"going concern\"",
"tickers": [
"MSFT"
],
"startDate": "2020-01-01"
}
}

Response Format

FieldTypeDescription
totalnumberTotal number of matching filings across all pages
querystringThe search query that was executed
warningsarrayNon-fatal advisories about this result set. Populated when a ticker did not resolve (so no company filter was applied), when only some tickers resolved, or when zero filings matched. Empty/absent means no advisories.
filingsarrayUp to 100 matching filings for this page
filings[].accessionNumberstringSEC accession number
filings[].formTypestringSEC form type (10-K, 10-Q, 8-K, 20-F, etc.)
filings[].filedAtstringFiling date (YYYY-MM-DD)
filings[].companyNamestring | nullCompany name
filings[].tickerstring | nullStock ticker (null for foreign or CIK-only filers)
filings[].cikstringSEC Central Index Key
filings[].filingUrlstringDirect URL to the SEC filing
filings[].descriptionstring | nullFiling description
searchParamsobjectParameters sent to the API
searchParams.formTypesarray
searchParams.tickersarrayInput tickers
searchParams.resolvedCiksarrayCIKs resolved from tickers and passed to the API
searchParams.startDatestring
searchParams.endDatestring
searchParams.pagestring

sec_filing_section, company_research, web_search, company_contracts