Parretir’s SEC Refinery API is a starting point for getting a clean, machine-readable dataset of parsed financial filings from the SEC EDGAR database, powering further natural language processing and machine learning applications.
The SEC Refinery extracts the full plain text from the HTML of SEC filings and separates the document into sections.
We are actively working to add features and support for additional form types (10-Qs, 8-Ks, etc.). If you have a request for a specific feature, please feel free to reach out to us at support@parretir.com.
The quotas for all plans are measured by unique Companies requested per Quarter. Companies are uniquely identified by their Central Index Key (CIK) with the SEC. The API measures the Companies requested per Quarter and overrides RapidAPI’s monthly quota counter. Once the quarterly quota has been reached, the API will respond with a 500 error, which should prevent overages.
Please note the pricing is still provided on a Monthly basis, as indicated on the Pricing page.
Please submit any issues, questions, or feedback via RapidAPI or email support@parretir.com.
Provides the plain text extracted from 10-K filings for a set of companies, structured by section in JSON.
POST /sec-refinery/v1/filings/
The request payload should be submitted as JSON with the following parameters:
Key | Type | Description |
---|---|---|
ticker_list | array | (Required) List of Company Ticker Symbols |
filters | object | |
filters.fiscal_year | array | (Required) List of fiscal years of 10-Ks to extract |
Sample
{
"ticker_list": [
"SPLK",
"TSLA"
],
"filters": {
"fiscal_year": [
"2018",
"2017"
]
}
}
Responses will be provided as JSON with the following attributes:
Key | Type | Description | Possible Values |
---|---|---|---|
status |
string | Status of result retrieval | ok, error |
code |
integer | Status code, aligns to HTTP codes | 200, 500 |
messages |
array | Array of message objects. See Message Object below. | |
results |
object | ||
results.companies |
array | Array of company objects with data extracted from filings. See Company & Filing Objects below. |
Key | Type | Description | Possible Values |
---|---|---|---|
severity |
string | Severity of message | info, warning, error |
message_text |
string | Full text of message | |
data |
(Varies) | Any data objects related to message |
Company Object
Key | Type | Description |
---|---|---|
company_metadata |
object | Includes the Central Index Key (CIK) and Company Name. |
filings |
array | Array of filing objects, each representing a filing and its sections. |
Filing Object
Filing Metadata (filing_metadata
)
Key | Type | Description |
---|---|---|
submission_number |
string | Accession Key Number - The 20-character string formed from the 18-digit number assigned by the SEC to each EDGAR submission. |
date_filed |
date | Date Filing was submitted to the SEC |
form |
string | Form Type |
complete_file_url |
string | URL of the full text file of the Filing in the EDGAR database |
html_file_name |
string | File name of the HTML file on the EDGAR database |
fiscal_year |
integer | Fiscal year focus of filing |
parsing_valid |
boolean | The API’s internal check of whether the parsing was valid. |
Filing Section Objects (sections
)
Key | Type | Description |
---|---|---|
section_number |
string | Item number of section |
section_text |
string | Plain text of section |
section_text_length |
integer | Count of characters in section text after parsing |
Sample
{
"status": "ok",
"code": 200,
"messages": [],
"results": {
"companies": [
{
"company_metadata": {
"cik": 1318605,
"company_name": "TESLA, INC."
},
"filings": [
{
"filing_metadata": {
"submission_number": "0001564590-18-002956",
"date_filed": "2018-02-23",
"form": "10-K",
"complete_file_url": "https://www.sec.gov/Archives/edgar/data/1318605/0001564590-18-002956.txt",
"html_file_name": "tsla-10k_20171231.htm",
"fiscal_year": 2017,
"parsing_valid": true
},
"sections": [
{
"section_number": "1A",
"section_text": "Item 1A. RISK FACTORS You should carefully consider the risks described below together...",
"section_text_length": 56636
}
]
}
]
}
]
}
}
If a requested filing is not yet in our data repository, it will be processed asynchronously by our background parsing engine. If this occurs, you will receive a message in the response indicating which filings are still being processed, with the pre-generated Request Body to use to re-request the filings. Processing should usually complete within 30-60 seconds per filing, so re-request after a short waiting period.
Please reach out to our support if you encounter problematic processing times.