# 🧾 SEC Auditor Change & Accounting Risk Intelligence (`snuggly_beanie_970/sec-auditor-accounting-risk-intelligence`) Actor

Find SEC 8-K auditor resignations, dismissals, appointments, accounting disagreements, restatements and non-reliance events with evidence and risk scores.

- **URL**: https://apify.com/snuggly\_beanie\_970/sec-auditor-accounting-risk-intelligence.md
- **Developed by:** [Ilia](https://apify.com/snuggly_beanie_970) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 auditor or accounting risk events

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Auditor Change & Accounting Risk Intelligence

Find auditor resignations, dismissals, appointments, accounting disagreements, reportable events, restatements and financial-statement non-reliance disclosures in SEC Form 8-K filings. The Actor turns dense Item 4.01 and 4.02 disclosures into automation-ready risk events with official evidence.

### ✨ Why this Actor

- 🎯 Searches specifically for audit and accounting events instead of exporting every 8-K.
- ⚡ Uses SEC EDGAR full-text discovery, then reads the primary filing document for evidence.
- 🏢 Extracts accounting-firm names such as `Deloitte & Touche LLP` and `Fruci & Associates II, PLLC`.
- 🚩 Emits stable flags: `AUDITOR_RESIGNED`, `AUDITOR_DISMISSED`, `NEW_AUDITOR_ENGAGED`, `AUDITOR_DISAGREEMENT`, `REPORTABLE_EVENT`, `NON_RELIANCE`, `RESTATEMENT`, and `MATERIAL_WEAKNESS`.
- 📊 Adds a deterministic 0–100 `riskScore` and `medium` / `high` / `critical` band.
- 🔗 Preserves the SEC accession number, filing URL, source-document URL and relevant excerpt.

### 🎯 Use cases

- Event-driven equity and credit research
- Audit-committee and governance monitoring
- Accounting-risk screening during due diligence
- Alerts for auditor turnover, restatements and non-reliance events
- Structured SEC evidence for dashboards, agents, Slack, Make, Zapier or n8n

### 📥 Input

Choose a rolling `daysBack` window or an explicit `startDate` and `endDate` of up to 31 days. Narrow the feed with `companyQuery` or an exact SEC `cik`, include amendments when needed, and cap delivered records with `maxEvents`. `secContactEmail` is required for the descriptive User-Agent used with SEC EDGAR.

```json
{
  "daysBack": 14,
  "companyQuery": "",
  "includeAmendments": true,
  "maxEvents": 100,
  "secContactEmail": "research@example.com"
}
```

### 📤 Output

Every dataset row represents one Item 4.01 or 4.02 event. Important fields include `companyName`, `cik`, `filingDate`, `itemNumber`, `auditFirmsMentioned`, `riskFlags`, `riskScore`, `riskLevel`, `excerpt`, `accessionNumber`, `filingUrl`, and `sourceDocumentUrl`.

```json
{
  "companyName": "Example Holdings Inc.",
  "itemNumber": "4.01",
  "auditFirmsMentioned": ["Example Audit LLP"],
  "riskFlags": ["AUDITOR_RESIGNED", "NEW_AUDITOR_ENGAGED"],
  "riskScore": 50,
  "riskLevel": "medium",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/..."
}
```

### 🔄 Monitoring recipe

Create an Apify Task, schedule it daily with `daysBack: 2`, and connect a webhook to your alerting or research pipeline. Use `accessionNumber + itemNumber` as a stable deduplication key.

### 💰 Pricing

Pay per successfully stored audit-risk event. Filtered, failed and empty results are not charged. The current unit price and any Actor-start charge are shown in the **Pricing** tab before every run; the Actor honors the user's maximum-charge limit.

### 🔌 API

```bash
curl -X POST "https://api.apify.com/v2/acts/sec-auditor-accounting-risk-intelligence/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"daysBack":14,"maxEvents":100,"secContactEmail":"research@example.com"}'
```

### 🔎 Search keywords

SEC auditor change scraper, Form 8-K Item 4.01, Item 4.02, auditor resignation alert, auditor dismissal, accounting disagreement, restatement monitor, non-reliance filing, material weakness, EDGAR accounting risk API.

### 📥 Complete input reference

| Field | Type | Default | Purpose |
|---|---|---:|---|
| `daysBack` | integer | `3` | Recent calendar days to scan when fixed dates are empty. |
| `startDate` | string | `""` | Optional YYYY-MM-DD; provide together with endDate. |
| `endDate` | string | `""` | Optional inclusive YYYY-MM-DD; maximum 31 days. |
| `companyQuery` | string | `""` | Optional case-insensitive company filter. |
| `cik` | string | `""` | Optional exact SEC CIK filter. |
| `itemNumbers` | array | `[]` | Optional item allowlist such as 1.03, 2.04, 3.01, 5.02. Empty returns every substantive event except exhibit-only Item 9.01. |
| `includeAmendments` | boolean | `false` | Include amended current reports. |
| `maxEvents` | integer | `100` | Hard cap on paid normalized event rows. |
| `includeExcerpt` | boolean | `true` | Extract a short verifiable excerpt from the primary filing document. |
| `secContactEmail` | string | — | Required for the descriptive User-Agent requested by SEC fair-access guidance. |

### 📤 Complete output reference

The default dataset is exportable as JSON, CSV, Excel, XML or RSS. Fields remain stable for scheduled runs and API integrations.

| Field | Type |
|---|---|
| `accessionNumber` | string |
| `filingDate` | string |
| `reportDate` | string / null |
| `acceptedAt` | string / null |
| `formType` | string |
| `companyName` | string |
| `cik` | string |
| `itemNumber` | string |
| `eventTitle` | string |
| `eventCategory` | string |
| `riskLevel` | string |
| `riskScore` | integer |
| `riskFlags` | array |
| `auditFirmsMentioned` | array |
| `excerpt` | string / null |
| `filingUrl` | string |
| `sourceDocumentUrl` | string / null |
| `source` | string |
| `scrapedAt` | string |

# Actor input Schema

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

Recent calendar days to scan when fixed dates are empty.

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

Optional YYYY-MM-DD; provide together with endDate.

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

Optional inclusive YYYY-MM-DD; maximum 31 days.

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

Optional case-insensitive company filter.

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

Optional exact SEC CIK filter.

## `itemNumbers` (type: `array`):

Optional item allowlist such as 1.03, 2.04, 3.01, 5.02. Empty returns every substantive event except exhibit-only Item 9.01.

## `includeAmendments` (type: `boolean`):

Include amended current reports.

## `maxEvents` (type: `integer`):

Hard cap on paid normalized event rows.

## `includeExcerpt` (type: `boolean`):

Extract a short verifiable excerpt from the primary filing document.

## `secContactEmail` (type: `string`):

Leave empty to use the hosted operator contact, or provide your own User-Agent contact.

## Actor input object example

```json
{
  "daysBack": 3,
  "startDate": "",
  "endDate": "",
  "companyQuery": "",
  "cik": "",
  "itemNumbers": [],
  "includeAmendments": false,
  "maxEvents": 100,
  "includeExcerpt": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("snuggly_beanie_970/sec-auditor-accounting-risk-intelligence").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("snuggly_beanie_970/sec-auditor-accounting-risk-intelligence").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call snuggly_beanie_970/sec-auditor-accounting-risk-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,snuggly_beanie_970/sec-auditor-accounting-risk-intelligence"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/nID6oW0jSSaECn5DZ/builds/4wOGGyPRVZfATqWdl/openapi.json
