# SEC EDGAR Filing Search API > Search and find EDGAR filings across the entire SEC filings corpus with over 18 million filings filed since 1993. Search by CIK, ticker, filing form type, company name, filing exhibits, mutual fund series and class IDs, date ranges, exhibit types and more. Source: https://sec-api.io/docs/query-api The Query API allows searching and filtering all 18+ million filings and exhibits published on the SEC EDGAR database since 1993 to present, with new filings being added in 300 milliseconds after their publication on EDGAR. The API accepts simple and complex search expressions and returns the metadata of matching EDGAR filings in JSON format including form type, accession numbers, filing date and times, filer information such as CIK, ticker and entity name, exhibits and attachments, URLs to the original SEC sources, and many more. EDGAR filings are searchable by numerous parameters, such as: CIK (Central Index Key), ticker symbol or name of the filer, form type, filing date, accession number, item IDs in case of Form 8-K or Form 1-U filings, exhibit types, series and class contract IDs, and more. Refer to the [list of searchable parameters to see all available search options.](#response-format) The filing search capabilities of the Query API can be tested free of charge in our [playground available here](https://sec-api.io/sandbox). The sanbdox showcases a variety of filing search examples and allows testing the API with own queries in a simple no-code environment. Filing Example Response in JSON Format ```json { // Microsoft's 10-Q filing for Q1 2024 accessionNo: "0000950170-24-048288", formType: "10-Q", periodOfReport: "2024-03-31", filedAt: "2024-04-25T16:06:24-04:00", ticker: "MSFT", cik: "789019", companyName: "MICROSOFT CORP (Filer)", linkToFilingDetails: "sec.gov/Archive ... 4048288/msft-20240331.htm", entities: [ ... ], // entities associated with filing: CIK, EIN, state of incorp., fiscal year, and more documentFormatFiles: [ ... ], // files and exhibits attached to filing: URL, type, size dataFiles: [ ... ], // XBRL data files // ... more fields } ``` The filings database inlcudes all EDGAR form types without exception, from annual and quarterly reports (Form 10-K, 10-Q, 20-F, 40-F), event-driven filings such as Form 8-K and 6-K, insider trading activities (Form 3, 4, 5), over registration statements (Form S-1, S-3, S-8) and prospectuses (Form 424B2, 424B3, 424B4), to institutional investment manager and company filings (Form 13F, N-PORT) and more than 150 other types ever published. The database includes all filings ever published by any of the 800,000 EDGAR filer entities. A full list of all EDGAR form types is available on the [form types page](https://sec-api.io/list-of-sec-filing-types). Dataset size: All EDGAR filings and exhibits published since 1993 to present, including all form types and all filers. Data update frequency: New filings are indexed and searchable in less than 300 milliseconds after they are published on EDGAR. Survivorship bias free: Yes. The Query API and filings database include all EDGAR filings and exhibits filed since 1993 to present, from filer entities that are still active and those that are no longer active. ## Common Use Cases The EDGAR filing search capability of the Query API is often used as a first step in a multi-process filing ingestion pipeline. For example, the Query API is often used to find the most recently disclosed filings of a specific form type, such as 10-Qs or 8-Ks, to obtain the URLs of those filings, and then download the full text of the filings using the [Filing Download API](https://sec-api.io/docs/edgar-file-and-sec-filings-download-api) or to convert the filings to PDFs using the [PDF Generator API](https://sec-api.io/docs/sec-filings-to-pdf-generator-api). Common use cases for the Query API include: - Submitting recently filed filing exhibits to regulatory authorities - Monitoring filer compliance with exchange rules - Powering internal insight analytics platforms - Backtesting quantitative investment strategies - Showing EDGAR filings on investor relationships websites ## API Endpoint In order to search and retrieve metadata of EDGAR filings, HTTP POST requests with the search expression as payload are sent to the following API endpoint: https://api.sec-api.io Supported HTTP methods: POST Request and response content type: JSON ### Authentication To authenticate your API requests, use the API key shown in your [user profile](https://sec-api.io/login). You can utilize your API key in one of two ways. Choose the method that best fits your implementation: - **Authorization Header:** Include your API key as an `Authorization` header in your POST requests. For instance, before sending a POST request to https://api.sec-api.io, ensure the header is set as follows: `Authorization: YOUR_API_KEY` - **Query Parameter:** Alternatively, append your API key directly to the URL as a query parameter. For example, when making POST requests, use the URL `https://api.sec-api.io?token=YOUR_API_KEY` instead of the base API endpoint. ## Request Parameters To search, filter and retrieve metadata of EDGAR filings, send a HTTP POST request with a JSON-formatted payload to the API endpoint `https://api.sec-api.io`. The payload includes the search criteria, pagination and optional response sorting parameters, for example: ```json { "query": "formType:\"10-Q\"", "from": "0", "size": "50", "sort": [{"filedAt":{"order":"desc"}}] } ``` The API request payload includes the following fields, with the `query` field being required and the others optional: - `query` (string): Specifies the search criteria written in the Lucene syntax following the `field:value` format to search filings that include `value` in the specified `field`. For example, `formType:"10-K"` to find Form 10-K filings or `ticker:AAPL` to locate filings published by Apple. The `query` string allows searching the filings database by any [available field in the response object as described in the Response Format section below](#response-format). For example, filing lookups can be performed by the filer's CIK, series, class or contract IDs, date ranges across filing publication times and periods of reports, event item codes in Form 8-Ks or 1-Us, exhibit types, and more. Multiple search criteria can be combined using logical operators (`AND`, `OR`, `NOT`). For example, `formType:"10-K" AND ticker:AAPL` to find Form 10-K filings published by Apple. The maximum length of the `query` string cannot exceed 3500 characters. Examples of various filing search expressions are available in the [Query String Examples section below](#query-string-examples) and in the [playground](https://sec-api.io/sandbox). A complete guide on [how to use the Lucene syntax is available here](https://sec-api.io/resources/lucene-query-syntax-overview). - `from` (string, optional) - Use the `from` property to specify the starting position of your search results, facilitating pagination. For instance, set `from` to 50 to skip the first 50 filings. The default is 0, and the maximum allowed value is 10,000, which is also the cap for the maximum number of filings returned per `query` string. To retrieve all filings in your search universe, increment `from` by the value of the `size` parameter (e.g., 50) until no more filings are returned or the 10,000 filing limit is reached. For example, use `0`, `50`, `100`, and so on. If your `query` locates more than 10,000 filings, consider narrowing your search by refining your filter criteria, for example, using a date range filter to iterate over months or years. One such approach would be to search for filings with a `filedAt` date range filter, e.g. `filedAt:[2021-01-01 TO 2021-01-31]` (all filings from January 2021), then paginate through the results by incrementing `from`, and once completed, repeat the process for the next month, and so on. - `size` (string, optional) - Determines the number of filings returned per request. For instance, set `size` to 10 to retrieve 10 filings per request. The default value is 50, and the maximum allowed value is 50, which is the cap for the maximum number of filings returned per request. - `sort` (array, optional) - An array of objects that specify how the returned filings are sorted. The default sorting order is descending by `filedAt` datetime field, most recent filing first. The sorting order can be changed to ascending by setting `order` to `asc`. The default sorting order can be overridden by specifying a different sorting field. For example, to sort filings by `periodOfReport` in ascending order, set `sort` to `[{ "periodOfReport": { "order": "asc" } }]`. Default: `[{ "filedAt": { "order": "desc" } }]` ### Query String Examples The following list demonstrates different `query` examples that can be used to search EDGAR filings by various criteria. Description Example Search EDGAR filings by filer entity properties Search by CIK of filer `cik:12345` Search by multiple CIKs `cik:(123, 456, 789)` Search by ticker `ticker:AAPL` Search by tickers `ticker:(AAPL, MSFT, NVDA, TSLA)` Search by filer entity name `companyName:"Nissan Auto Receivables" AND companyName:Trust` Search by filer entity SIC `entities.sic:3714` Search by filer entity state `entities.stateOfIncorporation:DE` Search by filer entity IRS number `entities.irsNo:710388071` Search by file number `entities.fileNo:"001-36743"` Search EDGAR filings by filing properties Search by form type `formType:"10-K"` Multiple form types `formType:"10-K" OR formType:"10-Q"` Excluding form types from search `formType:"10-K" AND NOT formType:"10-K/A"` Search by accession number of filing `accessionNo:"0001193125-23-265616"` Date range without time `filedAt:[2022-01-01 TO 2022-12-31]` Date range with time `filedAt:[2021-09-15T14:00:00 TO 2021-09-15T19:00:00]` Event item ID in Form 8-Ks `items:"2.02" AND formType:"8-K"` Multiple item IDs in Form 8-Ks `items:("2.02", "5.02") AND formType:"8-K"` By series ID `seriesAndClassesContractsInformation.series:S000011051` By class/contract ID `seriesAndClassesContractsInformation. classesContracts.classContract:C000120702` By ticker of class/contract `seriesAndClassesContractsInformation.classesContracts.ticker:ABRZX` By class/contract ID and form type `formType:"NPORT-P" AND seriesAndClassesContractsInformation. classesContracts.classContract:C000120702` By exhibit type `documentFormatFiles.type:*21* AND formType:"10-K"` By registration form of EFFECT types `formType:EFFECT AND registrationForm:"S-3"` Other examples Match all filings `id:*` Find 10-Ks of companies by ticker `formType:"10-K" AND ticker:(AAPL, MSFT, NVDA, TSLA)` Find 10-Ks with images `formType:"10-K" AND documentFormatFiles.type:GRAPHIC` #### Good to Know - **Search by CIK**: `cik:CIK_OF_INTEREST` or `cik:(CIK_1, CIK_2, ...)` to find filings disclosed by a specific filer using its CIK, or filings from by multiple filers using their respective CIKs. When searching filings by the CIK of the filer, remove leading zeros from the CIK. For example, transform `0000320193` to `320193`. [An example CIK search can be performed in the playground here.](https://sec-api.io/sandbox/search-by-multiple-ciks) - **Search by ticker**: `ticker:TICKER_OF_INTEREST` or `ticker:(TICKER_A, TICKER_B, ...)` to retrieve filings by one or more ticker symbols of the filing companies. Ticker symbols in the filing search are case-insensitive, meaning that `ticker:AAPL` and `ticker:aapl` will return the same results. When performing historical filing searches going back far in time, it is recommended to use a filer's CIK instead of the ticker symbol. This approach accounts for entities that underwent ticker changes or entities that have multiple security classes listed on exchanges trading under different tickers, such as Alphabet's Class A (ticker: GOOGL) and Class C (ticker: GOOG) shares. The [Mapping API](https://sec-api.io/docs/mapping-api) can be used to resolve and map ticker symbols to CIKs, and vice versa. [An example ticker search can be performed in the playground here](https://sec-api.io/sandbox/search-sec-filings-by-ticker). - **Search by company name**: `companyName:"NAME OF COMPANY"` to perform a search by the company name. Enclose the company name in double quotes (e.g., `companyName:"My Trust A"`) to treat the company name as a single search term. This is useful when searching for company names that include whitespaces or special characters like "-", "." and "&". If the company name is a single word, the double quotes are optional. If the company name includes whitespaces and double quotes are omitted, each word is treated as a separate search term combined with an implicit `OR` operator. For example, `companyName:My Trust A` is equivalent to `companyName:My OR *:Trust OR *:A`, which searches for filings with the words "My" in the `companyName` field, or "Trust" in any field, or "A" in any field. - **Search by EDGAR form type**: `formType:"FORM TYPE OF INTEREST"` or `formType:("FORM TYPE A", "FORM TYPE B", ...)` to search for filings by one or multiple EDGAR form types. Ensure to enclose form types in double quotes (e.g., `formType:"10-K"`). The Query API provides access to the entire EDGAR filings corpus, allowing searches across all form types without exception. [A complete list of form types can be found here](https://sec-api.io/list-of-sec-filing-types). [An example form type search can be performed in the playground.](https://sec-api.io/sandbox/recent-10-q-filings) - **Search across dates**: `filedAt:[START_DATE TO END_DATE]` to search for filings filed within a specific date and time range. Use square brackets `[ ]` to include the start and end dates in the search. The date format is `YYYY-MM-DD` or `YYYY-MM-DDTHH:MM:SS` for specific times. The time component is optional. For example, `filedAt:[2021-01-01 TO 2021-12-31]` captures all filings from midnight January 1, 2021 to midnight December 31, inclusive. An example with a time component is `filedAt:[2021-01-06T14:00:00 TO 2021-01-06T15:00:00]`, which returns all filings disclosed on January 6, 2021 between 2:00 PM and 3:00 PM (Eastern Time), inclusive. The `filedAt` value in a filing metadata object is reported in Eastern Time in reference to the timezone of the EDGAR system. For example `2021-01-12T16:00:54-05:00` is 4:00:54 PM Eastern Time on January 12, 2021. When performing date-time queries, there is no need to include the timezone offset ("-05:00" or "-04:00"). The API automatically converts all times to Eastern Time. [An example of a date-time query is available in the playground here](https://sec-api.io/sandbox/sec-filing-date-range-query). - **Nested Field Search**: `documentFormatFiles.type:"EX-21" AND formType:"10-K"` - Use nested field search and combine conditions to filter filings where a specific document type is included in a particular form. For example, this query finds 10-K filings that include Exhibit 21 ("EX-21"). Nested fields can be found in `documentFormatFiles`, `dataFiles`, `entities`, `holdings`, and `seriesAndClassesContractsInformation`. Examples of nested field searches are available in our playground [here (10-K with Exhibit 21)](https://sec-api.io/sandbox/10-k-filings-with-exhibit-21-1), [here (10-K with XBRL data)](https://sec-api.io/sandbox/find-all-10-k-filings-with-xbrl-data) and [here (class contract ID)](https://sec-api.io/sandbox/search-filings-by-class-id). ### Request Examples The following examples demonstrate a range of Query API requests. These queries are designed to help you retrieve specific EDGAR filings based on criteria such as form types, tickers of the filing companies, date ranges, and exhibit types. More examples can be found in the [playground](https://sec-api.io/sandbox). #### Find the most recent 10-Q filings Return the 50 most recently filed 10-Q filings, sorted by their publication time `filedAt`, starting with the newest filings. ```json { "query": "formType:\"10-Q\"", "from": "0", "size": "50", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #### Pagination: Retrieve more than 10,000 filings The `from` parameter is used to paginate through API results and is capped at 10,000. For instance, if a search query like `formType:"8-K" AND ticker:AAPL` matches 230 filings, but only 50 filings can be returned per API request, the `from` parameter can be incremented to retrieve all 230 filings. To retrieve all 230 filings: - Set `"from": "0"` for the first 50 filings. - Set `"from": "50"` for the next 50, and so on, incrementing by 50 for each subsequent request until no more filings are returned. ```json { "query": "formType:\"8-K\" AND ticker:AAPL", "from": "0", "size": "50", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the total number of filings exceeds 10,000, the `from` parameter alone will not be sufficient to retrieve all results. For example, a search for all Form 8-K filings between 2010 and 2020 might return 700,000 filings, but paginating only retrieves the first 10,000. To fetch the entire set of filings, the `query` should be broken down into multiple queries, each with a different date range filter. For example, start by searching for all 8-Ks between January 1st and 31st, 2010, and then paginate through the results: ```json { "query": "formType:\"8-K\" AND filedAt:[2010-01-01 TO 2010-01-31]", "from": "0", "size": "50", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once all filings for January 2010 have been retrieved, the date range can be adjusted to February 2010, March 2010, and so on. The process can then continue month by month, year over year, with pagination applied to each date range, until all relevant filings have been retrieved. #### Searching across publication times Return all S-1 filings published in 2021. The set of all results can be paginated by incrementing the `from` parameter. ```json { "query": "formType:\"S-1\" AND filedAt:[2021-01-01 TO 2021-12-31]", "from": "0", "size": "50", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #### Find Apple's most recent 10-K filings Return Apple's 10 most recently filed 10-K filings, sorted by `filedAt`, start with the newest. ```json { "query": "ticker:AAPL AND formType:\"10-K\"", "from": "0", "size": "10", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #### Find Form 10-K filings with Exhibit 21 Return the 10 most recently filed 10-Ks that have exhibit 21, sorted by `filedAt`, start with the newest. ```json { "query": "formType:\"10-K\" AND documentFormatFiles.type:\"EX-21\"", "from": "0", "size": "10", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #### Form 8-K with Item 2.02 - Results of Operations and Financial Condition Return the 10 most recently filed Form 8-K filings for material events that include Item 2.02 (Results of Operations and Financial Condition). ```json { "query": "formType:\"8-K\" AND items:\"2.02\"", "from": "0", "size": "10", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #### Form 8-K with Item 7.01 - Regulation FD Disclosures Return the 10 most recently filed Form 8-K filings for material events that include Item 7.01 (Regulation FD Disclosures). ```json { "query": "formType:\"8-K\" AND items:\"7.01\"", "from": "0", "size": "10", "sort": [{"filedAt":{"order":"desc"}}] } ``` #### Response | Ticker | Company | CIK | Form Type | Filed At | | Period Of Report | Filing | Filing Details Page | Complete Submission File | Entities (CIK, IRS No, State, Fiscal Year End, File No, Film No, SIC) | Attachments | XBRL Files | ... | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ## Response Format The Query API returns the metadata of filings matching the provided search expression in JSON format. The response object includes two main fields: - `total` (object) - An object with two fields, `value` and `relation`. `value` represents the total number of filings matching the query. A `value` of 10,000 and `relation` of "gte" (= greater than or equal), indicates that more than 10,000 filings match the search criteria. The filing count (`value`) is capped at 10,000 per search query. If a search query identifies more than 10,000 filings, the `value` will be set to 10,000, and does not reflect the exact number of matching filings. Typically, the number of matching filings is greater than the number of filings that can be returned in a single API response. In such cases, the `from` parameter can be incremented on subsequent API calls to paginate through the results. For example, to retrieve all filings matching the query, increment `from` by the value of the `size` parameter (e.g., 50) until no more filings are returned or the 10,000 filing limit is reached. - `filings` (array of objects) - A list of maximum 50 filings matching the provided search criteria. All fields of an object in the `filings` array are searchable. Filing format: - `id` (string) - System-internal unique ID of the filing object. A filing might reference multiple entities, for example, in case of Form 4 filings which reference at least one reporting person and one issuer company. In such cases, multiple filing objects are created, each with a unique ID, but all with the same `accessionNo`. - `accessionNo` (string) - Accession number of filing, e.g. 0000028917-20-000033. - `formType` (string) - EDGAR filing form type, e.g `10-K` or `10-K/A`. All 150+ form types including SEC correspondences are covered. [A complete list of all form types is available here.](https://sec-api.io/list-of-sec-filing-types) - `filedAt` (string) - Represents the `Accepted` attribute of a filing in ISO 8601 format, and shows the date and time the filing was accepted by the EDGAR system. A filing also contains a `Filing Date` attribute that only shows the date. The `Accepted` and `Filing Date` attribute do not have to represent the the same date. Format: `YYYY-MM-DD HH:mm:SS TZ`, e.g. 2019-12-06T14:41:26-05:00. The timezone is always in Eastern Time (ET) and the time is in 24-hour format. During daylight savings time (summer), the timezone offset is -04:00, and during standard time (winter), the offset is -05:00. - `cik` (string) - CIK of the filing issuer with leading `0` removed, e.g. `28917`. - `ticker` (string) - Ticker symbol of the filing company, e.g. `AMOT`. A ticker is not available when non-publicly traded companies report filings, for example, in case of mutual funds or asset-backed securities. - `companyName` (string) - Name of primary filing company or person, e.g. Allied Motion Technologies Inc. - `companyNameLong` (string) - Long version of company name including the filer type (Issuer, Filer, Reporting), e.g. ALLIED MOTION TECHNOLOGIES INC (0000046129) (Issuer) - `description` (string) - Description of the form, e.g. Statement of changes in beneficial ownership of securities. Includes the item numbers reported in 8-K, 8-K/A, D, D/A, ABS-15G, ABS-15G/A, 1-U and 1-U/A filings, e.g. Form 8-K - Current report - Item 1.03 Item 3.03 Item 5.02 Item 9.01". - `linkToFilingDetails` (string) - URL of the actual filing content on sec.gov. Use this link in combination with our [Filing Download API](https://sec-api.io/docs/edgar-file-and-sec-filings-download-api) to download the filing content. - `linkToTxt` (string) - URL of the plain text .TXT version of the filing. The content of this file includes the entire filing and its exhibits and can exceed several 100MB in size. - `linkToHtml` (string) - URL of the index page (also known as filing detail page) of the filing, e.g. "sec.gov/Archives/.../0001803599-24-000156-index.htm". - `periodOfReport` (string, if reported) - Period of report in the format `YYYY-MM-DD`, e.g. 2021-06-08. The `periodOfReport` has different meanings depending on the form type. For example, in Form 10-K filings, it represents the fiscal year end date. In Form 4 filings, it represents the transaction date, and in Form 13F filings, it represents the quarter end date. - `effectivenessDate` (string, if reported) - Effectiveness date in the format `YYYY-MM-DD`, e.g. 2021-06-08. The `effectivenessDate` is only reported on certain form types, such as EFFECT, 18-K, TA-1, and more. - `effectivenessTime` (string, if reported) - Effectiveness time in the format `HH:mm:ss`, e.g. `16:00:00`. The `effectivenessTime` is only reported for EFFECT forms. - `registrationForm` (string, if reported) - Registration form type as reported on EFFECT forms, e.g. S-1. - `referenceAccessionNo` (string, if reported) - Reference accession number as reported on EFFECT forms, e.g. 0001213900-22-001446. - `items` (array of strings, if reported) - Items represents an array of item strings as reported on form 8-K, 8-K/A, D, D/A, ABS-15G, ABS-15G/A, 1-U, 1-U/A. For example: `["Item 3.02: Unregistered Sales of Equity Securities", "Item 9.01: Financial Statements and Exhibits"]` - `groupMembers` (array, if reported) - Group members represents an array of member strings as reported on SC 13G, SC 13G/A, SC 13D, SC 13D/A filings, e.g. `[ "c N. LITOWITZMAGNETAR CAPITAL PARTNERS LPSUPERNOVA MANAGEMENT LLC" ]` - `entities` (array) - A list of all entities referred to in the filing. The first item in the array always represents the filing issuer. Each array element is an object with the following keys: - `companyName` (string) - Company name of the entity, e.g. DILLARD'S, INC. (Issuer) - `cik` (string) - CIK of the entity. Leading `0` are not removed here, e.g. 0000028917 - `irsNo` (string, optional) - IRS number of the entity, e.g. 710388071 - `stateOfIncorporation` (string, optional) - State of incorporation of entity, e.g. AR - `fiscalYearEnd` (string, optional) - Fiscal year end of the entity, e.g. 0201 - `sic` (string, optional) - SIC of the entity, e.g. 5311 Retail-Department Stores - `type` (string, optional) - Type of the filing being filed. Same as `formType`, e.g. 4 - `act` (string, optional) - The SEC act pursuant to which the filing was filed, e.g. 34 - `fileNo` (string, optional) - Filer number of the entity, e.g. 001-06140 - `filmNo` (string, optional) - Film number of the entity, e.g. 20575664 - `documentFormatFiles` (array) - An array listing all primary files of the filing, including its exhibits. The first item of the array always represents the filing itself. The last item of the array always represents the text .TXT version of the filing. All other items can represent exhibits, press releases, PDF documents, presentations, graphics, XML files, and more. An array item is represented as follows: - `sequence` (string, optional) - The sequence number of the file indicating the order of the files in the filing, e.g. 1. - `description` (string, optional) - Description of the file, e.g. EXHIBIT 31.1. - `documentUrl` (string) - URL to the file on SEC.gov. The URL includes the file extension, such as .HTML, .PDF, .TXT, .XML, etc. - `type` (string, optional) - Type of the file, e.g. EX-32.1, GRAPHIC or 10-Q. - `size` (string, optional) - Size of the file in bytes, e.g. 6627216. - `dataFiles` (array) - List of data files primarily used for XBRL filings. Each item has the following fields: - `sequence` (string) - Sequence number of the file indicating its order in the filing, e.g. 1. - `description` (string) - Description of the file, e.g. XBRL INSTANCE DOCUMENT - `documentUrl` (string) - URL to the file on SEC.gov. The URL includes the file extension, such as .XSD or .XML. - `type` (string, optional) - Type of the file, e.g. EX-101.INS, EX-101.DEF or EX-101.PRE - `size` (string, optional) - Size of the file in bytes, e.g. 6627216 - `seriesAndClassesContractsInformation` (array) - List of series and classes/contracts information. - `series` (string) - Series ID, e.g. S000001297. - `name` (string) - Name of entity, e.g. PRUDENTIAL ANNUITIES LIFE ASSUR CORP VAR ACCT B CL 1 SUB ACCTS - `classesContracts` (array) - List of classes/contracts. Each list item has the following keys: - `classContract` (string) - Class/Contract ID, e.g. C000011787. - `name` (string) - Name of class/contract, e.g. Class L. - `ticker` (string) - Ticker of the class/contract, e.g. URTLX. ### Response Example The following example shows the JSON response with the metadata of three filings matching the search criteria. The response includes the total number of filings matching the query and the metadata of the matching filings. JSON: Example Response with 3 Filings ```json { "total": { "value": 10000, "relation": "gte" }, "filings": [ { "id": "9bb018bb35b26df92204a0afba52c30a", "accessionNo": "0001437749-20-002201", "cik": "924383", "ticker": "GNSS", "companyName": "Genasys Inc.", "companyNameLong": "Genasys Inc. (Filer)", "formType": "10-Q", "periodOfReport": "2019-12-31", "description": "Form 10-Q - Quarterly report [Sections 13 or 15(d)]", "filedAt": "2020-02-10T19:28:05-05:00", "linkToTxt": "https://www.sec.gov/Archives/edgar/data/924383/0001437749-20-002201.txt", "linkToHtml": "https://www.sec.gov/Archives/edgar/data/924383/0001437749-20-002201-index.htm", "linkToFilingDetails": "https://www.sec.gov/Archives/edgar/data/924383/000143774920002201/lrad20191231_10q.htm", "entities": [ { "companyName": "Genasys Inc. (Filer)", "cik": "0000924383", "irsNo": "870361799", "stateOfIncorporation": "DE", "fiscalYearEnd": "0930", "type": "10-Q", "act": "34", "fileNo": "000-24248", "filmNo": "20593428", "sic": "3651 Household Audio & Video Equipment" } ], "documentFormatFiles": [ { "sequence": "1", "description": "FORM 10-Q", "documentUrl": "https://www.sec.gov/Archives/edgar/data/924383/000143774920002201/lrad20191231_10q.htm", "type": "10-Q", "size": "938119" }, { "sequence": "2", "description": "EXHIBIT 31.1", "documentUrl": "https://www.sec.gov/Archives/edgar/data/924383/000143774920002201/ex_171266.htm", "type": "EX-31.1", "size": "13563" }, { "sequence": "3", "description": "EXHIBIT 31.2", "documentUrl": "https://www.sec.gov/Archives/edgar/data/924383/000143774920002201/ex_171267.htm", "type": "EX-31.2", "size": "13507" }, { "sequence": "4", "description": "EXHIBIT 32.1", "documentUrl": "https://www.sec.gov/Archives/edgar/data/924383/000143774920002201/ex_171268.htm", "type": "EX-32.1", "size": "8102" }, { "sequence": "11", "documentUrl": "https://www.sec.gov/Archives/edgar/data/924383/000143774920002201/logo.jpg", "type": "GRAPHIC", "size": "5579" }, { "sequence": " ", "description": "Complete submission text file", "documentUrl": "https://www.sec.gov/Archives/edgar/data/924383/000143774920002201/0001437749-20-002201.txt", "type": " ", "size": "6627216" } ], "dataFiles": [ { "sequence": "5", "description": "XBRL INSTANCE DOCUMENT", "documentUrl": "/Archives/edgar/data/924383/000143774920002201/lrad-20191231.xml", "type": "EX-101.INS", "size": "1561458" }, { "sequence": "6", "description": "XBRL TAXONOMY EXTENSION SCHEMA", "documentUrl": "/Archives/edgar/data/924383/000143774920002201/lrad-20191231.xsd", "type": "EX-101.SCH", "size": "70974" }, { "sequence": "7", "description": "XBRL TAXONOMY EXTENSION CALCULATION LINKBASE", "documentUrl": "/Archives/edgar/data/924383/000143774920002201/lrad-20191231_cal.xml", "type": "EX-101.CAL", "size": "49944" }, { "sequence": "8", "description": "XBRL TAXONOMY EXTENSION DEFINITION LINKBASE", "documentUrl": "/Archives/edgar/data/924383/000143774920002201/lrad-20191231_def.xml", "type": "EX-101.DEF", "size": "464656" }, { "sequence": "9", "description": "XBRL TAXONOMY EXTENSION LABEL LINKBASE", "documentUrl": "/Archives/edgar/data/924383/000143774920002201/lrad-20191231_lab.xml", "type": "EX-101.LAB", "size": "399474" }, { "sequence": "10", "description": "XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE", "documentUrl": "/Archives/edgar/data/924383/000143774920002201/lrad-20191231_pre.xml", "type": "EX-101.PRE", "size": "505337" } ] }, { "id": "df49e5e7adce70be6673b54d616f51a2", "accessionNo": "0001104659-20-015211", "cik": "1529463", "ticker": "FTSI", "companyName": "FTS International, Inc.", "companyNameLong": "FTS International, Inc. (Issuer)", "formType": "4", "periodOfReport": "2020-02-06", "description": "Form 4 - Statement of changes in beneficial ownership of securities", "filedAt": "2020-02-10T21:49:01-05:00", "linkToTxt": "https://www.sec.gov/Archives/edgar/data/1529463/0001104659-20-015211.txt", "linkToHtml": "https://www.sec.gov/Archives/edgar/data/1529463/0001104659-20-015211-index.htm", "linkToFilingDetails": "https://www.sec.gov/Archives/edgar/data/1529463/000110465920015211/xslF345X03/a4.xml", "entities": [ { "companyName": "FTS International, Inc. (Issuer)", "cik": "0001529463", "irsNo": "451610731", "stateOfIncorporation": "DE", "fiscalYearEnd": "1231", "sic": "1389 Oil & Gas Field Services, NEC" }, { "companyName": "Petersen Buddy (Reporting)", "cik": "0001700869", "type": "4", "act": "34", "fileNo": "001-38382", "filmNo": "20593681" } ], "documentFormatFiles": [ { "sequence": "1", "description": "4", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1529463/000110465920015211/xslF345X03/a4.xml", "type": "4", "size": " " }, { "sequence": "1", "description": "4", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1529463/000110465920015211/a4.xml", "type": "4", "size": "3459" }, { "sequence": " ", "description": "Complete submission text file", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1529463/000110465920015211/0001104659-20-015211.txt", "type": " ", "size": "5101" } ], "dataFiles": [] }, { "id": "b5f3f0e95d890fd3107b83ec2d6bc115", "accessionNo": "0001193125-20-030183", "cik": "814453", "ticker": "NWL", "companyName": "NEWELL BRANDS INC.", "companyNameLong": "NEWELL BRANDS INC. (Filer)", "formType": "8-K/A", "periodOfReport": "2020-02-04", "description": "Form 8-K/A - Current report: [Amend] - Item 5.02", "items": [ "Item 5.02: Departure of Directors or Certain Officers; Election of Directors; Appointment of Certain Officers: Compensatory Arrangements of Certain Officers" ], "filedAt": "2020-02-10T21:59:39-05:00", "linkToTxt": "https://www.sec.gov/Archives/edgar/data/814453/0001193125-20-030183.txt", "linkToHtml": "https://www.sec.gov/Archives/edgar/data/814453/0001193125-20-030183-index.htm", "linkToFilingDetails": "https://www.sec.gov/ix?doc=/Archives/edgar/data/814453/000119312520030183/d884349d8ka.htm", "entities": [ { "companyName": "NEWELL BRANDS INC. (Filer)", "cik": "0000814453", "irsNo": "363514169", "stateOfIncorporation": "DE", "fiscalYearEnd": "1231", "type": "8-K/A", "act": "34", "fileNo": "001-09608", "filmNo": "20593687", "sic": "3089 Plastics Products, NEC" } ], "documentFormatFiles": [ { "sequence": "1", "description": "FORM 8-K/A", "documentUrl": "https://www.sec.gov/ix?doc=/Archives/edgar/data/814453/000119312520030183/d884349d8ka.htm", "type": "8-K/A", "size": "29035" }, { "sequence": " ", "description": "Complete submission text file", "documentUrl": "https://www.sec.gov/Archives/edgar/data/814453/000119312520030183/0001193125-20-030183.txt", "type": " ", "size": "152541" } ], "dataFiles": [ { "sequence": "2", "description": "XBRL TAXONOMY EXTENSION SCHEMA", "documentUrl": "/Archives/edgar/data/814453/000119312520030183/nwl-20200204.xsd", "type": "EX-101.SCH", "size": "3065" }, { "sequence": "3", "description": "XBRL TAXONOMY EXTENSION LABEL LINKBASE", "documentUrl": "/Archives/edgar/data/814453/000119312520030183/nwl-20200204_lab.xml", "type": "EX-101.LAB", "size": "18079" }, { "sequence": "4", "description": "XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE", "documentUrl": "/Archives/edgar/data/814453/000119312520030183/nwl-20200204_pre.xml", "type": "EX-101.PRE", "size": "11383" }, { "sequence": "9", "description": "EXTRACTED XBRL INSTANCE DOCUMENT", "documentUrl": "/Archives/edgar/data/814453/000119312520030183/d884349d8ka_htm.xml", "type": "XML", "size": "3470" } ] } ] } ``` ## FAQ Common questions about querying the SEC EDGAR Filing Search API, the response shape, and the bulk archives. ### How do I pull the most recent quarterly reports filed with the SEC, sorted by filing time? To retrieve the latest quarterly reports, use the Query API endpoint (`https://api.sec-api.io`). The form type filter is the EDGAR code for quarterly reports, so the value of `formType` should be `10-Q`. The endpoint returns filing metadata objects whose `formType` matches the query, with their accession number (`accessionNo`), filer identifiers (`cik`, `ticker`, `companyName`), and the EDGAR acceptance timestamp (`filedAt`). The default sort already orders results by `filedAt` in descending order (newest first), so no custom `sort` is needed unless you want to override it. Set `size` up to the maximum of `50` per response, and step through pages by increasing `from` in increments of `50`. ```json { "query": "formType:\"10-Q\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I retrieve every SEC filing made by a specific company using its ticker symbol? To pull all filings disclosed by a specific company, search the Query API endpoint (`https://api.sec-api.io`) for filings whose `ticker` matches the symbol of interest, for example `AAPL` for Apple. Ticker matching is case-insensitive, so `AAPL` and `aapl` return the same results. Each result includes the filer's identifiers (`cik`, `ticker`, `companyName`) and the EDGAR metadata (`accessionNo`, `formType`, `filedAt`, `linkToFilingDetails`). For long historical searches, ticker-based queries can miss filings made when the company traded under a different symbol or filed under a separate share-class ticker. In those cases, resolve the ticker to a CIK first using the `/mapping` endpoint and then query on `cik` instead. If the universe contains more than 10,000 filings, split the query by a `filedAt` date range and paginate within each window using `from` in steps of `size`. ```json { "query": "ticker:AAPL", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I look up all filings from a company when I only know its CIK identifier? To pull every filing for a company by its CIK, query the Query API endpoint (`https://api.sec-api.io`) with the value of `cik` set to the issuer's CIK with the leading zeros removed — for example, Apple's CIK `0000320193` should be supplied as `320193`. The response returns each filing's `accessionNo`, `formType`, `filedAt`, `linkToFilingDetails`, and the full `entities` array describing every party referenced on the filing. CIK-based searches are the recommended approach for historical work because they survive ticker changes and cover all share classes the company has ever filed under. Use `size` up to `50` per response and increment `from` to paginate; if more than 10,000 filings match, split the query by `filedAt` date ranges. ```json { "query": "cik:320193", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I fetch filings for a basket of companies in one request? To fetch filings for several companies at once, query the Query API endpoint (`https://api.sec-api.io`) with the value of `ticker` set to a parenthesized list of the symbols of interest, for example `AAPL`, `MSFT`, `NVDA`, and `TSLA` grouped together. The endpoint returns all matching filings interleaved, each carrying its own `ticker`, `cik`, `companyName`, `formType`, and `filedAt`. The same parenthesized-list shape works for `cik`, which is the safer choice when any of the basket companies has changed ticker over the historical window you are searching. Pagination follows the standard pattern of `size` up to `50` and `from` incremented by `size`. ```json { "query": "ticker:(AAPL, MSFT, NVDA, TSLA)", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I retrieve the metadata for a single filing when I already know its accession number? To retrieve a specific filing's metadata, query the Query API endpoint (`https://api.sec-api.io`) with the value of `accessionNo` set to the EDGAR accession number of the filing, for example `0001193125-23-265616`. The response will return the matching filing object with its `formType`, `filedAt`, `periodOfReport`, `linkToFilingDetails`, `documentFormatFiles`, `dataFiles`, and the full `entities` array. Note that the endpoint may return more than one filing object for a single accession number: for filings such as Form 4 that reference multiple parties (issuer and reporting person), the API creates a separate result per entity, each with its own internal `id` but the same `accessionNo`. ```json { "query": "accessionNo:\"0001193125-23-265616\"", "from": 0, "size": 50 } ``` ### How do I find all filings published within a specific date range? To list filings within a date window, query the Query API endpoint (`https://api.sec-api.io`) and constrain `filedAt` to the desired window — for instance, restrict `filedAt` to dates between `2022-01-01` and `2022-12-31` to retrieve every filing accepted by EDGAR during calendar year 2022. The bounds use the `YYYY-MM-DD` format and are inclusive on both ends. If the window matches more than 10,000 filings, split it into smaller sub-windows (for example month by month) and paginate within each sub-window using `from` in steps of `size`. Each result carries the precise acceptance timestamp on `filedAt`, which is reported in Eastern Time. ```json { "query": "filedAt:[2022-01-01 TO 2022-12-31]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I narrow a search down to a one-hour publication window on a specific day? To target a specific hour of the day, query the Query API endpoint (`https://api.sec-api.io`) and constrain `filedAt` with timestamps in the `YYYY-MM-DDTHH:MM:SS` format — for example, set the lower bound to `2021-09-15T14:00:00` and the upper bound to `2021-09-15T15:00:00` to retrieve filings accepted between 2:00 PM and 3:00 PM on September 15, 2021. Both bounds are inclusive. You do not need to include a timezone offset: the API automatically interprets the timestamps in Eastern Time (the EDGAR system's reference timezone). The `filedAt` value returned on each filing carries the explicit offset (for example `2021-09-15T14:30:00-04:00`) reflecting daylight savings as applicable. ```json { "query": "filedAt:[2021-09-15T14:00:00 TO 2021-09-15T15:00:00]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find all filings from companies operating in a particular industry? To filter by industry, query the Query API endpoint (`https://api.sec-api.io`) and constrain the nested SIC code on the entities array — the value of `entities.sic` should be the four-digit SIC code of the industry, for example `3714` for motor vehicle parts and accessories or `6022` for state commercial banks. The SIC code is reported on the filer entity inside each filing's `entities` array. Combine the industry filter with a `formType` constraint to narrow the scope further — for example, restrict to annual reports so that `formType` is `10-K`. Each result's `entities[0].sic` field carries the matched SIC code and its plain-text description. ```json { "query": "entities.sic:3714 AND formType:\"10-K\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I restrict a search to filers incorporated in a specific U.S. state? To restrict by state of incorporation, query the Query API endpoint (`https://api.sec-api.io`) and constrain the nested state field on the entities array — the value of `entities.stateOfIncorporation` should be the two-letter state code, for example `DE` for Delaware or `NJ` for New Jersey. The state is recorded on each entity inside the filing's `entities` array. This filter matches the state on any entity referenced by the filing, which for most form types is the filer or issuer. Combine it with `formType` or `filedAt` to narrow the result set further. ```json { "query": "entities.stateOfIncorporation:DE AND formType:\"10-K\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find filings disclosing material corporate events such as quarterly earnings announcements? To locate quarterly earnings announcements, query the Query API endpoint (`https://api.sec-api.io`) for current-event reports — the value of `formType` should be `8-K` — and constrain the item codes so that `items` contains `2.02`, the EDGAR item number for Results of Operations and Financial Condition. The endpoint returns Form 8-K filings whose `items` array includes a string starting with `Item 2.02`, along with the filer's `ticker`, `cik`, `companyName`, and the link to the filing detail page (`linkToFilingDetails`). The earnings release itself is usually attached as Exhibit 99.1; you can spot it in the `documentFormatFiles` array by looking for an entry whose `type` is `EX-99.1`. To fetch the underlying document, pass the `documentUrl` to the `/filing-reader` endpoint of the Filing Download API. ```json { "query": "formType:\"8-K\" AND items:\"2.02\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I list 8-K filings that contain non-public information being selectively disclosed? To list Regulation FD disclosures, query the Query API endpoint (`https://api.sec-api.io`) for current-event reports — the value of `formType` should be `8-K` — and constrain the item codes so that `items` contains `7.01`, the EDGAR item number for Regulation FD Disclosure. The endpoint returns Form 8-K filings whose `items` array includes a string starting with `Item 7.01`. The disclosed material is typically attached under Exhibit 99.1 inside the filing's `documentFormatFiles` array (`documentFormatFiles.type` set to `EX-99.1`). Combine the item filter with a `filedAt` date range or a specific `ticker` or `cik` to scope the search. ```json { "query": "formType:\"8-K\" AND items:\"7.01\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find 8-Ks announcing multiple specific event categories at once, such as both leadership changes and material agreements? To find Form 8-K filings that touch on more than one event category, query the Query API endpoint (`https://api.sec-api.io`) for current-event reports — the value of `formType` should be `8-K` — and constrain the item codes so that `items` matches any of the EDGAR item numbers of interest, for example `1.01` (Entry into a Material Definitive Agreement) together with `5.02` (Departure or Election of Directors and Certain Officers). The endpoint returns 8-K filings whose `items` array contains any of the requested item strings. If you need filings that report all of the listed items rather than any of them, repeat the item constraint for each code so that every required item must be present, rather than only one. Each result's `items` array shows every event reported on that filing, so you can confirm which categories actually matched. ```json { "query": "formType:\"8-K\" AND items:(\"1.01\", \"5.02\")", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find all annual reports that include the subsidiary list exhibit? To pull annual reports that include the list of subsidiaries, query the Query API endpoint (`https://api.sec-api.io`) for annual reports — the value of `formType` should be `10-K` — and constrain the nested exhibit type so that `documentFormatFiles.type` is `EX-21`, the EDGAR exhibit code for the subsidiary list. The endpoint returns the 10-K filings whose `documentFormatFiles` array contains an item of type `EX-21`. Each matching filing's `documentFormatFiles` carries an entry with `documentUrl` pointing at the exhibit document on sec.gov. Pass that URL to the `/filing-reader` endpoint of the Filing Download API to retrieve the subsidiary listing itself. ```json { "query": "formType:\"10-K\" AND documentFormatFiles.type:\"EX-21\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I pull only annual reports that have machine-readable financial data attached? To restrict to annual reports that include XBRL financials, query the Query API endpoint (`https://api.sec-api.io`) for annual reports — the value of `formType` should be `10-K` — and constrain the nested data-file type on `dataFiles.type` to match the XBRL taxonomy file types, which all start with `EX-101.` (for example `EX-101.INS` for the instance document, `EX-101.SCH` for the schema, and `EX-101.LAB` for the label linkbase). The endpoint returns 10-K filings whose `dataFiles` array contains at least one entry of those types. Each matching filing exposes the XBRL files in the `dataFiles` array, with the file URL on `dataFiles.documentUrl` and the precise taxonomy role on `dataFiles.type`. The instance document (`EX-101.INS`) is the canonical machine-readable record of the financial statements. ```json { "query": "formType:\"10-K\" AND dataFiles.type:\"EX-101.INS\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find annual reports that contain at least one image or graphic file? To locate annual reports that include images, query the Query API endpoint (`https://api.sec-api.io`) for annual reports — the value of `formType` should be `10-K` — and constrain the nested exhibit type so that `documentFormatFiles.type` is `GRAPHIC`, the EDGAR type code assigned to image attachments such as JPGs and GIFs. The endpoint returns 10-K filings whose `documentFormatFiles` array contains at least one entry of type `GRAPHIC`. Each graphic entry's URL is available on `documentFormatFiles.documentUrl`, and its size on `documentFormatFiles.size`. Filings can include many graphics — charts, logos, photos — and a single match is enough for the filing to surface in the results. ```json { "query": "formType:\"10-K\" AND documentFormatFiles.type:GRAPHIC", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I limit a search to a specific exhibit type across all forms, for example consent letters from auditors? To search by exhibit type across all form types, query the Query API endpoint (`https://api.sec-api.io`) without a `formType` filter and constrain `documentFormatFiles.type` to the exhibit code of interest — for example `EX-23.1` or `EX-23.2` for auditor consent letters (the `EX-23` family). Wildcards are supported, so a pattern that begins with `EX-23` and ends with `*` matches every Exhibit 23 variant. The endpoint returns filings whose `documentFormatFiles` array contains a matching entry, regardless of the parent `formType`. Each matched filing's `documentFormatFiles` shows the exhibit's `documentUrl`, `description`, and `size`. To fetch the exhibit document itself, pass the URL to the `/filing-reader` endpoint of the Filing Download API. ```json { "query": "documentFormatFiles.type:\"EX-23.1\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find filings disclosed by a mutual fund's specific share class or contract? To filter by a specific share class or contract, query the Query API endpoint (`https://api.sec-api.io`) and constrain the nested class/contract identifier so that `seriesAndClassesContractsInformation.classesContracts.classContract` matches the class/contract ID of interest, for example `C000120702`. The endpoint returns filings whose `seriesAndClassesContractsInformation` array contains a `classesContracts` entry whose `classContract` matches. The matched object also carries the human-readable class name on `seriesAndClassesContractsInformation.classesContracts.name` and, when available, the ticker on `seriesAndClassesContractsInformation.classesContracts.ticker`. Combine the class/contract filter with `formType` to narrow to a specific fund form, such as Form N-PORT. ```json { "query": "seriesAndClassesContractsInformation.classesContracts.classContract:C000120702", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I look up filings by the ticker of a specific mutual fund class rather than the parent fund company? To search by a fund share class ticker, query the Query API endpoint (`https://api.sec-api.io`) and constrain the nested class/contract ticker so that `seriesAndClassesContractsInformation.classesContracts.ticker` matches the symbol of interest, for example `ABRZX`. The endpoint returns filings whose `seriesAndClassesContractsInformation` array contains a `classesContracts` entry whose `ticker` matches the supplied symbol. Using the class-ticker path is the right approach when you want to scope results to a single share class rather than every class of the parent fund (the top-level `ticker` field is not populated for many mutual fund filers). Each match carries the parent series identifier on `seriesAndClassesContractsInformation.series` and the class name on `seriesAndClassesContractsInformation.classesContracts.name`. ```json { "query": "seriesAndClassesContractsInformation.classesContracts.ticker:ABRZX", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I list every N-PORT filing tied to a particular fund share class? To list N-PORT filings for a specific share class, query the Query API endpoint (`https://api.sec-api.io`) and combine two constraints: the form type filter so that `formType` is `NPORT-P`, and the nested class/contract identifier so that `seriesAndClassesContractsInformation.classesContracts.classContract` matches the class/contract ID of interest, for example `C000120702`. The endpoint returns the public N-PORT filings whose class/contract list includes the requested identifier. The `periodOfReport` field on each Form N-PORT filing represents the quarter-end date the report covers, which is useful when you want to sort the results chronologically by reporting period rather than by `filedAt`. ```json { "query": "formType:\"NPORT-P\" AND seriesAndClassesContractsInformation.classesContracts.classContract:C000120702", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I search for filings made by a company using its IRS Employer Identification Number? To search by IRS Employer Identification Number, query the Query API endpoint (`https://api.sec-api.io`) and constrain the nested IRS number on the entities array so that `entities.irsNo` matches the EIN of interest, for example `710388071`. The endpoint returns filings whose `entities` array contains an entry whose `irsNo` matches. The EIN is recorded on the filer/issuer entity inside `entities` and is a stable identifier for the legal entity, which is helpful when ticker or company name searches do not disambiguate. Each result's matching entity also carries `companyName`, `cik`, and `stateOfIncorporation`. ```json { "query": "entities.irsNo:710388071", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find filings associated with a specific SEC file number assigned to a registrant? To search by SEC file number, query the Query API endpoint (`https://api.sec-api.io`) and constrain the nested file number on the entities array so that `entities.fileNo` matches the file number of interest, for example `001-36743`. The endpoint returns filings whose `entities` array contains an entry whose `fileNo` matches the supplied value. File numbers are issued by the SEC at registration and identify the registrant under a specific act (for example `001-` prefixed numbers for Exchange Act registrations). The matched entity inside `entities` also carries the registrant's `companyName`, `cik`, and `act`. ```json { "query": "entities.fileNo:\"001-36743\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I exclude amended versions of a form so I only see original filings? To exclude amendments, query the Query API endpoint (`https://api.sec-api.io`) and constrain `formType` so that it is `10-K` but is not `10-K/A`. EDGAR uses the `/A` suffix on the form type to mark an amendment, so excluding any value that ends in `/A` leaves only the originals. The same approach works for other forms with amendment variants, such as `8-K` versus `8-K/A` or `13F-HR` versus `13F-HR/A`. Each returned filing's `formType` field carries the exact form code, so you can confirm the result set contains no `/A` variants. If you instead want only amendments, invert the constraint so that `formType` is the `/A` variant. ```json { "query": "formType:\"10-K\" AND NOT formType:\"10-K/A\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I retrieve all insider transaction reports filed for a particular issuer over the past year? To pull a year of insider transaction reports for one issuer, query the Query API endpoint (`https://api.sec-api.io`) and combine three constraints: the form type filter so that `formType` is any of `3`, `4`, or `5` (the EDGAR codes for initial, change-of, and annual statements of beneficial ownership); the issuer match so that `cik` is the issuer's CIK with leading zeros stripped, for example `320193` for Apple; and a `filedAt` window covering the past twelve months. The endpoint returns the insider filings whose issuer entity matches the supplied CIK within the window. For Form 4 and similar filings, each filing references both an issuer and one or more reporting persons. The Query API creates a separate metadata object per entity, all sharing the same `accessionNo`, so the `entities` array on each result identifies which company is the issuer and which party is the reporting insider. To pull the actual transaction-level detail (codes, share counts, prices), pass the accession number to the Insider Trading dataset; the Query API itself returns only filing-level metadata. ```json { "query": "formType:(\"3\", \"4\", \"5\") AND cik:320193 AND filedAt:[2025-05-26 TO 2026-05-26]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I find prospectus supplements filed by a specific issuer for a structured-note program? To pull prospectus supplements for a single issuer, query the Query API endpoint (`https://api.sec-api.io`) and combine a form type filter — the value of `formType` should be `424B2`, the EDGAR code for prospectus supplements filed under Rule 424(b)(2) used by many structured-note shelf programs — with the issuer match so that `cik` equals the issuer's CIK with leading zeros stripped, for example `19617`. The endpoint returns the matching 424B2 filings with `accessionNo`, `filedAt`, and `linkToFilingDetails`. Add a `filedAt` window if you want to scope the search to a specific calendar window. Related 424 sub-types (`424B3`, `424B4`, `424B5`, etc.) cover other Rule 424 variants — supply the appropriate code on `formType` for those. ```json { "query": "formType:\"424B2\" AND cik:19617", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I retrieve all registration statements that became effective in a given year, including the underlying registration form type? To list registration statements that became effective in a given year, query the Query API endpoint (`https://api.sec-api.io`) and combine three constraints: the form type filter so that `formType` is `EFFECT` (the notice EDGAR posts when a registration statement becomes effective); the underlying registration form so that `registrationForm` is the form of interest, for example `S-3`; and a `filedAt` window covering the year. The endpoint returns EFFECT notices whose `registrationForm` matches. Each EFFECT result also carries `effectivenessDate` (the date the registration became effective) and, when reported, `effectivenessTime`. Use `effectivenessDate` rather than `filedAt` if you want the calendar of effectiveness rather than the calendar of notice acceptance. ```json { "query": "formType:\"EFFECT\" AND registrationForm:\"S-3\" AND filedAt:[2023-01-01 TO 2023-12-31]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I link an EFFECT notice back to the original registration filing it made effective? To trace an EFFECT notice back to the original registration statement, look at the `referenceAccessionNo` field on the EFFECT filing — it carries the accession number of the underlying registration that the notice made effective. Take that value and query the Query API endpoint (`https://api.sec-api.io`) with `accessionNo` set to the referenced accession number to retrieve the full metadata of the original registration filing. The original filing's `formType` will match the `registrationForm` reported on the EFFECT notice (for example `S-3`, `S-1`, or `F-3`), and `linkToFilingDetails` gives the URL of the underlying registration document on sec.gov. ```json { "query": "formType:\"EFFECT\" AND registrationForm:\"S-3\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I check the total number of filings that match a query before deciding how to paginate through them? To see how many filings match a query before paginating, inspect the `total` object on the Query API response from the endpoint (`https://api.sec-api.io`). The numeric count is at `total.value` and the comparison qualifier is at `total.relation`. When `total.relation` is `eq`, the `total.value` is the exact match count. When `total.relation` is `gte` and `total.value` is `10000`, the true count exceeds 10,000 and the API cannot enumerate beyond that cap. If the relation is `gte` at the cap, the pagination strategy needs to slice the query into narrower sub-queries — typically by `filedAt` windows — and paginate each slice separately. If the value is below 10,000, a single sequence of `from` increments of `size` will retrieve the entire set. ```json { "query": "formType:\"8-K\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I retrieve more than 10,000 matching filings for a broad query like all 8-Ks filed over a decade? The Query API endpoint (`https://api.sec-api.io`) caps each query at 10,000 matches (`from` cannot exceed 10,000 and `total.value` is capped at 10,000). To exhaust a broader universe, split the query along `filedAt` date ranges into windows that each fall below the cap — for a decade of Form 8-K traffic, narrow windows down to a month at a time (or shorter for high-volume months) so that each window's `total.value` is comfortably under 10,000. For each window, page through the results by incrementing `from` in steps of `size` (maximum `50`) until no more filings come back, then advance to the next window and repeat. Sort by `filedAt` in ascending or descending order consistently across all windows to keep the global ordering predictable. ```json { "query": "formType:\"8-K\" AND filedAt:[2010-01-01 TO 2010-01-31]", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I paginate efficiently through a large result set, fetching the maximum filings allowed per request? To paginate as efficiently as possible against the Query API endpoint (`https://api.sec-api.io`), set `size` to its maximum of `50` and step `from` by `50` on each subsequent call — for example `0`, `50`, `100`, and so on — until the response returns fewer than `50` filings or `from` reaches the hard cap of `10000`. The default sort orders results by `filedAt` in descending order (newest first), which is stable as long as no new filings land mid-pagination at the front of the list. If the query matches more than 10,000 filings (visible on `total.relation` set to `gte` with `total.value` at `10000`), pagination alone cannot reach the rest — slice the query into narrower `filedAt` windows and paginate each window separately. ```json { "query": "formType:\"10-Q\"", "from": 0, "size": 50, "sort": [{"filedAt":{"order":"desc"}}] } ``` ### How do I sort search results by the period a filing covers rather than when it was filed? To sort by the reporting period instead of the EDGAR acceptance time, override the default sort against the Query API endpoint (`https://api.sec-api.io`) and order by `periodOfReport` in ascending or descending order. The `periodOfReport` field carries the period covered by the filing in `YYYY-MM-DD` format and has form-specific meaning — for example, fiscal year end for 10-K filings, transaction date for Form 4 filings, and quarter end for Form 13F filings. Keep in mind that `periodOfReport` is only present on filings that report a period, so any matching filings without it will sort to the end. Combine the period sort with a `filedAt` window if you want a stable, bounded set across a paginated walk. ```json { "query": "formType:\"10-K\"", "from": 0, "size": 50, "sort": [{"periodOfReport":{"order":"desc"}}] } ```