A sec filings search api can turn a broad filing database into a focused list of records your team can review or use in an application. You can start with a company ticker, its Central Index Key (CIK), a filing form such as 10-K, or a filing date range. The next step is opening the original filing or downloading a copy.
This guide walks through both ways to do that with SEC Filing Data: search on the website when you want to find and download a filing yourself, or send a Query API request when you want filing records in your own code. It also explains what to do when you need a date filter and how to get from a search result to the SEC source document.
Choose the right search method
The website is a good place to start when you want to browse a company’s filings, open one in your browser, or download a PDF. The API is useful when you need to repeat a search, retrieve filing metadata in JSON, or connect filing discovery to another application.
| What you know | Website starting point | Query API search type |
|---|---|---|
| A company’s stock symbol | Search for the ticker, then select the matching company | ticker, such as AAPL |
| The company’s SEC identifier | Search for the CIK, then confirm the company name | cik, such as 320193 |
| The filing you need | Open the company’s filings and choose a form type, or use Forms List | formType, such as 10-K |
| The dates a filing was submitted | Review filing dates in the results; use the date-range Query API example for a bounded search | filedAt expression shown in the sandbox |
Ticker, CIK, form type, and filing date describe different parts of a search. A ticker or CIK identifies a filer; a form type narrows the kind of document; a filing date tells you when EDGAR received it. The period covered by a report can be different from its filing date.
Find and download a filing on the website
If your goal is to get one filing rather than build an integration, begin at the SEC Filing Data search page. The website has a company search and a Forms List, and its filing table provides actions for viewing or downloading a result. The site’s published help instructions say an account is required to use the search tool, so sign in or create an account if it prompts you.
Search a company by ticker or CIK
- Open SEC Filing Data and find the search box labeled for a company name, ticker, or CIK.
- Enter a ticker such as
AAPL, or enter a CIK such as320193. You can also try the company’s legal name if you do not know either identifier. - Press Enter or select the magnifying-glass search control.
- Choose the matching company from the suggestions. Check the displayed company name before continuing, especially if your search term could match more than one entity.
- In the company’s filing list, look across the form type and filed date to identify the record you want.
For a company-specific filing, this is usually the simplest route: identify the company first, then narrow its list. If you cannot find a company, try its legal name or CIK. A brand name and the legal filer name shown in EDGAR may differ.
Narrow the list by form type and open the file
- In the company filing table, open the form-type filter. The site’s published walkthrough describes starting from All and selecting a form such as 10-K.
- Review the remaining rows and their filing dates. A 10-K is an annual report, a 10-Q is a quarterly report, and an 8-K reports specified current events. Check the filing itself when you need to confirm what it covers.
- Select View beside the filing you want to open.
- To save a PDF, open the three-dot menu beside View and select Download PDF, if that option is available for the filing.
If you want filings across companies by form type, use Forms List in the site navigation. Search for the form code, open its result, and review the resulting filings. The wording and placement of controls can change, so follow the closest matching labels if the page has been updated.
The website is designed for browsing and opening individual results. If you need a precise date window, repeated searches, or results passed into another program, use the Query API or its sandbox instead of assuming the website’s table has a date-range control.
Prepare for an API search
The Query API accepts a JSON request sent with HTTP POST. The SEC Query API documentation lists the endpoint as https://api.secfilingdata.com/v1/filings/query. The two required body fields are query_type and query_value. The request also needs an API token in the Authorization header and Content-Type: application/json.
Before sending a request, sign in to your SEC Filing Data account and obtain an API token through the account’s API settings. Keep that token private. Put it in an environment variable on your own computer or server; do not paste it into a public code sample, browser-side JavaScript, or a shared document.
The query_type determines how the service interprets query_value. Use one of the documented search types exactly as shown:
| Search type | Example value | Use it when |
|---|---|---|
ticker |
AAPL |
You know the company’s trading symbol |
cik |
320193 |
You know the filer’s SEC identifier |
formType |
10-K |
You want filings of a certain form type |
The Query API documentation includes ticker, CIK, and form-type searches. In the examples below, AAPL and 320193 are example inputs, not example response records. The CIK is shown without leading zeroes to match the provider’s request example; SEC.gov itself commonly displays CIKs as ten digits with leading zeroes.
Send a first request by ticker
First, set your token in a terminal. Replace the placeholder with the token from your account:
export SEC_FILING_DATA_API_TOKEN='YOUR_API_TOKEN'Then use the following cURL request to ask for up to ten records for the documented ticker example. It saves the response body to filings-response.json and prints the HTTP status. The command demonstrates the request format; it does not claim to have run a live API test.
curl --request POST \
'https://api.secfilingdata.com/v1/filings/query' \
--header "Authorization: ${SEC_FILING_DATA_API_TOKEN:?Set the API token first}" \
--header 'Content-Type: application/json' \
--data '{"query_type":"ticker","query_value":"AAPL","from":0,"size":10,"sort_order":"DESC"}' \
--output filings-response.json \
--write-out 'HTTP %{http_code}\n'The service’s reference examples put the token value directly inAuthorization; they do not add a Bearer prefix. If you receive an authorization error, first check that the token is present, current, and being sent exactly as required.
Change the request to use a CIK or form type
For a CIK search, keep the endpoint and headers the same and replace the JSON body with:
{
"query_type": "cik",
"query_value": "320193",
"from": 0,
"size": 10,
"sort_order": "DESC"
}For a search across filings of a form type, use:
{
"query_type": "formType",
"query_value": "10-K",
"from": 0,
"size": 10,
"sort_order": "DESC"
}The form-type request above has no company condition, so it is not limited to Apple. If you need Apple’s 10-K filings, search by ticker first and then check the form type in the returned records, or confirm a combined filter syntax in the current documentation before using it. Do not assume that an exact form search includes or excludes amendments such as 10-K/A unless the reference or results confirm that behavior.
Search a date range with the documented sandbox format
The Query API sandbox includes a date-range example that places a filedAt range inside the query_value for a formType search. Its displayed example is:
{
"query_type": "formType",
"query_value": "4 AND filedAt:[2022-05-06 TO 2022-05-13]",
"from": 0,
"size": 10,
"sort_order": "DESC"
}This is the date-filter pattern shown in SEC Filing Data’s sandbox: the form code is 4, and filedAt supplies the date window in YYYY-MM-DD form. The example shows the syntax, but the public reference does not clearly specify whether both endpoints are inclusive, what timezone is applied, or how to combine every possible company filter with the date expression. Test the query in the Query API sandbox and confirm its results and date boundaries for your use case before you automate it.
Do not confuse filedAt with the report’s period of coverage. A 10-K submitted in February may cover a fiscal year that ended weeks earlier. If your research question is “What was filed during this date window?” use the filing date. If it is “What reporting period does this document cover?” inspect the filing’s period-of-report information.
Use Python to send and inspect a request
If you are adding filing search to a script, Python’s requests library can send the same JSON body. Install requests in your environment if needed, set SEC_FILING_DATA_API_TOKEN as an environment variable, and run this example:
import json
import os
import requests
url = "https://api.secfilingdata.com/v1/filings/query"
token = os.environ["SEC_FILING_DATA_API_TOKEN"]
payload = {
"query_type": "ticker",
"query_value": "AAPL",
"from": 0,
"size": 10,
"sort_order": "DESC",
}
response = requests.post(
url,
headers={
"Authorization": token,
"Content-Type": "application/json",
},
json=payload,
timeout=30,
)
if response.status_code == 204:
print("The search returned no results.")
elif response.status_code == 200:
print(json.dumps(response.json(), indent=2))
else:
print("HTTP status:", response.status_code)
print(response.text)This prints the complete JSON response instead of assuming field names that may not be present in every result. Inspect the actual response, find the filing record you need, and identify the original SEC source URL and any attachment information provided. Then use that returned source link to open the filing. The API documentation describes metadata, filer information, attachments, and original SEC source URLs, but it does not publish a complete response schema for every result type.
Get the next page of results
The API uses from as an offset and size as the number of records requested. The documented maximum size is 100. If your first request asks for ten records beginning at offset 0, keep the same filters and set from to 10 for the next request:
{
"query_type": "ticker",
"query_value": "AAPL",
"from": 10,
"size": 10,
"sort_order": "DESC"
}Increase from by the number of records requested when you need another page. The reference does not identify the sort field or promise a stable tie-breaker for filings with the same sort value, and it does not show a universal response key for the result count. Inspect the returned JSON and the status for each page. Stop when the service indicates there are no more records, and avoid treating one page as a complete history.
Open the filing or download a file
Search results are the discovery step. A record describes a filing and may include a link to the original SEC source or attachments. Open the source link to read the filing itself. The document filed with the SEC is the original; a PDF generated from it is a rendered copy; XBRL or other structured data is a separate representation of selected filing data.
If you are using the website, select View to open a filing or use the row’s menu to download a PDF when available. If you are using the API, follow the source URL or consult the SEC Filings API service overview for the relevant download, PDF-generation, or XBRL-conversion capability.
A search result helps you find a filing. To read or download the document, open the filing or use the available download option.
