Annual reports
Retrieve 10-K, 20-F, and 40-F annual reports as cleaned HTML
What the dataset contains
The dataset serves cleaned HTML from original 10-K, 20-F, and 40-F filings. It keeps amendments filed as 10-K/A, 20-F/A, or 40-F/A separate from the original report.
The preparation process selects the annual report documents from the SEC complete submission, removes scripts and machine-only markup, and keeps report text, tables, page numbers, safe presentation, links, and supported images. Certifications, XBRL support files, and unrelated exhibits stay out of the cleaned report.
Supported annual filings
The three forms serve the same broad purpose but apply to different groups of issuers and can package the annual disclosure differently.
Form 10-K
Form 10-K is the annual report used by domestic issuers in the US. It includes audited financial statements and disclosures about the company's business, risks, results, controls, legal matters, and other required topics. A company's shareholder annual report can appear inside or alongside the filing. When the primary 10-K clearly includes or links to that report, the cleaned report can keep one related ARS or EX-13 document with the primary filing. See the SEC's Form 10-K page.
Form 20-F
Form 20-F is the annual report used by foreign private issuers. It covers much of the same ground as Form 10-K but follows the foreign issuer disclosure framework and can contain financial statements based on IFRS or US GAAP. The cleaned report includes the primary annual report document, leaves out unrelated exhibits, and excludes a 20-F used as a registration statement or transition report. See the SEC's Form 20-F.
Form 40-F
Form 40-F is filed by eligible Canadian issuers under the multijurisdictional disclosure system. A 40-F annual report often uses a short SEC form as a wrapper around Canadian disclosure documents. The cleaned report joins the wrapper with the annual information form, audited financial statements, and management's discussion and analysis identified by its exhibits. It excludes a 40-F used as a registration statement or transition report. See the SEC's Form 40-F.
Choose a lookup
The API provides two ways to retrieve prepared filings:
GET /v1/sec/company-reports/{accession}retrieves an original filing or amendment by its SEC accession numberGET /v1/companies/US/{ticker}/reports/annual/{fiscal_year}retrieves a 10-K, 20-F, or 40-F and any amendments to the same form for a given ticker and fiscal year
Receive new reports
GET /v1/company-reports/feed returns annual reports and amendments in the order Chadwin publishes them. Use start=now to begin with future reports or save and reuse next_cursor to continue from the last processed page.
The optional forms filter accepts the 10-K, 20-F, and 40-F filing families. A family includes its /A amendments, while each update keeps the exact SEC form. See the feed polling guide for cursor handling and recovery.
Read the response
The accession response places content beside the filing metadata. The company response places shared issuer, fiscal_year, and fiscal_period fields at the top level and returns the original and amendments in a filings array. Each filing keeps its own accession, form, accepted_at timestamp, period end, SEC URL, and content_url.
content_url is a relative API path. Request it with the same bearer token. It returns the report body directly as text/html; charset=utf-8, not as JSON. The HTML references a public shared stylesheet and public image URLs based on content hashes, so a browser can render the saved response without embedding image data in the document.
accepted_at is the SEC acceptance timestamp in UTC, distinct from the SEC filing date. period_end_date is the end date of the fiscal period covered by the report when available. fiscal_year and fiscal_period are either both present or both null. The issuer object identifies the primary filer, and sec_url points to the SEC accession index page.
