Home / Developers / Text Search API
API reference

Text Search API

Search the words inside every EDGAR filing and exhibit since 2001: exact phrases, single words, form filters, company filters and date ranges. Each hit is one document (the main filing or an exhibit) with links to the file and its filing index. Product overview →

Endpoints

GEThttps://secfeedapi.com/v1/full-text-search

Search the full text of every filing and exhibit since 2001. Exact phrases in quotes.

ParameterTypeDescriptionExample
queryrequiredstringWords to find. Wrap a phrase in double quotes for an exact match."going concern"
formTypesstringComma separated form types to search, for example 10-K,10-Q. forms is accepted as an alias.10-K,8-K
ciksstringComma separated filer CIKs.320193,789019
startDatestringEarliest filing date, YYYY-MM-DD. Without endDate the range runs to today.2026-01-01
endDatestringLatest filing date, YYYY-MM-DD.2026-06-30
pageintegerResult page, 100 hits per page, starting at 1. Default 1.2

Request examples

Every response below is real output from the API, trimmed to the first records.

10-K filings that mention going concern doubt in 2026

An exact phrase search limited to annual reports filed this year; total.value is the number of matching documents.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22going%20concern%22&formTypes=10-K&startDate=2026-01-01"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/full-text-search",
    params={'query': '"going concern"', 'formTypes': '10-K', 'startDate': '2026-01-01'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "total": {
    "value": 2552,
    "relation": "eq"
  },
  "page": 1,
  "filings": [
    {
      "accessionNo": "0001104659-26-038019",
      "cik": "1066684",
      "companyNameLong": "THEGLOBE COM INC  (TGLO)  (CIK 0001066684)",
      "ticker": "TGLO",
      "formType": "10-K",
      "fileType": "10-K",
      "description": "10-K",
      "filedAt": "2026-04-01",
      "periodOfReport": "2025-12-31",
      "items": [],
      "filingUrl": "https://www.sec.gov/Archives/edgar/data/1066684/000110465926038019/tglo-20251231x10k.htm",
      "filingDetailsUrl": "https://www.sec.gov/Archives/edgar/data/1066684/000110465926038019/0001104659-26-038019-index.htm"
    },
    {
      "accessionNo": "0001683168-26-001953",
      "cik": "2010982",
      "companyNameLong": "Palisades Venture Inc.  (CIK 0002010982)",
      "ticker": "",
      "formType": "10-K",
      "fileType": "10-K",
      "description": "FORM 10-K FOR DEC 2025",
      "filedAt": "2026-03-18",
      "periodOfReport": "2025-12-31",
      "items": [],
      "filingUrl": "https://www.sec.gov/Archives/edgar/data/2010982/000168316826001953/palisades_i10k-123125.htm",
      "filingDetailsUrl": "https://www.sec.gov/Archives/edgar/data/2010982/000168316826001953/0001683168-26-001953-index.htm"
    }
  ]
}

8-K documents that mention tariffs in September 2026

Hits include press release exhibits; fileType shows EX-99.1 and items lists the 8-K items.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22tariff%22&formTypes=8-K&startDate=2026-09-01&endDate=2026-09-30"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/full-text-search",
    params={'query': '"tariff"', 'formTypes': '8-K', 'startDate': '2026-09-01', 'endDate': '2026-09-30'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "total": {
    "value": 166,
    "relation": "eq"
  },
  "page": 1,
  "filings": [
    {
      "accessionNo": "0000014707-26-000138",
      "cik": "14707",
      "companyNameLong": "CALERES INC  (CAL)  (CIK 0000014707)",
      "ticker": "CAL",
      "formType": "8-K",
      "fileType": "EX-99.1",
      "description": "EX-99.1",
      "filedAt": "2026-09-09",
      "periodOfReport": "2026-09-09",
      "items": [
        "2.02",
        "9.01"
      ],
      "filingUrl": "https://www.sec.gov/Archives/edgar/data/14707/000001470726000138/cal-20260909xex99d1.htm",
      "filingDetailsUrl": "https://www.sec.gov/Archives/edgar/data/14707/000001470726000138/0000014707-26-000138-index.htm"
    },
    {
      "accessionNo": "0001193125-26-385874",
      "cik": "1687932",
      "companyNameLong": "J.Jill, Inc.  (JILL)  (CIK 0001687932)",
      "ticker": "JILL",
      "formType": "8-K",
      "fileType": "EX-99.1",
      "description": "EX-99.1",
      "filedAt": "2026-09-09",
      "periodOfReport": "2026-09-09",
      "items": [
        "2.02",
        "9.01"
      ],
      "filingUrl": "https://www.sec.gov/Archives/edgar/data/1687932/000119312526385874/jill-ex99_1.htm",
      "filingDetailsUrl": "https://www.sec.gov/Archives/edgar/data/1687932/000119312526385874/0001193125-26-385874-index.htm"
    }
  ]
}

One company's 10-K filings that mention artificial intelligence

ciks narrows the search to one filer.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22artificial%20intelligence%22&ciks=320193&formTypes=10-K"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/full-text-search",
    params={'query': '"artificial intelligence"', 'ciks': '320193', 'formTypes': '10-K'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "total": {
    "value": 3,
    "relation": "eq"
  },
  "page": 1,
  "filings": [
    {
      "accessionNo": "0000320193-25-000079",
      "cik": "320193",
      "companyNameLong": "Apple Inc.  (AAPL)  (CIK 0000320193)",
      "ticker": "AAPL",
      "formType": "10-K",
      "fileType": "10-K",
      "description": "10-K",
      "filedAt": "2025-10-31",
      "periodOfReport": "2025-09-27",
      "items": [],
      "filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
      "filingDetailsUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm"
    },
    {
      "accessionNo": "0000320193-24-000123",
      "cik": "320193",
      "companyNameLong": "Apple Inc.  (AAPL)  (CIK 0000320193)",
      "ticker": "AAPL",
      "formType": "10-K",
      "fileType": "10-K",
      "description": "10-K",
      "filedAt": "2024-11-01",
      "periodOfReport": "2024-09-28",
      "items": [],
      "filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
      "filingDetailsUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/0000320193-24-000123-index.htm"
    }
  ]
}

Response fields

FieldTypeMeaning
total.valueintegerNumber of matching documents.
total.relationstringeq when the count is exact.
pageintegerThe page returned.
filings[]arrayUp to 100 matching documents.
filings[].accessionNostringAccession number of the filing the document belongs to.
filings[].cikstringFiler CIK without leading zeros.
filings[].companyNameLongstringFiler name as EDGAR displays it, with ticker and CIK.
filings[].tickerstringTicker parsed from the display name, empty when there is none.
filings[].formTypestringForm type of the filing.
filings[].fileTypestringDocument type: the form itself or an exhibit such as EX-99.1.
filings[].descriptionstringDocument description from the filing index.
filings[].filedAtstringFiling date, YYYY-MM-DD.
filings[].periodOfReportstringPeriod the filing covers, YYYY-MM-DD.
filings[].items[]array8-K item numbers for 8-K hits, empty otherwise.
filings[].filingUrlstringURL of the matching document.
filings[].filingDetailsUrlstringURL of the filing index page.

How to

How do I search for an exact phrase?

Put the phrase in double quotes inside query.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22material%20weakness%22&formTypes=10-K&startDate=2026-01-01"
How do I search several form types at once?

List them comma separated in formTypes.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22share%20repurchase%22&formTypes=10-K,10-Q&startDate=2026-07-01"
How do I limit the search to a few companies?

Pass their CIKs comma separated in ciks.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22supply%20chain%22&ciks=320193,789019&formTypes=10-K"
How do I get the second page of hits?

Add page=2. Each page holds 100 documents.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=cybersecurity&formTypes=10-K&page=2&startDate=2026-01-01"
How do I find press releases that mention a topic?

Search 8-K filings; hits from exhibits show fileType EX-99.1.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22guidance%22&formTypes=8-K&startDate=2026-10-01"
How do I search a closed date window?

Set both startDate and endDate.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22tariff%22&formTypes=8-K&startDate=2026-09-01&endDate=2026-09-30"
How do I read a matching document?

Open filingUrl, pass it to the Download API, or extract a section with the Section Extractor using filingDetailsUrl.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22going%20concern%22&formTypes=10-K&startDate=2026-09-01"
How do I send a long query?

POST the same parameters as JSON to /v1/full-text-search.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22climate%20risk%22&formTypes=10-K&startDate=2026-01-01"
How do I count how often a phrase appears per year?

Run one query per year with startDate and endDate and read total.value.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%22artificial%20intelligence%22&formTypes=10-K&startDate=2025-01-01&endDate=2025-12-31"

Errors

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →