# SEC 8-K Material Events Scraper - Earnings, M\&A & Cyber (`pink_comic/sec-form-8k-material-events`) Actor

Track public-company material events from official SEC EDGAR Form 8-K filings. Find earnings, mergers and acquisitions, cybersecurity incidents, executive changes, bankruptcies, restatements, debt, capital, listing, and governance events by company, ticker, item, or date.

- **URL**: https://apify.com/pink\_comic/sec-form-8k-material-events.md
- **Developed by:** [Ava Torres](https://apify.com/pink_comic) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 sec form 8-k filing records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## SEC Form 8-K Material Events Scraper — Earnings, M&A, Cyber & Executive Changes

Track public-company material events from official SEC EDGAR Form 8-K filing metadata. Find earnings releases, mergers and acquisitions, material cybersecurity incidents, executive changes, bankruptcies, auditor changes and restatements, debt/capital events, delistings, governance changes, and shareholder votes.

The actor searches SEC's official full-text filing index, resolves company names or tickers to an exact CIK, normalizes SEC item codes into buyer-friendly event categories, and links every result to the official filing. No API key, login, browser, or proxy is required.

### Fast start

The default returns the 25 newest Form 8-K filings from a rolling seven-day window:

```json
{
  "daysBack": 7,
  "sortBy": "latest",
  "maxResults": 25,
  "maxFilingsScanned": 250
}
````

Find recent Apple filings by ticker:

```json
{
  "companyQuery": "AAPL",
  "daysBack": 365,
  "maxResults": 25
}
```

Track earnings and M\&A events:

```json
{
  "daysBack": 30,
  "eventCategories": ["earnings", "mergers_acquisitions"],
  "amendmentFilter": "no",
  "maxResults": 100,
  "maxFilingsScanned": 1000
}
```

Find official item-level cybersecurity disclosures:

```json
{
  "itemCodes": ["1.05"],
  "daysBack": 365,
  "maxResults": 100,
  "maxFilingsScanned": 5000
}
```

### Search and filters

- full-text filing keyword
- company name or ticker resolved through the SEC entity index
- exact CIK or filing accession number
- explicit filing dates or a rolling 1–3,660 day window
- company business state
- exact SEC Form 8-K item codes
- normalized event categories: earnings, M\&A, cybersecurity, executive changes, bankruptcy, auditor/restatement, capital/debt, listing, governance, and other
- original 8-K versus 8-K/A amendments
- latest or oldest sorting
- 1–1,000 total results with a bounded scan of up to 10,000 filing records

All filter groups are combined. Multiple values within `states`, `itemCodes`, or `eventCategories` use OR.

### Item-level event classification

The actor uses SEC's official item-code metadata rather than guessing from headlines. Examples:

| Item | Event |
| --- | --- |
| 1.03 | Bankruptcy or receivership |
| 1.05 | Material cybersecurity incident |
| 2.01 | Completion of acquisition or disposition |
| 2.02 | Results of operations and financial condition / earnings |
| 3.01 | Delisting or listing-rule failure |
| 4.01 | Certifying-accountant change |
| 4.02 | Non-reliance on prior financial statements or audit report |
| 5.01 | Change in control |
| 5.02 | Director or executive departure, appointment, or compensation |
| 5.07 | Shareholder vote results |
| 7.01 | Regulation FD disclosure |
| 8.01 | Other events |
| 9.01 | Financial statements and exhibits |

One filing can contain several item codes and event categories.

### Output

Each found filing exposes 34 stable source-linked keys, including:

- filing date, report date, form type, amendment status, accession, and CIK
- SEC company name, ticker symbols when exposed, business state/location, incorporation state, and SIC
- file and film numbers
- official item codes, item titles, normalized event categories, and high-signal boolean flags
- official filing-index URL, SEC company-filings URL, and reproducible SEC search URL
- total search hits, filings scanned, scan-limit status, and interpretation caveats

No-match runs return an explicit `NO_MATCHES` evidence item. Temporary SEC source failures return `SOURCE_UNAVAILABLE` instead of an ambiguous empty dataset.

### Bounded scan behavior

`maxFilingsScanned` bounds runtime for item, event, state, amendment, and oldest-first filters. Every found row reports `searchTotalFilings`, `filingsScanned`, and `scanLimitApplied`.

If `scanLimitApplied` is true, the results cover the newest disclosed scan window—not every filing in the full date range. Increase the scan bound when broader historical coverage matters.

### Important interpretation limits

Form 8-K is company-filed disclosure. It is **not** SEC verification, investment advice, a live market feed, or proof that a reported transaction, forecast, investigation, appointment, cybersecurity incident, financing, or other event had a particular outcome. Item codes classify what the company filed; they do not replace reading the filing.

Some events may be disclosed under more than one item, in exhibits, in an amendment, or in another SEC form. Later filings can update earlier information. Confirm material investment, trading, credit, employment, legal, or diligence decisions against the linked official filing and current sources.

### Official sources

- [SEC EDGAR full-text search](https://www.sec.gov/edgar/search/)
- [SEC Form 8-K overview](https://www.sec.gov/files/form8-k.pdf)
- [SEC investor bulletin on Form 8-K](https://www.sec.gov/resources-for-investors/investor-alerts-bulletins/how-read-8-k)

# Actor input Schema

## `query` (type: `string`):

SEC full-text search across Form 8-K filings, such as acquisition, ransomware, restructuring, or a disclosed counterparty. Empty returns newest filings.

## `companyQuery` (type: `string`):

Resolve a public company name or ticker such as AAPL, Microsoft, or Tesla to the best SEC CIK match before searching filings.

## `cik` (type: `string`):

Exact 1-10 digit SEC Central Index Key. Use this instead of companyQuery when known.

## `accessionNumber` (type: `string`):

Exact SEC accession in 0000000000-00-000000 format. Bypasses the rolling date window.

## `startDate` (type: `string`):

Optional inclusive YYYY-MM-DD filing date. When omitted, daysBack defines the rolling window.

## `endDate` (type: `string`):

Optional inclusive YYYY-MM-DD filing date. Defaults to today.

## `daysBack` (type: `integer`):

Used when startDate is omitted. Seven days keeps default output useful across weekends and holidays.

## `states` (type: `array`):

Optional two-letter business-address state codes. Any selected state can match.

## `itemCodes` (type: `array`):

Optional exact item codes such as 1.05 cybersecurity, 2.01 acquisitions, 2.02 earnings, 4.02 non-reliance/restatement, or 5.02 executive changes. Any selected item can match.

## `eventCategories` (type: `array`):

Normalized categories derived from official SEC item codes: earnings, mergers\_acquisitions, cybersecurity, executive\_changes, bankruptcy, auditor\_restatement, capital\_debt, listing, governance, or other. Any selected category can match.

## `amendmentFilter` (type: `string`):

Include all filings, only original 8-K filings, or only 8-K/A amendments.

## `sortBy` (type: `string`):

Latest or oldest filing date within the disclosed scan window.

## `maxResults` (type: `integer`):

Total output cap after all filters.

## `maxFilingsScanned` (type: `integer`):

Bounds metadata inspection for event, state, amendment, and oldest-first filters. Output discloses when the scan limit applies.

## Actor input object example

```json
{
  "query": "",
  "companyQuery": "",
  "cik": "",
  "daysBack": 7,
  "states": [],
  "itemCodes": [],
  "eventCategories": [],
  "amendmentFilter": "any",
  "sortBy": "latest",
  "maxResults": 25,
  "maxFilingsScanned": 250
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "",
    "companyQuery": "",
    "daysBack": 7,
    "maxResults": 25,
    "maxFilingsScanned": 250
};

// Run the Actor and wait for it to finish
const run = await client.actor("pink_comic/sec-form-8k-material-events").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "",
    "companyQuery": "",
    "daysBack": 7,
    "maxResults": 25,
    "maxFilingsScanned": 250,
}

# Run the Actor and wait for it to finish
run = client.actor("pink_comic/sec-form-8k-material-events").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "",
  "companyQuery": "",
  "daysBack": 7,
  "maxResults": 25,
  "maxFilingsScanned": 250
}' |
apify call pink_comic/sec-form-8k-material-events --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=pink_comic/sec-form-8k-material-events",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC 8-K Material Events Scraper - Earnings, M&A & Cyber",
        "description": "Track public-company material events from official SEC EDGAR Form 8-K filings. Find earnings, mergers and acquisitions, cybersecurity incidents, executive changes, bankruptcies, restatements, debt, capital, listing, and governance events by company, ticker, item, or date.",
        "version": "0.1",
        "x-build-id": "yu0lpMl2p8TchyCzg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pink_comic~sec-form-8k-material-events/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pink_comic-sec-form-8k-material-events",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/pink_comic~sec-form-8k-material-events/runs": {
            "post": {
                "operationId": "runs-sync-pink_comic-sec-form-8k-material-events",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/pink_comic~sec-form-8k-material-events/run-sync": {
            "post": {
                "operationId": "run-sync-pink_comic-sec-form-8k-material-events",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "title": "Filing Keyword",
                        "type": "string",
                        "description": "SEC full-text search across Form 8-K filings, such as acquisition, ransomware, restructuring, or a disclosed counterparty. Empty returns newest filings.",
                        "default": ""
                    },
                    "companyQuery": {
                        "title": "Company Name or Ticker",
                        "type": "string",
                        "description": "Resolve a public company name or ticker such as AAPL, Microsoft, or Tesla to the best SEC CIK match before searching filings.",
                        "default": ""
                    },
                    "cik": {
                        "title": "Exact SEC CIK",
                        "pattern": "^[0-9]{0,10}$",
                        "type": "string",
                        "description": "Exact 1-10 digit SEC Central Index Key. Use this instead of companyQuery when known.",
                        "default": ""
                    },
                    "accessionNumber": {
                        "title": "Exact Filing Accession Number",
                        "pattern": "^$|^[0-9]{10}-[0-9]{2}-[0-9]{6}$",
                        "type": "string",
                        "description": "Exact SEC accession in 0000000000-00-000000 format. Bypasses the rolling date window."
                    },
                    "startDate": {
                        "title": "Filing Start Date",
                        "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
                        "type": "string",
                        "description": "Optional inclusive YYYY-MM-DD filing date. When omitted, daysBack defines the rolling window."
                    },
                    "endDate": {
                        "title": "Filing End Date",
                        "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
                        "type": "string",
                        "description": "Optional inclusive YYYY-MM-DD filing date. Defaults to today."
                    },
                    "daysBack": {
                        "title": "Rolling Filing Window (Days)",
                        "minimum": 1,
                        "maximum": 3660,
                        "type": "integer",
                        "description": "Used when startDate is omitted. Seven days keeps default output useful across weekends and holidays.",
                        "default": 7
                    },
                    "states": {
                        "title": "Company Business States",
                        "type": "array",
                        "description": "Optional two-letter business-address state codes. Any selected state can match.",
                        "items": {
                            "type": "string",
                            "pattern": "^[A-Za-z]{2}$"
                        },
                        "default": []
                    },
                    "itemCodes": {
                        "title": "SEC Form 8-K Item Codes",
                        "type": "array",
                        "description": "Optional exact item codes such as 1.05 cybersecurity, 2.01 acquisitions, 2.02 earnings, 4.02 non-reliance/restatement, or 5.02 executive changes. Any selected item can match.",
                        "items": {
                            "type": "string",
                            "pattern": "^[1-9][.][0-9]{2}$"
                        },
                        "default": []
                    },
                    "eventCategories": {
                        "title": "Material Event Categories",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Normalized categories derived from official SEC item codes: earnings, mergers_acquisitions, cybersecurity, executive_changes, bankruptcy, auditor_restatement, capital_debt, listing, governance, or other. Any selected category can match.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "amendmentFilter": {
                        "title": "Amendment Status",
                        "enum": [
                            "any",
                            "no",
                            "yes"
                        ],
                        "type": "string",
                        "description": "Include all filings, only original 8-K filings, or only 8-K/A amendments.",
                        "default": "any"
                    },
                    "sortBy": {
                        "title": "Sort Filings",
                        "enum": [
                            "latest",
                            "oldest"
                        ],
                        "type": "string",
                        "description": "Latest or oldest filing date within the disclosed scan window.",
                        "default": "latest"
                    },
                    "maxResults": {
                        "title": "Maximum Filing Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Total output cap after all filters.",
                        "default": 25
                    },
                    "maxFilingsScanned": {
                        "title": "Maximum Newest Filings to Scan",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Bounds metadata inspection for event, state, amendment, and oldest-first filters. Output discloses when the scan limit applies.",
                        "default": 250
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
