# SEC Filings & Regulatory Monitor (`second_coming/sec-filings-monitor`) Actor

Monitor SEC filings by company ticker, form type, and keyword. Tracks 10-K, 10-Q, 8-K filings and regulatory changes with webhook alerts and persistent deduplication across runs.

- **URL**: https://apify.com/second\_coming/sec-filings-monitor.md
- **Developed by:** [Richard P](https://apify.com/second_coming) (community)
- **Categories:** Developer tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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 Filings & Regulatory Monitor

**Track SEC filings by company ticker, form type, and keyword. Stay on top of regulatory changes, earnings reports, and material events.**

Monitor the SEC EDGAR database for new filings from your portfolio companies, competitors, or industry. Get alerted when 10-Ks, 10-Qs, 8-Ks, S-1s, or any other form type hits the wire.

### What it does

The SEC Filings Monitor searches three data sources to catch every relevant filing:

| Source | What it covers |
|--------|---------------|
| **SEC Company Submissions API** | All filings for specific tickers (10-K, 10-Q, 8-K, Form 4, S-1, etc.) |
| **EDGAR Full-Text Search** | Keyword matches across every filing in the SEC database |
| **SEC RSS Feed** | Latest filings from all filers in real-time |

Each filing is enriched with company name, CIK, form type, filing date, description, and a direct SEC.gov URL. Results are **deduplicated** across sources and **persisted** between runs so you only get notified about genuinely new filings.

### Use Cases

- **Portfolio monitoring** — Get notified when your holdings file quarterly/annual reports or material event notices (8-K)
- **Competitive intelligence** — Track competitors' S-1, S-3, and 8-K filings
- **Regulatory tracking** — Monitor SEC filings for mentions of specific regulations, policies, or enforcement actions
- **IPO watch** — Track S-1 filings and amendments for companies in your sector
- **Insider activity** — Monitor Form 4 filings for insider trading activity
- **Industry research** — Search across all filings for mentions of AI, cybersecurity, climate, or any topic

### Input

| Field | Type | Description |
|-------|------|-------------|
| `tickers` | array | Stock tickers to monitor (e.g., `["AAPL", "MSFT", "GOOGL"]`) |
| `keywords` | array | Keywords to search across all SEC filings (e.g., `["cybersecurity", "artificial intelligence"]`) |
| `formTypes` | array | Filter by form type. Empty = all forms. Common: `["10-K", "10-Q", "8-K"]` |
| `daysBack` | integer | Look back window in days (default: 7) |
| `maxResults` | integer | Max results per source (default: 25) |
| `useCompanyApi` | boolean | Fetch by ticker via company submissions API (default: true) |
| `useFulltextSearch` | boolean | Search full-text index for keywords (default: true) |
| `useRssFeed` | boolean | Monitor SEC RSS feed (default: true) |
| `notificationTypes` | select | `new_filings` (deduplicated) or `all_runs` (every check) |
| `webhookUrl` | string | Optional URL for push alerts |

#### Example Input

```json
{
  "tickers": ["AAPL", "MSFT", "GOOGL"],
  "keywords": ["cybersecurity", "artificial intelligence", "data breach"],
  "formTypes": ["10-K", "10-Q", "8-K"],
  "daysBack": 7,
  "maxResults": 25,
  "useCompanyApi": true,
  "useFulltextSearch": true,
  "useRssFeed": true,
  "notificationTypes": ["new_filings"],
  "webhookUrl": "https://hooks.example.com/sec-alerts"
}
````

### Output

Each filing record contains:

| Field | Description |
|-------|-------------|
| `source` | Data source: `sec_company`, `sec_fulltext`, or `sec_rss` |
| `filing_id` | Unique hash for deduplication |
| `company_name` | Company name |
| `cik` | SEC Central Index Key |
| `ticker` | Stock ticker (company API source only) |
| `form_type` | SEC form type (10-K, 10-Q, 8-K, etc.) |
| `filing_date` | Date filed with SEC |
| `report_date` | Reporting period end date (when available) |
| `accession_number` | SEC accession number |
| `description` | Filing description / title |
| `url` | Direct link to the filing on SEC.gov |
| `_new` | Boolean — true if filing is new since last run |

A summary record with `_summary: true` is appended at the end showing totals by form type, companies tracked, and new filing counts.

#### Webhook Payload

When new filings are detected, a POST is sent to your webhook URL:

```json
{
  "event": "new_sec_filings",
  "summary": {
    "total_found": 45,
    "new_filings": 12,
    "days_back": 7,
    "forms": {
      "8-K": 8,
      "10-Q": 3,
      "10-K": 1
    },
    "companies": {
      "APPLE INC": 5,
      "Microsoft Corp": 4,
      "Alphabet Inc": 3
    }
  },
  "filings": [
    {
      "company_name": "Apple Inc.",
      "form_type": "8-K",
      "filing_date": "2026-07-03",
      "description": "Results of Operations",
      "url": "https://www.sec.gov/Archives/edgar/data/..."
    }
  ],
  "checked_at": "2026-07-04T12:00:00+00:00"
}
```

The payload is capped at 15 filings to avoid oversized POST bodies.

### Persistent State

This Actor maintains a **persistent key-value store** between runs. It tracks every filing ID it has ever seen. When you run it on a schedule (e.g., daily via Apify scheduler), you only get notified about filings that are genuinely new — not a repeat of everything from the previous run.

To reset tracking, delete the `sec-filings-monitor-state` key-value store in the Apify console.

### Scheduled Monitoring

For best results, configure the Actor to run daily via the Apify scheduler:

1. Set `daysBack: 2` to catch anything from the previous day
2. Set `notificationTypes: ["new_filings"]` for deduplicated alerts
3. Configure a `webhookUrl` for Slack/Discord/Teams integration
4. Use `formTypes: ["8-K"]` for real-time material event monitoring

### Pricing

- **Model**: PAY\_PER\_EVENT — $0.01 per run
- Each run checks all configured tickers, keywords, form types, and sources
- Free to try with your Apify trial credits

### About SEC Data

This Actor uses publicly available SEC EDGAR APIs:

- [SEC Company Submissions API](https://www.sec.gov/edgar/sec-api-documentation)
- [SEC EDGAR Full-Text Search](https://efts.sec.gov/LATEST/search-index)
- [SEC EDGAR RSS Feed](https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent)

All data is sourced from public filings. No API key is required. A descriptive User-Agent header is sent as required by SEC policy.

# Actor input Schema

## `tickers` (type: `array`):

List of stock ticker symbols to monitor (e.g., AAPL, MSFT, GOOGL). Filing details are fetched via the SEC company submissions API.

## `keywords` (type: `array`):

Keywords to search across all SEC filings via the EDGAR full-text search. Use to find filings mentioning specific topics, regulations, or products.

## `formTypes` (type: `array`):

Filter by SEC form type. Leave empty to monitor all form types. Common forms: 10-K (annual), 10-Q (quarterly), 8-K (current events), S-1 (IPO), DEF 14A (proxy).

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

Number of days to look back for filings. Use 1-7 for daily monitoring, 30 for weekly, 90 for monthly deep dives.

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

Maximum number of results to collect from each data source (company API, full-text search, RSS feed).

## `useCompanyApi` (type: `boolean`):

Fetch filings by ticker from the SEC company submissions API. Disable if you only want keyword-based search.

## `useFulltextSearch` (type: `boolean`):

Search SEC EDGAR full-text index for keyword matches across all filings. Requires keywords to be specified.

## `useRssFeed` (type: `boolean`):

Monitor the SEC's current EDGAR RSS feed for the very latest filings across all filers.

## `notificationType` (type: `string`):

When to send output: 'new\_filings' (only filings not seen in previous runs) or 'all\_runs' (every filing found). 'new\_filings' mode uses persistent deduplication across runs.

## `webhookUrl` (type: `string`):

URL to POST new filing alerts to. Payload includes filing details, form summary, and company breakdown. Supports Slack, Discord, Teams, or custom endpoints.

## Actor input object example

```json
{
  "tickers": [
    "AAPL",
    "MSFT",
    "GOOGL"
  ],
  "keywords": [
    "cybersecurity",
    "climate change",
    "artificial intelligence"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "daysBack": 7,
  "maxResults": 25,
  "useCompanyApi": true,
  "useFulltextSearch": true,
  "useRssFeed": true,
  "notificationType": "new_filings"
}
```

# Actor output Schema

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

Link to the dataset containing all filing results.

# 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 = {
    "tickers": [
        "AAPL",
        "MSFT",
        "GOOGL"
    ],
    "keywords": [
        "cybersecurity",
        "climate change",
        "artificial intelligence"
    ],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K"
    ],
    "webhookUrl": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("second_coming/sec-filings-monitor").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 = {
    "tickers": [
        "AAPL",
        "MSFT",
        "GOOGL",
    ],
    "keywords": [
        "cybersecurity",
        "climate change",
        "artificial intelligence",
    ],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K",
    ],
    "webhookUrl": "",
}

# Run the Actor and wait for it to finish
run = client.actor("second_coming/sec-filings-monitor").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 '{
  "tickers": [
    "AAPL",
    "MSFT",
    "GOOGL"
  ],
  "keywords": [
    "cybersecurity",
    "climate change",
    "artificial intelligence"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "webhookUrl": ""
}' |
apify call second_coming/sec-filings-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=second_coming/sec-filings-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC Filings & Regulatory Monitor",
        "description": "Monitor SEC filings by company ticker, form type, and keyword. Tracks 10-K, 10-Q, 8-K filings and regulatory changes with webhook alerts and persistent deduplication across runs.",
        "version": "0.0",
        "x-build-id": "LieJeqT4cAJo3DOZI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/second_coming~sec-filings-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-second_coming-sec-filings-monitor",
                "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/second_coming~sec-filings-monitor/runs": {
            "post": {
                "operationId": "runs-sync-second_coming-sec-filings-monitor",
                "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/second_coming~sec-filings-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-second_coming-sec-filings-monitor",
                "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": {
                    "tickers": {
                        "title": "Stock Tickers",
                        "type": "array",
                        "description": "List of stock ticker symbols to monitor (e.g., AAPL, MSFT, GOOGL). Filing details are fetched via the SEC company submissions API."
                    },
                    "keywords": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "Keywords to search across all SEC filings via the EDGAR full-text search. Use to find filings mentioning specific topics, regulations, or products."
                    },
                    "formTypes": {
                        "title": "Form Types to Monitor",
                        "type": "array",
                        "description": "Filter by SEC form type. Leave empty to monitor all form types. Common forms: 10-K (annual), 10-Q (quarterly), 8-K (current events), S-1 (IPO), DEF 14A (proxy)."
                    },
                    "daysBack": {
                        "title": "Look Back Days",
                        "type": "integer",
                        "description": "Number of days to look back for filings. Use 1-7 for daily monitoring, 30 for weekly, 90 for monthly deep dives.",
                        "default": 7
                    },
                    "maxResults": {
                        "title": "Max Results Per Source",
                        "type": "integer",
                        "description": "Maximum number of results to collect from each data source (company API, full-text search, RSS feed).",
                        "default": 25
                    },
                    "useCompanyApi": {
                        "title": "Use Company Filings API",
                        "type": "boolean",
                        "description": "Fetch filings by ticker from the SEC company submissions API. Disable if you only want keyword-based search.",
                        "default": true
                    },
                    "useFulltextSearch": {
                        "title": "Use Full-Text Search",
                        "type": "boolean",
                        "description": "Search SEC EDGAR full-text index for keyword matches across all filings. Requires keywords to be specified.",
                        "default": true
                    },
                    "useRssFeed": {
                        "title": "Use RSS Feed",
                        "type": "boolean",
                        "description": "Monitor the SEC's current EDGAR RSS feed for the very latest filings across all filers.",
                        "default": true
                    },
                    "notificationType": {
                        "title": "Notification Type",
                        "enum": [
                            "new_filings",
                            "all_runs"
                        ],
                        "type": "string",
                        "description": "When to send output: 'new_filings' (only filings not seen in previous runs) or 'all_runs' (every filing found). 'new_filings' mode uses persistent deduplication across runs.",
                        "default": "new_filings"
                    },
                    "webhookUrl": {
                        "title": "Webhook URL (optional)",
                        "type": "string",
                        "description": "URL to POST new filing alerts to. Payload includes filing details, form summary, and company breakdown. Supports Slack, Discord, Teams, or custom endpoints."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
