Form 8-K Item 4.02 Structured Data API

The Form 8-K Item 4.02 Structured Data API provides access to a database of structured data extracted from material event disclosures on Form 8-K, specifically under Item 4.02: "Non-Reliance on Previously Issued Financial Statements or a Related Audit Report or Completed Interim Review". The database encompasses all 8-K filings that disclose Item 4.02, spanning from the present back to 2004, when Item 4.02 was first introduced, with over 8,000 non-reliance disclosures to date.

The data is extracted from the text section disclosed under Item 4.02 and is provided in a structured JSON format with key/value properties, enabling easy analysis and evaluation of the disclosure. The extracted information include:

  • Key components of the disclosure, such as the identification of material errors in revenue recognition
  • List of all identified issues
  • Affected reporting periods (quarters or financial years) that potentially require restatement
  • Identification of who discovered the issue (company, auditors, SEC)
  • Necessity for the restatement of previously disclosed financial statements
  • Reasons for the restatement
  • Whether the impact of the restatement is yet to be determined
  • Impact of the error (e.g., net income was overstated)
  • Materiality of the impact
  • Auditors involved
  • Affected line items of the respective income statement, balance sheet, or cash flow statement
  • Changes in revenue and net income and the magnitude of such changes
  • General event classification
Dataset size:
Over 8,000 non-reliance disclosures from Form 8-K filings, spanning from 2004 to the present.
Data update frequency:
Structured data is extracted, indexed and made available in less than 500 milliseconds after the filing is published on the SEC EDGAR database.
Survivorship bias free:
Yes. The database includes all Form 8-K filings, including those from companies that are no longer active or exist.

API Endpoint

Search and retrieve structured data from Form 8-K filings with non-reliance disclosures by sending POST HTTP requests with search parameters as JSON-formatted payload to the following API endpoint:

https://api.sec-api.io/form-8k

Supported HTTP methods: POST

Request and response content type: JSON

Authentication

To authenticate your API requests, use the API key available in your user profile. 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/form-8k, 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/form-8k?token=YOUR_API_KEY instead of the base endpoint.

Request Parameters

You can retrieve structured data extracted from Item 4.02 in Form 8-K filings by sending a search query to the API. All fields of the extracted data are searchable. For a complete list of searchable fields, refer to the Response Structure section below. Send a search query as a JSON-formatted payload to the API using the structure explained below.

Request parameters:

  • query (string) - Your search criteria in the format field:value defining the fields to search in and the values to search for in those fields. The query is written in Lucene syntax and supports boolean operators (AND, OR, NOT), range queries across date and number fields using square brackets ([, ]), wildcards (*) and search expression grouping with normal brackets ((, )). More information on Lucene is available here. Query examples are available below.
  • from (integer) - Specifies the starting position of your results, allowing for pagination. For instance, set from to 50 to skip the first 50 results. Default: 0. Maximum: 10,000, which is also the cap for the maximum number of results returned per query. To retrieve all results in your search universe, increment from by the value of the size parameter (e.g., 50) until no more results are returned or the 10,000 limit is reached. For example, use 0, 50, 100, and so on. If your query locates more than 10,000 results, consider narrowing your search by refining your filter criteria, such as using a date range filter to iterate over months or years. One approach would be to search for items with a filedAt date range filter, e.g., filedAt:[2023-01-01 TO 2023-01-31] (all filings from January 2023), then paginate through the results by incrementing from, and once completed, repeat the process for the next month, and so on.
  • size (integer) - The number of results to be returned per request. Default: 50. Maximum: 50.
  • sort (array) - An array of objects that specify how the returned results are sorted. The default sorting order is descending by the filedAt date, most recent filings 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.

Request Examples

Find all extracted data from Item 4.02 non-reliance disclosures where the date of disclosure is between January 1st and December 31st, 2022, with the result sorted by the filing date, starting with the most recent filings. Increase the from parameter by 50 on each request to paginate the results.

Open in Data Browser

Retrieve the extracted data from the financial non-reliance disclosure for a specific company using its trading symbol (ticker). In this example, the API returns all non-reliance disclosures for the company with the ticker symbol "AEON".

Open in Data Browser

Find all financial restatements that require net income to be decreased as a result of the restatement, where the date of disclosure is between January 1st and December 31st, 2022, with the result sorted by the filing date, starting with the most recent filings.

Open in Data Browser

Response Structure

Response type: JSON

The API response represents a JSON object with two fields: total (object) and data (array). The total.value field indicates the total number of results matching your search query. The data array holds up to 50 items per request, each item representing the extracted data from a non-reliance disclosure with the following structure:

  • id (string) - System-internal unique identifier of the item.
  • accessionNo (string) - Unique accession number of the Form 8-K filing, e.g. 0001607062-24-000205.
  • filedAt (date) - Date and time at which the filing was accepted by SEC EDGAR for processing, e.g. 2024-05-15T16:17:15-04:00.
  • periodOfReport (date) - The date of the occurence of the event. Format: YYYY-MM-DD. For example, a company might identify a material accounting error in its financial statements on May 1, 2024, and disclose the error in a Form 8-K filing on May 2, 2024. In this case, the periodOfReport would be 2024-05-01.
  • formType (string) - EDGAR form type. Possible values: 8-K, 8-K/A. For example, a company might file an amended Form 8-K (8-K/A) non-reliance disclosure to provide additional information regarding its previously disclosed material accounting error.
  • cik (string) - The Central Index Key (CIK) of the issuer, e.g. 1862068. Leading zeros are removed.
  • ticker (string) - The trading symbol of the issuer at the time of filing indexation, e.g. TSLA for Tesla Inc.
  • companyName (string) - The name of the issuer, e.g. Rubicon Technologies, Inc..
  • items (array of strings) - List of items disclosed in the Form 8-K filing, e.g. ["Item 4.02: ...", "Item 5.02: ...", "Item 9.01: ..."]. An 8-K filing may contain multiple items, each representing a different event disclosure.
  • item4_02 (object) - Information about the non-reliance on previously issued financial statements or a related audit report or completed interim review. The object contains the following properties:
    • keyComponents (string) - Key components of the non-reliance disclosure, e.g. "The Company identified errors in previously issued financial statements related to deferred underwriting compensation and classification of non-redemption agreement expenses."
    • identifiedIssues (array of strings) - List of all identified issues, e.g. ["Unexplained reconciling differences in inventory balances", "Misstated inventory by a former employee"].
    • affectedReportingPeriods (array of strings) - List of affected reporting periods that potentially require restatement, including quarters or financial years, e.g. ["Q1 2023", "FY 2022"].
    • identifiedBy (array of strings) - List of entities that discovered the issue. Possible values: Company, Auditors, SEC. For example, the audit committee of the company might have identified the material accounting error, or the company's external auditors might have discovered the issue. The SEC might have also identified the error during a routine review and requested the company to disclose the issue using a SEC comment letter or other means.
    • restatementIsNecessary (boolean) - true if the restatement of previously disclosed financial statements is necessary, false otherwise.
    • reasonsForRestatement (array of strings) - List of reasons for the restatement, e.g. ["Misstated inventory", "Inaccurate and unsupported manual journal entries"].
    • impactYetToBeDetermined (boolean) - true if the company explicitly states that the impact of the error is yet to be determined, false otherwise.
    • impactOfError (string) - Impact of the error, e.g. "Income before income taxes was overstated by approximately $5 to $7 million for FY 2023. The total overstatement is approximately $26 to $29 million."
    • impactIsMaterial (boolean) - true if the company explicitly states that the impact of the error is material, false otherwise.
    • materialWeaknessIdentified (boolean) - true if the company disclosed a material weakness in its internal financial controls, false otherwise.
    • auditors (array of strings) - List of auditors involved in the restatement process, e.g. ["PricewaterhouseCoopers LLP"].
    • affectedLineItems (array of strings) - List of affected line items of the respective income statement, balance sheet, or cash flow statement, e.g. ["Inventory", "Cost of Sales", "Income Before Income Taxes"]
    • netIncomeDecreased (boolean) - true if the company explicitly states that net income decreased as a result of the restatement, false otherwise.
    • netIncomeIncreased (boolean) - true if the company explicitly states that net income increased as a result of the restatement, false otherwise. Note, this field is not mutually exclusive with netIncomeDecreased as both can be true if the restatement affected different periods.
    • netIncomeAdjustment (string) - If explicitly disclosed, the magnitude of the net income adjustment, e.g. "$348.0 million".
    • revenueDecreased (string) - true if the company explicitly states that revenue decreased as a result of the restatement, false
    • revenueIncreased (string) - true if the company explicitly states that revenue increased as a result of the restatement, false otherwise. Note, this field is not mutually exclusive with revenueDecreased as both can be true if the restatement affected different periods.
    • revenueAdjustment (string) - If explicitly disclosed, the magnitude of the revenue adjustment, e.g. "$1.2 billion".
    • eventClassification (string) - General classification of the event, e.g. "Financial Restatement Due to Error in Recording Write-off of Acquired In-Process Research and Development".

Response Example

JSON
1 {
2 "total": {
3 "value": 192,
4 "relation": "eq"
5 },
6 "data": [
7 {
8 "id": "b2a86b36dfd04b43f281a003c287003a",
9 "accessionNo": "0001837607-24-000047",
10 "formType": "8-K",
11 "filedAt": "2024-05-03T16:27:10-04:00",
12 "periodOfReport": "2024-05-01",
13 "cik": "1837607",
14 "ticker": "AEON",
15 "companyName": "AEON Biopharma, Inc.",
16 "items": [
17 "Item 4.02: Non-Reliance on Previously Issued Financial Statements or a Related Audit Report or Completed Interim Review"
18 ],
19 "item4_02": {
20 "keyComponents": "The Board of Directors of AEON Biopharma, Inc., based on the recommendation of, and after consultation with, the Company’s management, concluded that the Company’s previously issued financial statements as of and for the three and nine months ended September 30, 2023, and for the year ended December 31, 2023, should no longer be relied upon due to an identified error. The error involved the write-off of acquired in-process research and development (IPR&D) which should have been reflected in the Successor’s opening balance sheet and subsequently recognized in the consolidated statement of operations and comprehensive loss. This error resulted in non-cash corrections to increase the loss reported by $348.0 million. The Company expects to report a material weakness as a result of the error identified and intends to file restated audited consolidated financial statements.",
21 "identifiedIssues": [
22 "Write-off of acquired in-process research and development (IPR&D) incorrectly recorded"
23 ],
24 "affectedReportingPeriods": [
25 "Q3 2023",
26 "FY 2023"
27 ],
28 "identifiedBy": [
29 "Company"
30 ],
31 "restatementIsNecessary": true,
32 "reasonsForRestatement": [
33 "Write-off of acquired in-process research and development (IPR&D) should have been reflected in the Successor’s opening balance sheet and subsequently recognized in the consolidated statement of operations and comprehensive loss"
34 ],
35 "impactYetToBeDetermined": false,
36 "impactOfError": "Non-cash corrections to increase the loss reported on the Company’s condensed consolidated statement of operations and comprehensive loss for the Successor periods from July 22, 2023 to September 30, 2023 and July 22, 2023 to December 31, 2023 by $348.0 million.",
37 "impactIsMaterial": true,
38 "materialWeaknessIdentified": true,
39 "auditors": [
40 "KPMG LLP"
41 ],
42 "affectedLineItems": [
43 "Accumulated Deficit",
44 "Consolidated Statement of Operations and Comprehensive Loss"
45 ],
46 "netIncomeDecreased": true,
47 "netIncomeIncreased": false,
48 "netIncomeAdjustment": "$348.0 million",
49 "revenueDecreased": false,
50 "revenueIncreased": false,
51 "revenueAdjustment": "",
52 "eventClassification": "Financial Restatement Due to Error in Recording Write-off of Acquired In-Process Research and Development"
53 }
54 }
55 ]
56 }

FAQ

Common questions about querying the Form 8-K Item 4.02 Structured Data API, the response shape, and the bulk archives.

How do I find all companies that have disclosed a need to restate their previously issued financial statements?

To find every company that has filed an Item 4.02 non-reliance disclosure, query the /form-8k endpoint for filings where the Item 4.02 structured data is present and the company explicitly indicates that a restatement is required. The first condition is that the item4_02 object exists on the filing, and the second is that the restatement flag is set (item4_02.restatementIsNecessary should be true).

Each matching item in the response is one disclosure, with the issuer identified by company name (companyName), trading symbol (ticker), and Central Index Key (cik). Pair this with a date filter on filedAt if you want to constrain to a recent window.

Open in Data Browser

How do I pull every restatement disclosure for a specific company by its trading symbol?

To pull every non-reliance disclosure for one company by its trading symbol, query the /form-8k endpoint with two conditions: the Item 4.02 object exists on the filing (item4_02 should be present) and the trading symbol matches (ticker should be AEON, for example). The trading symbol used is the one recorded at the time the filing was indexed.

The response returns the structured Item 4.02 data for each matching 8-K. Sort by filing date (filedAt) descending to see the most recent disclosure first, or ascending to walk the company's restatement history from the beginning.

Open in Data Browser

How do I look up a non-reliance disclosure by its SEC accession number?

To look up a specific non-reliance disclosure by its SEC accession number, query the /form-8k endpoint where the accession number matches the value you have on hand. The value of accessionNo should be the exact accession number string, for example 0001837607-24-000047.

Accession numbers are unique per filing, so the response contains a single item. From there you have access to the full structured Item 4.02 object including the key components of the disclosure (item4_02.keyComponents), the affected reporting periods (item4_02.affectedReportingPeriods), and the event classification (item4_02.eventClassification).

Open in Data Browser

How do I retrieve all financial restatement disclosures filed within a given calendar year?

To retrieve every non-reliance disclosure filed in a particular calendar year, query the /form-8k endpoint for filings where Item 4.02 data is present and the filing date falls inside the year of interest. The value of filedAt should be between 2022-01-01 and 2022-12-31 for the 2022 calendar year, and item4_02 should be present so you only get filings that actually contain a non-reliance disclosure.

If the year contains more than 50 hits, increment from by size to paginate through the results. If the year exceeds the 10,000 result cap, narrow further by chunking on filedAt into months or quarters.

Open in Data Browser

How do I find restatement filings where the company says net income had to be reduced?

To find restatements where the company explicitly states that net income decreased as a result of the correction, query the /form-8k endpoint where the net-income-decreased flag is set. The value of item4_02.netIncomeDecreased should be true.

This flag is only set when management explicitly says net income was lowered, so filings where the impact is still under review (item4_02.impactYetToBeDetermined is true) typically will not appear. If you also want the magnitude of the adjustment when available, read item4_02.netIncomeAdjustment from each result, which holds the dollar figure as a string such as $348.0 million.

Open in Data Browser

How do I find restatements where revenue had to be revised upward versus downward?

To separate restatements where revenue went up from those where it went down, run two queries against the /form-8k endpoint. For downward revisions, the value of item4_02.revenueDecreased should be true. For upward revisions, the value of item4_02.revenueIncreased should be true.

The two flags are not mutually exclusive — a single restatement that spans multiple periods can have one period revised upward and another revised downward, in which case both flags are true on the same record. When the company discloses the magnitude of the change, the dollar amount appears as a string on item4_02.revenueAdjustment (for example $1.2 billion).

Open in Data Browser

How do I identify companies that disclosed a material weakness in internal controls alongside the restatement?

To pick out restatements that came packaged with a material-weakness admission, query the /form-8k endpoint where the material weakness flag is set on the Item 4.02 data. The value of item4_02.materialWeaknessIdentified should be true.

The matching filings list the issuer in companyName, ticker, and cik, and the nature of the control problem is generally reflected in the narrative on item4_02.keyComponents and in the list of underlying causes on item4_02.identifiedIssues. Combine with filedAt to limit to a time window when looking at trends.

Open in Data Browser

How do I list filings where the company admits the dollar impact of the error is still unknown at the time of disclosure?

To list non-reliance disclosures where management explicitly says the dollar effect has not yet been quantified, query the /form-8k endpoint where the impact-undetermined flag is set on the Item 4.02 data. The value of item4_02.impactYetToBeDetermined should be true.

For these filings the dollar-amount fields (item4_02.netIncomeAdjustment, item4_02.revenueAdjustment) are typically empty strings, and the prose under item4_02.impactOfError will usually describe what is unknown rather than give a number. Pair with companyName, ticker, and filedAt to monitor whether quantification follows in a later amendment.

Open in Data Browser

How do I find restatements where the issue was first flagged by the company's external auditors rather than management?

To find non-reliance disclosures that name the external auditors as the party who flagged the issue, query the /form-8k endpoint where the identified-by array on the Item 4.02 data contains the auditor entry. The value of item4_02.identifiedBy should include Auditors.

The item4_02.identifiedBy field is an array, and the same filing can credit more than one party (for example both the company and its auditors), so a match here means the auditors were at least one of the discoverers. To exclude cases where management was the original discoverer, also require that the array does not contain Company.

Open in Data Browser

How do I locate cases where the SEC itself prompted the non-reliance disclosure?

To locate restatements that were prompted by the SEC rather than by the company or its auditors, query the /form-8k endpoint where the identified-by array on the Item 4.02 data contains the SEC entry. The value of item4_02.identifiedBy should include SEC.

These cases typically follow staff comments or discussions with the Office of the Chief Accountant. The narrative on item4_02.keyComponents usually describes the interaction with the SEC, and the underlying problem is summarised in item4_02.identifiedIssues and item4_02.reasonsForRestatement.

Open in Data Browser

How do I retrieve all amended non-reliance disclosures the company filed to correct or update an earlier one?

To retrieve only amended non-reliance disclosures, query the /form-8k endpoint where the form type is the amendment variant. The value of formType should be 8-K/A, and item4_02 should be present so you exclude amendments that do not touch Item 4.02.

An 8-K/A is filed to correct or supplement an earlier 8-K, so the matching results typically refine the prior disclosure — for example by adding the dollar magnitude on item4_02.netIncomeAdjustment or item4_02.revenueAdjustment, by toggling item4_02.impactYetToBeDetermined from true to false, or by expanding the list under item4_02.affectedReportingPeriods.

Open in Data Browser

How do I narrow results to filings whose 4.02 disclosure involved a particular audit firm such as KPMG?

To narrow Item 4.02 results to a single audit firm, query the /form-8k endpoint where the auditors array on the Item 4.02 data contains the firm's exact name. The value of item4_02.auditors should include KPMG LLP, for example.

The item4_02.auditors field is an array of firm names as they appear in the disclosure text, so exact spelling matters (KPMG LLP, Ernst & Young LLP, Grant Thornton LLP, PricewaterhouseCoopers LLP). Some filings name more than one firm — for instance a predecessor and successor auditor — and any of the listed firms will produce a match.

Open in Data Browser

How do I search for restatements that affected a specific income statement line item like Revenue or Inventory?

To search for restatements that touched a particular financial-statement line item, query the /form-8k endpoint where the affected-line-items array contains the label of interest. The value of item4_02.affectedLineItems should include Inventory to find inventory-related restatements, or Revenue for revenue-related ones.

The item4_02.affectedLineItems field is an array of human-readable line-item names taken from the disclosure (for example Inventory, Cost of Sales, Goodwill, Stock-based Compensation Expense, Cash flows from operating activities). Because labels vary across filings, you may need wildcard variants or multiple terms to catch all phrasings of the same concept.

Open in Data Browser

How do I find disclosures that mention errors tied to stock option accounting?

To find non-reliance disclosures that turn on stock option accounting, query the /form-8k endpoint by searching the identified-issues array or the event classification for stock-option language. The value of item4_02.identifiedIssues should match a stock-option phrasing (such as stock option* to catch variations like Incorrect accounting measurement dates for stock options), or the value of item4_02.eventClassification should contain a stock-option phrase (such as Financial Restatement Due to Stock Option Accounting Errors).

The event classification is a short, normalised category written for each disclosure, so it tends to be the cleaner filter. The identified-issues array carries the company's own wording of the underlying problem and works well as a secondary check or as a full-text fallback.

Open in Data Browser

How do I filter for restatements whose impact the company explicitly labels as material?

To filter for restatements the company itself describes as material, query the /form-8k endpoint where the materiality flag on the Item 4.02 data is set. The value of item4_02.impactIsMaterial should be true.

This flag is only set when the disclosure explicitly characterises the impact as material — it is not inferred. Filings where the company says the reclassification has no effect on the income statement or balance sheet typically leave the flag at false, even when a restatement is technically required. Combine with item4_02.netIncomeAdjustment or item4_02.revenueAdjustment when you want the dollar context as well.

Open in Data Browser

How do I look up every restatement that touched a particular reporting period such as FY 2023 or Q3 2023?

To look up every restatement that affected a particular reporting period, query the /form-8k endpoint where the affected-reporting-periods array contains the period label. The value of item4_02.affectedReportingPeriods should include FY 2023 for a full fiscal year, or Q3 2023 for a single quarter.

The item4_02.affectedReportingPeriods array uses fiscal-period labels in the form Q1 2024, Q2 2024, FY 2024, and so on. A single restatement often covers multiple periods, so matching on one period typically returns filings that also restate adjacent quarters or prior fiscal years.

Open in Data Browser

How do I find restatements where management has disclosed a specific net income adjustment amount?

To find restatements where the company has disclosed a specific dollar net-income adjustment, query the /form-8k endpoint where the net-income-adjustment string on the Item 4.02 data is present and non-empty. The field item4_02.netIncomeAdjustment should exist and should not be the empty string.

The field is stored as a free-text string preserving the company's own phrasing (for example $348.0 million), so once you have results you parse the string client-side to extract a numeric magnitude. Pairing this with item4_02.netIncomeDecreased or item4_02.netIncomeIncreased tells you the direction of the adjustment.

Open in Data Browser

How do I retrieve disclosures grouped by a general event category such as inventory misstatement or contingent liability errors?

To retrieve disclosures bucketed by their general event category, query the /form-8k endpoint where the event-classification field on the Item 4.02 data matches the category you want. The value of item4_02.eventClassification should be the classification string, for example Financial Restatement Due to Errors in Fair Value Calculation of Contingent Liability or any other classification of interest.

The item4_02.eventClassification field is a short, normalised string written per filing (other examples include Financial Restatement Due to Stock Option Accounting Errors, Financial Restatement Due to Multiple Accounting Errors, and Financial Restatement Due to Incorrect Classification of Debt Issuance Costs). For a list of categories present in a window, pull a date range and group results client-side on this field.

Open in Data Browser

How do I find 8-K filings that bundle the non-reliance disclosure with an executive departure announcement?

To find 8-K filings that bundle a non-reliance disclosure with an executive-departure or officer-change announcement, query the /form-8k endpoint for filings whose items array contains both Item 4.02 and Item 5.02 entries. The value of items should include an entry starting with Item 4.02 and also an entry starting with Item 5.02.

The items field is an array of human-readable item labels (for example Item 4.02: Non-Reliance on Previously Issued Financial Statements... and Item 5.02: Departure of Directors or Certain Officers...). Bundled filings often signal that a CFO or controller change was triggered by the same accounting issue that forced the restatement.

Open in Data Browser

How do I locate restatements that were disclosed at the same time as earnings results?

To locate non-reliance disclosures filed in the same 8-K as an earnings release, query the /form-8k endpoint for filings whose items array contains both Item 2.02 and Item 4.02 entries. The value of items should include an entry starting with Item 2.02 (Results of Operations and Financial Condition) and also an entry starting with Item 4.02, and the item4_02 object should be present.

The items field carries the full Item label for each event in the filing. Combining results-of-operations with a non-reliance disclosure typically signals that the company is announcing a quarter while at the same time withdrawing reliance on prior periods.

Open in Data Browser

How do I paginate through more than 50 restatement disclosures matching my query?

To paginate beyond the first page of results, call the /form-8k endpoint repeatedly with the same query and advance the from offset by the value of size on each call. With the default page size of 50, set from to 0 for the first page, 50 for the second, 100 for the third, and so on. The maximum page size is 50 and the maximum cumulative offset is 10,000.

If your query matches more than 10,000 disclosures you cannot reach the rest by simply incrementing from further. Instead, split the search universe into smaller chunks on the filedAt field — for example one query per month or per quarter — and paginate within each chunk.

Open in Data Browser

How do I sort restatement results from oldest to newest instead of the default newest-first order?

To reverse the default ordering and walk results from oldest to newest, call the /form-8k endpoint with a sort directive that orders by filing date ascending. The sort array should contain one object that sorts on filedAt with order set to asc.

The default order is descending on filedAt (most recent first), so this is the only change needed when you want chronological order from the beginning. You can sort on any of the response fields the same way — for example sorting on periodOfReport instead of filedAt if you want to order by the event date rather than the filing date.

Open in Data Browser

How do I export every restatement disclosure for a specific company by its central index key?

To export every non-reliance disclosure for one company by its Central Index Key, query the /form-8k endpoint where the CIK matches and the Item 4.02 object is present. The value of cik should be the company's CIK (for example 1837607 for AEON Biopharma, with leading zeros removed), and item4_02 should exist on the filing.

The CIK is the most reliable identifier because, unlike ticker, it does not change when a company rebrands or relists. Paginate by incrementing from by size (50 per page) until the result set is exhausted; companies will rarely have more than a handful of Item 4.02 filings in their entire history.

Open in Data Browser

How do I systematically download all restatement disclosures for a multi-year window when the result set exceeds 10,000?

To systematically download every non-reliance disclosure over a multi-year window when the total exceeds the 10,000 result cap, split the window into smaller date chunks on filedAt and exhaust each chunk before moving to the next. For each chunk, query the /form-8k endpoint where item4_02 is present and the value of filedAt falls inside the chunk (for example between 2022-01-01 and 2022-01-31 for January 2022), then paginate inside that chunk by incrementing from by size until the returned page is empty or the 10,000 limit is reached.

Monthly chunks are usually small enough to stay well under the cap, but if a single month still exceeds it, narrow further to weeks or days. Keep sort consistent across chunks (typically ascending on filedAt) so you can resume cleanly if a job interrupts.

Open in Data Browser

How do I rank audit firms by how often they were involved in client restatements over a given period?

To rank audit firms by how often they appear on Item 4.02 disclosures over a given period, pull the full set of filings for that period from the /form-8k endpoint and aggregate on the auditor names client-side. The value of filedAt should fall inside your period of interest, and item4_02 should be present so you only count actual non-reliance disclosures.

For each returned filing, iterate over item4_02.auditors (an array of firm names such as KPMG LLP, Ernst & Young LLP, Grant Thornton LLP, PricewaterhouseCoopers LLP) and increment a counter per firm. Sorting the counter map by value gives you the ranking. Use date chunking with pagination on from and size to gather the full set for windows that exceed the 10,000 cap.

Open in Data Browser

How do I quantify how many restatements in a year were triggered by the SEC versus the company versus the auditor?

To quantify how many restatements in a year were attributable to each discoverer, pull all Item 4.02 disclosures for the year from the /form-8k endpoint and bucket them client-side on the identified-by array. The value of filedAt should fall between 2023-01-01 and 2023-12-31 (or whichever year you want), and item4_02 should be present.

For each returned filing, look at item4_02.identifiedBy, which contains one or more of Company, Auditors, and SEC. Maintain three counters and increment each one when the corresponding value appears. Because the array can list more than one party for a single disclosure, the totals will overlap; you can additionally maintain a counter for filings where only one party is listed to track exclusive credit.

Open in Data Browser

How do I build a time series of monthly restatement counts that involved an admitted material weakness?

To build a monthly time series of restatements that admit a material weakness, pull the matching filings from the /form-8k endpoint and bucket them on the filing month client-side. The value of item4_02.materialWeaknessIdentified should be true, and the value of filedAt should fall inside your overall window.

Iterate month by month (for example one query per month with filedAt between the first and last day of that month), counting the number of returned items. Pagination on from and size lets you exhaust each month when it exceeds 50 hits. The output is a {month, count} series you can chart or feed into trend analysis.

Open in Data Browser

How do I find restatements whose disclosure language calls out a specific accounting topic like revenue recognition or contingent liabilities?

To find non-reliance disclosures that mention a specific accounting topic in their narrative, run a full-text search against the /form-8k endpoint over the narrative fields on the Item 4.02 data. Search the key-components prose (item4_02.keyComponents) and the reasons-for-restatement array (item4_02.reasonsForRestatement) for phrases such as revenue recognition or contingent liability.

These fields hold the company's own wording, so wildcard variants and synonyms broaden recall — for example searching for both contingent liability and contingent liabilities. For a more structured match, intersect the narrative search with the line-item or event-classification fields (item4_02.affectedLineItems, item4_02.eventClassification) when the topic maps cleanly to one of those categories.

Open in Data Browser

How do I detect cases where both net income and revenue were lowered in the same restatement?

To detect restatements where both net income and revenue were revised downward in the same disclosure, query the /form-8k endpoint where both downward-revision flags are set on the Item 4.02 data. The value of item4_02.netIncomeDecreased should be true and the value of item4_02.revenueDecreased should be true.

When both flags are set on one filing, the company is signalling that the correction reduced the top line and pulled the bottom line down with it. For the dollar magnitudes when disclosed, read item4_02.netIncomeAdjustment and item4_02.revenueAdjustment from each result; the strings preserve the company's original phrasing such as $348.0 million or $1.2 billion.

Open in Data Browser

How do I find restatements where the event date and the filing date are far apart, suggesting a delayed disclosure?

To find non-reliance disclosures where the event date sits far before the filing date, pull the filings from the /form-8k endpoint and compute the gap between the two date fields client-side. The value of periodOfReport is the date the underlying event occurred (for example, the day the audit committee concluded the prior statements should no longer be relied upon), and the value of filedAt is the date the 8-K was accepted by EDGAR.

For each returned filing, subtract periodOfReport from filedAt and keep the ones whose gap exceeds your threshold (for example more than four business days, which is the standard 8-K filing window). A consistently large gap can indicate slow disclosure of material accounting issues, and pairing the gap with item4_02.impactIsMaterial or item4_02.materialWeaknessIdentified sharpens that signal.

Open in Data Browser

References

For more information about Form 8-K filings visit the SEC websites here:

Regulations

Research Papers