Endpoints
/v1/full-text-search
https://secfeedapi.com/v1/full-text-searchSearch the full text of every filing and exhibit since 2001. Exact phrases in quotes.
| Parameter | Type | Description | Example |
|---|---|---|---|
queryrequired | string | Words to find. Wrap a phrase in double quotes for an exact match. | "going concern" |
formTypes | string | Comma separated form types to search, for example 10-K,10-Q. forms is accepted as an alias. | 10-K,8-K |
ciks | string | Comma separated filer CIKs. | 320193,789019 |
startDate | string | Earliest filing date, YYYY-MM-DD. Without endDate the range runs to today. | 2026-01-01 |
endDate | string | Latest filing date, YYYY-MM-DD. | 2026-06-30 |
page | integer | Result page, 100 hits per page, starting at 1. Default 1. | 2 |
- Also accepts POST with the same names in a JSON body.
- 100 hits per page; total.value is the number of matching documents.
- Matches cover the main document and every exhibit, so one filing can appear more than once with different fileType values.
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
| Field | Type | Meaning |
|---|---|---|
total.value | integer | Number of matching documents. |
total.relation | string | eq when the count is exact. |
page | integer | The page returned. |
filings[] | array | Up to 100 matching documents. |
filings[].accessionNo | string | Accession number of the filing the document belongs to. |
filings[].cik | string | Filer CIK without leading zeros. |
filings[].companyNameLong | string | Filer name as EDGAR displays it, with ticker and CIK. |
filings[].ticker | string | Ticker parsed from the display name, empty when there is none. |
filings[].formType | string | Form type of the filing. |
filings[].fileType | string | Document type: the form itself or an exhibit such as EX-99.1. |
filings[].description | string | Document description from the filing index. |
filings[].filedAt | string | Filing date, YYYY-MM-DD. |
filings[].periodOfReport | string | Period the filing covers, YYYY-MM-DD. |
filings[].items[] | array | 8-K item numbers for 8-K hits, empty otherwise. |
filings[].filingUrl | string | URL of the matching document. |
filings[].filingDetailsUrl | string | URL 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
- 400 missing parameter: query when query is empty.
See also the error codes every endpoint shares.
Try it with your own key
500 free calls a month.