Analytics mindset
EDGAR Explorer – Case two
Submissions Application Programming Interface (API)
Background
Digital reporting of financial and nonfinancial business information continues to evolve and increase in importance. eXtensible Business Reporting Language, XBRL, is an XML standard for tagging business and financial reports using digital dictionaries or taxonomies. XBRL provides:
A programmatic interface to access financial data filed with the U.S. Securities and Exchange Commission (SEC), making it easier to retrieve and analyze the data compared to manual extraction from documents. The standardized format helps provide for better consistency and accuracy when comparing and analyzing companies against others in their industry.
Automated retrieval and processing of financial data, which is especially useful for financial analysts, data scientists and investors who need current information.
Financial statement users with the ability to use technology to quickly process and analyze the data. Users can integrate the data obtained from the XBRL into their own applications, tools and databases for future analysis or presentation.
Our previous case, Analytics_Mindset_case studies_Edgar_Explorer_InlineXBRL, focused on Inline XBRL (iXBRL), which is an extension of XBRL. iXBRL combines XBRL with human-readable HTML. In iXBRL, the XBRL tags are embedded directly within the HTML document, making the financial information more accessible to both machines and humans. The tagged data is presented alongside the narrative text in a single document. The iXBRL documents are designed to be more user-friendly and accessible, as they provide a familiar HTML format for humans to read, while still allowing automated extraction of data for analysis.
The SEC requires domestic and foreign companies using US GAAP and foreign private issuers using International Financial Reporting Standards (IFRS) to provide their financial statements in the iXBRL format. iXBRL is a standardized format for financial reporting and the SEC has been using it to improve the accessibility and usability of financial data.
The SEC provides submissions history and XBRL data from company (filer) financial statements (Forms 10-Q, 10-K, 8-K, 20-F, 40-F, 6-K and their variants) in the Electronic Data Gathering, Analysis, and Retrieval (EDGAR) system via a Representational State Transfer (REST or RESTful) application programming interface (API).1 Using these services, users can download data about a company’s filings.
Submissions API is provided by the SEC, which allows users to programmatically access and retrieve the recorded history of all filings for a company by form name, date, time of filing, etc. This API can be used to gather information on all the filings made by a single company. The Submissions API can be used to obtain documents in different formats, such as HTML, text or XBRL, depending on the user’s requirements.
XBRL data is a standardized format for financial reporting. As public companies are required to submit their financial statements and related information in XBRL format to the SEC, these XBRL filings contain structured data that can easily be processed by technology for financial analysis. When using XBRL data, it’s important to understand the way the information is structured.
XBRL Company Concepts API: The specific element or concept used in an XBRL taxonomy to represent the various financial data disclosures from a single company. Each concept corresponds to a specific financial item, such as revenue, net income, assets, etc. (a taxonomy and a tag). For example, you could use this API to gather information on accounts receivable for a single company over several years.
XBRL Company Facts API: In the context of XBRL, company facts are instances of reported financial data for a specific company. These facts are tagged with XBRL concepts to create structured XBRL financial statements. For example, you would use this API to return the data values associated with the XBRL company concept. For example, if “revenue” is the company concept, the company fact for revenue might be US $1m for that specific reporting period.
XBRL Frames API: The aggregation of one company fact most recently filed based on a requested calendar period of time (e.g., annual, quarterly). For example, you would use this API to gather information for accounts receivable for the most recent period.
The following information outlines some common features of these APIs:
All of the SEC’s APIs can be accessed via an internet browser or automated using various programming languages or automation software.
The SEC’s APIs do not require any form of authentication or API keys to access the data. Use of the API is, however, subject to the SEC’s website privacy and security policy. To access the data as outlined in this case, we are required to follow the SEC’s programmatic downloads requirement and declare a User-Agent in our requests.
A User-Agent header can be declared using the name of your university and your university email address.
Users can only make 10 requests per second.
The SEC’s APIs return data in a JavaScript Object Notation (JSON) format. The JSON format is used for data storage and exchange between a server and a web application. JSON is a text-based format that is easy for humans to read and easy for machines to parse and generate. JSON consists of key-value pairs organized in a structured manner.
The SEC’s JSON files use a combination of objects (key-value pairs) and arrays (lists of data). In this format, the SEC’s JSON files will include metadata, such as the company’s central index key (CIK) and company name.
Public companies will generally report line items both in the standard XBRL taxonomy as well as extended taxonomies that can be specific to that company or industry.
The SEC also provides access to XBRL tagged financial data in several other formats. For example, the SEC provides the Financial Statements and Notes data sets that contain XBRL data for a specific period (one month since October 2020 and quarterly before then back to the first quarter of 2009) in a tab-separated value (TSV) format.2 These files are useful for broad comparisons of entities across the entire market.
Submissions API
This case uses the SEC’s EDGAR Submissions API, which requires the user to know company CIK numbers. CIK numbers are assigned by the SEC to each entity that submits filings to the SEC. The SEC’s EDGAR website maintains a database of company names and tickers to help users look up a company’s unique CIK ID and access its filings. That website can be found at:
Depending upon the company you choose, there can be several CIK codes returned. Make sure you are selecting the correct company by verifying additional information. For example, one way to confirm the company is correct is to check the company’s address in the identifying information in the header, after clicking on the company link.
Once you have the CIK for the company, use the following SEC site to access the EDGAR Submissions API. You’ll need to replace the 10 hashes in the link with the company’s unique CIK code, at: https://data.sec.gov/submissions/CIK##########.json. For example, using Tesla’s CIK “0001318605,” the submissions file for Tesla can be found at:
The submissions file will contain metadata about the entity (including the CIK, company name, geographical and industry data) and a large amount of data describing the various disclosures made by the entity. This case explores the types and frequencies of disclosures made by a specific public company. Some of the information provided includes:
The accension number (accessionNumber), which can be used to locate the original full-text filing on EDGAR.
The day and time of the filing, including the date of the filing (filingDate), the filing report date (reportDate), and the date and time the filing was accepted by the SEC (acceptanceDateTime).
The type of form filed with the SEC, including the form type (form), and when applicable, the items (items) included in the form or which Act (act) the filing is required by (e.g., the 1934 Securities and Exchange Act). Additional descriptive information about the filings, including the size of the filing and whether it is an XBRL filing (isXBRL and isInlineXBRL), is included, along with two variables describing the primary document related to the filing (primaryDocument and primaryDocDescription).
Important form types include the company’s annual Form 10-K and quarterly Form 10-Q filings, which contain financial statements. However, there are many other SEC file types that are commonly seen, including Form 8-K filings (significant events) and Form 4 filings (insider transactions).
The Form 8-K filing reports on current significant events. These files are further classified into various types of events using an item number. For example, Item 4.01 relates to changes in the entity’s auditor and Item 9.01 requires any financial statements or exhibits be listed for any acquired business, funds or shell company.
At the end of the submission form, if the entity has filed more than 1,000 filings, you can find information on earlier filings. In our Tesla example, the file references an earlier file as:
"files":[{"name":"CIK0001318605-submissions-001.json","filingCount":265,"filingFrom":"2005-02-17","filingTo":"2012-12-17"}]
As Tesla continues to file in the future, the submission file on the API will push older filing information into the prior submission’s JSON file. This means that the filing to date and the count will change in the current file.
Required
Use Tesla’s CIK “0001318605,” or pick a company of your choosing, and find its CIK using the EDGAR Company Filings CIK Lookup Tool at: https://www.sec.gov/edgar/searchedgar/companysearch.
Using Alteryx:
Use the download tool to download the submissions filing for your company. Remember to declare your university name and university email address in the User-Agent header.
Deserialize the JSON formatted submissions filing for your company.
Use the output to:
Identify the number of unique forms filed by the entity.
Calculate the number of times each form was filed based on this data set and identify the most popular filing for your company.
The following questions require researching forms filed with the SEC:
Based on your analysis above, pick two forms filed by your example company that you have not heard of before and research the purpose of those forms. The SEC website https://www.sec.gov/forms provides a useful starting point for your research. A filing with “/A” appended to the end is an amended filing. Amended filings are corrected filings of forms that were previously filed with the SEC.
Write a brief description of the forms you are researching, including:
What information is being disclosed by the company.
Why this information is important to users of financial information.
Return to your Alteryx workflow and use the appropriate tools to identity the most recent Form 10-K. Use the accessionNumber with the SEC EDGAR Archive data URL “https://www.sec.gov/Archives/edgar/data” and the company’s CIK to download the most recent Form 10-K and save it as a csv file. The website address that resolves the filing will be a text document, with the extension “.txt.”
Save your Alteryx workflow and submit it for grading.
Footnotes
The SEC’s API documentation is available at: https://www.sec.gov/edgar/sec-api-documentation.
↩“Financial Statement and Notes Data Sets,” SEC website, https://www.sec.gov/dera/data/financial-statement-and-notes-data-set.html, accessed November 2023.
↩
