# SEC Filing Intelligence Monitor (`junipr/sec-filing-intelligence-monitor`) Actor

Monitor SEC/EDGAR filing snapshots, company facts, and watchlists. produce structured rows without live network calls.

- **URL**: https://apify.com/junipr/sec-filing-intelligence-monitor.md
- **Developed by:** [junipr](https://apify.com/junipr) (community)
- **Categories:** Automation, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.80 / 1,000 filing record checkeds

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 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 Filing Intelligence Monitor

### Store Positioning

**Store title:** SEC Filing Intelligence Monitor

**Short description:** Monitor SEC/EDGAR filing snapshots, company facts, and watchlists. produce structured rows without live network calls.

**SEO title:** SEC Filing Intelligence Monitor — premium B2B monitoring and intelligence workflow

**SEO description:** Monitor SEC/EDGAR filing snapshots, company facts, and watchlists. produce structured rows without live network calls. Use it for high-value B2B workflows where trustworthy evidence, prioritization, and executive reporting matter.

**Categories:** AUTOMATION, NEWS

**Keywords:** sec, filing, intelligence, monitor, structured data, high-ticket specialized b2b workflow

### Fixed-Inclusive PPE Pricing

This actor uses pay-per-event pricing. Event prices include Apify platform usage; users are not expected to pay a separate platform-usage pass-through charge for the configured pricing model.

- Tier: P1 — High-ticket specialized B2B workflow
- Primary event: `filing-record-checked` at $0.00980 base
- Default max charge: $50.00
- Store discounts: FREE/BRONZE base, SILVER discounted, GOLD deepest approved discount

Event set:

- `actor-start`: base $0.05000, GOLD $0.04400. Sec Filing Intelligence Monitor: charged when actor start is completed. The price includes Apify platform usage; no separate usage pass-through is intended.
- `filing-record-checked`: base $0.00980, GOLD $0.00862. Sec Filing Intelligence Monitor: charged when filing record checked is completed. The price includes Apify platform usage; no separate usage pass-through is intended.
- `high-value-event-detected`: base $0.01950, GOLD $0.01720. Sec Filing Intelligence Monitor: charged when high value event detected is completed. The price includes Apify platform usage; no separate usage pass-through is intended.
- `executive-report-generated`: base $0.50000, GOLD $0.44000. Sec Filing Intelligence Monitor: charged when executive report generated is completed. The price includes Apify platform usage; no separate usage pass-through is intended.

### Public Task Concepts

- Compare previous and current SEC Filing Intelligence snapshots
- Monitor SEC Filing Intelligence changes for a capped watchlist
- Build a SEC Filing Intelligence change digest from supplied evidence
- Prioritize high-impact SEC Filing Intelligence changes
- Export SEC Filing Intelligence change rows for client review

### What does SEC Filing Intelligence Monitor do?

SEC Filing Intelligence Monitor turns SEC/EDGAR filing snapshots, company fact snapshots, and watchlists into structured review signals. It is designed for local-first monitoring: the default run uses deterministic fixture data, makes no network calls, and returns a small non-empty dataset suitable for Apify automated checks.

Use it to:

- Compare previous and current filing snapshots for new forms, amended reports, and 8-K material-event items.
- Compare copied company facts, such as XBRL-style values, and flag threshold-sized changes.
- Return flat dataset rows with severity, evidence, and a recommendation for downstream review workflows.
- Optionally refresh current filing metadata from SEC submissions JSON when a compliant User-Agent and contact email are supplied.

This actor does not provide legal, financial, investment, or compliance advice. Treat results as triage signals that need human or internal workflow review.

### Why Use This Actor

| Option | Best for | Network behavior | Structured output | Pricing shape |
| --- | --- | --- | --- | --- |
| SEC Filing Intelligence Monitor | Repeatable watchlist diffing and fixture-first automation | No network by default; optional capped SEC submissions fetch | Dataset rows plus JSON/Markdown report | Pay per event: $6.50 per 1,000 records |
| SEC Company Search | Manual research and single-company browsing | Live SEC website | Human-readable web pages | Free public website |
| SEC RSS and latest filings pages | Broad public filing awareness | Live SEC website/RSS | Feed entries, not normalized watchlist diffs | Free public website |
| Commercial market terminals | Full analyst workflows with bundled market data | Vendor-managed | Proprietary workflow output | Usually subscription based |

The advantage here is not replacing SEC.gov. It is converting watchlist snapshots into deterministic, API-friendly rows that can be scheduled, tested, and connected to alerting or internal review tools.

### How to Use

Minimal local-first input:

```json
{
  "fetchMode": "fixtures",
  "maxTargets": 1,
  "maxRows": 10,
  "includeReport": true
}
```

Steps:

1. Paste one or more watchlist targets into `targets`.
2. Include `previousFilings` and `currentFilings` arrays for each target.
3. Optionally include `previousFacts` and `currentFacts` for company fact comparisons.
4. Keep `fetchMode` set to `fixtures` unless you deliberately want a capped SEC submissions refresh.
5. Run the actor and consume the default dataset or the report records in the key-value store.

#### Fixture Watchlist Diff

Use this for repeatable testing, scheduled copied-data checks, and zero-network runs. Provide previous and current snapshots from your own stored state.

#### Material 8-K Review

Set `forms` to `["8-K"]` to focus on current reports. The actor raises severity when item codes indicate material events such as results of operations, officer changes, delisting notices, non-reliance, bankruptcy, or control changes.

#### Guarded SEC Submissions Refresh

Set `fetchMode` to `edgar-submissions` only when you want the actor to fetch current filing metadata from `data.sec.gov/submissions/CIK##########.json`. This mode is off by default, capped to 5 targets, sequential, and requires `secUserAgent` plus `contactEmail`. SEC states that its data APIs provide submissions history and XBRL data without API keys, and its developer FAQ asks automated tools to declare a User-Agent and stay within the current access limit. See the official SEC API page and FAQ:

- https://www.sec.gov/search-filings/edgar-application-programming-interfaces
- https://www.sec.gov/about/webmaster-frequently-asked-questions

### Input Configuration

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `targets` | array | Fixture target | Watchlist targets with CIK/ticker/company metadata and previous/current filing or fact snapshots. |
| `fetchMode` | string | `fixtures` | `fixtures` makes no network calls. `edgar-submissions` fetches capped SEC submissions JSON. |
| `forms` | string array | Common SEC forms | Forms to include in output. Base forms also match amendment forms. |
| `lookbackDays` | integer | `45` | Date window for current filings. Use `0` to disable. |
| `maxTargets` | integer | `1` | Maximum targets to process. EDGAR fetch mode is capped at 5 targets. |
| `maxFilingsPerTarget` | integer | `10` | Maximum current filings inspected per target. |
| `maxRows` | integer | `50` | Maximum charged dataset rows emitted. |
| `includeCompanyFacts` | boolean | `true` | Compare previous/current company facts when supplied. |
| `includeReport` | boolean | `true` | Write JSON and Markdown report artifacts after `executive-report-generated` is charged. |
| `dryRun` | boolean | `false` | Analyze and log counts without dataset or report output. |
| `secUserAgent` | string | empty | Required only for live SEC submissions fetch mode. |
| `contactEmail` | string | empty | Required only for live SEC submissions fetch mode. |
| `debug` | boolean | `false` | Enable detailed logs. |

### Output Format

Each charged dataset row has a flat shape:

```json
{
  "recordId": "f82e5d2ad5751f4a",
  "sourceId": "example-sec-watchlist",
  "sourceUrl": null,
  "status": "changed",
  "checkedAt": "2026-07-02T00:00:00.000Z",
  "cik": "0000000000",
  "ticker": "EXM",
  "companyName": "Example Technology Holdings (fixture)",
  "monitorType": "filing",
  "signalType": "material-event",
  "severity": "warning",
  "filingAccessionNumber": "0000000000-26-000054",
  "filingForm": "8-K",
  "filingDate": "2026-06-30",
  "acceptedAt": "2026-06-30T21:02:00Z",
  "reportDate": "2026-06-30",
  "filingUrl": null,
  "factName": null,
  "previousValue": null,
  "currentValue": null,
  "delta": null,
  "summary": "Example Technology Holdings (fixture) filed 8-K with material event item(s) Item 2.02, Item 5.02.",
  "recommendation": "Review the 8-K item language, exhibits, and affected watchlist workflows before relying on the signal.",
  "evidence": "Fixture 8-K covering results of operations and officer changes. Items: Item 2.02, Item 5.02"
}
```

When `includeReport` is true and the report event is charged, the actor also writes:

- `SEC_FILING_INTELLIGENCE_RESULTS.json`
- `SEC_FILING_INTELLIGENCE_SUMMARY.json`
- `SEC_FILING_INTELLIGENCE_REPORT.md`

### Integration Examples

#### Node.js

```js
const rows = await apifyClient.dataset(datasetId).listItems({ clean: true });
const critical = rows.items.filter((row) => row.severity === 'critical');
for (const row of critical) {
  await sendInternalAlert({
    title: row.summary,
    filingUrl: row.filingUrl,
    recommendation: row.recommendation,
  });
}
```

#### Python

```python
rows = client.dataset(dataset_id).list_items(clean=True).items
watch_rows = [row for row in rows if row["severity"] in {"critical", "warning"}]
for row in watch_rows:
    print(row["sourceId"], row["signalType"], row["summary"])
```

### Tips and Advanced Usage

#### Performance Optimization

Keep `maxTargets`, `maxFilingsPerTarget`, and `maxRows` close to the work you need. The default run intentionally processes one target and returns a tiny result set.

#### SEC Access

The default mode does not touch SEC or EDGAR. If you enable `edgar-submissions`, use a real organization/application name and contact email in `secUserAgent` and `contactEmail`. The actor fetches sequentially and only from the public SEC submissions JSON endpoint.

#### Snapshot Strategy

For recurring monitoring, store the previous run's current filings as the next run's `previousFilings`. That makes the actor a deterministic diff engine instead of a broad crawler.

### Limitations

- The default mode uses supplied filing snapshots and does not fetch SEC data unless `fetchMode` is explicitly set to `edgar-submissions`.
- The actor monitors filing metadata, form types, item hints, and company-fact changes; it does not download or interpret full filing documents by default.
- Results are monitoring and triage evidence, not investment, legal, tax, or accounting advice.
- Live SEC usage must follow SEC fair-access expectations and requires a real user agent plus contact email.

### FAQ

#### Does the default run call SEC or Apify live APIs?

No. The default input uses fixture snapshots and makes no network calls. Local runs bypass PPE charging while preserving the same control flow.

#### Can this fetch live SEC filings?

Yes, only when `fetchMode` is set to `edgar-submissions`. That mode is off by default, capped, sequential, and requires `secUserAgent` plus `contactEmail`.

#### Does this parse full filing documents?

No. It monitors filing metadata, form types, accession numbers, 8-K item hints, and supplied company fact snapshots. It does not download or interpret full filing text by default.

#### Is this financial advice?

No. Recommendations are workflow triage suggestions only. Review original filings and use your own legal, finance, or compliance process before making decisions.

#### What happens if my billing limit is reached?

The actor stops before pushing the next paid dataset row. Reports are written only after the `executive-report-generated` event is successfully charged.

### Related Actors

- API Docs Changelog Diff Monitor
- Dataset QA Auditor
- Finance News Scraper
- Earnings Call Scraper
- Web Page Change Monitor

# Actor input Schema

## `targets` (type: `array`):

SEC filing watchlist targets. In fixture mode, provide previous/current filing and fact snapshots. In EDGAR mode, each target must include a CIK.

## `fetchMode` (type: `string`):

fixtures uses only provided snapshots. edgar-submissions optionally fetches capped public submissions JSON from data.sec.gov and requires CIK, secUserAgent, and contactEmail.

## `forms` (type: `array`):

SEC forms to include. Amendment forms match either exact form names or their base forms.

## `lookbackDays` (type: `integer`):

Only return current filings accepted or filed within this many days of the run timestamp. Use 0 to disable the date filter.

## `maxItems` (type: `integer`):

Alias for Max Targets/Maximum Records used by the Junipr actor baseline. When both are provided, actor-specific limits still apply.

## `maxTargets` (type: `integer`):

Maximum watchlist targets to process. EDGAR fetch mode is additionally capped at 5 targets.

## `maxFilingsPerTarget` (type: `integer`):

Maximum current filings to inspect per target.

## `maxRows` (type: `integer`):

Maximum dataset rows to emit after sorting by severity and recency.

## `includeCompanyFacts` (type: `boolean`):

Compare previous/current company facts included in the input snapshots.

## `includeReport` (type: `boolean`):

Store JSON results, JSON summary, and a Markdown report in the default key-value store after the report-generated event is charged.

## `dryRun` (type: `boolean`):

Analyze input and log counts without pushing dataset rows or key-value-store report artifacts.

## `secUserAgent` (type: `string`):

Required only for edgar-submissions fetch mode. Use a declared application or organization name, for example My Company Research Bot.

## `contactEmail` (type: `string`):

Required only for edgar-submissions fetch mode. Added to the declared User-Agent for responsible SEC API access.

## `debug` (type: `boolean`):

Enable additional normalization and billing-flow logs.

## Actor input object example

```json
{
  "targets": [
    {
      "sourceId": "example-sec-watchlist",
      "sourceUrl": "",
      "cik": "0000000000",
      "ticker": "EXM",
      "companyName": "Example Technology Holdings (fixture)",
      "previousFilings": [
        {
          "accessionNumber": "0000000000-26-000041",
          "form": "10-Q",
          "filingDate": "2026-05-05",
          "acceptedAt": "2026-05-05T20:14:00Z",
          "reportDate": "2026-03-31",
          "primaryDocument": "exm-20260331.htm",
          "filingUrl": "",
          "items": [],
          "description": "Quarterly report for the prior fixture period."
        },
        {
          "accessionNumber": "0000000000-26-000039",
          "form": "8-K",
          "filingDate": "2026-05-01",
          "acceptedAt": "2026-05-01T12:04:00Z",
          "reportDate": "2026-05-01",
          "primaryDocument": "exm-8k.htm",
          "filingUrl": "",
          "items": [
            "Item 8.01"
          ],
          "description": "Other events fixture filing already seen in the previous snapshot."
        }
      ],
      "currentFilings": [
        {
          "accessionNumber": "0000000000-26-000054",
          "form": "8-K",
          "filingDate": "2026-06-30",
          "acceptedAt": "2026-06-30T21:02:00Z",
          "reportDate": "2026-06-30",
          "primaryDocument": "exm-20260630-8k.htm",
          "filingUrl": "",
          "items": [
            "Item 2.02",
            "Item 5.02"
          ],
          "description": "Fixture 8-K covering results of operations and officer changes."
        },
        {
          "accessionNumber": "0000000000-26-000052",
          "form": "10-Q/A",
          "filingDate": "2026-06-24",
          "acceptedAt": "2026-06-24T18:45:00Z",
          "reportDate": "2026-03-31",
          "primaryDocument": "exm-20260331-10qa.htm",
          "filingUrl": "",
          "items": [],
          "description": "Fixture amendment to quarterly report."
        },
        {
          "accessionNumber": "0000000000-26-000041",
          "form": "10-Q",
          "filingDate": "2026-05-05",
          "acceptedAt": "2026-05-05T20:14:00Z",
          "reportDate": "2026-03-31",
          "primaryDocument": "exm-20260331.htm",
          "filingUrl": "",
          "items": [],
          "description": "Quarterly report for the prior fixture period."
        }
      ],
      "previousFacts": [
        {
          "name": "Revenue",
          "value": 825000000,
          "unit": "USD",
          "period": "CY2026Q1",
          "filedAt": "2026-05-05"
        },
        {
          "name": "CashAndCashEquivalents",
          "value": 210000000,
          "unit": "USD",
          "period": "CY2026Q1",
          "filedAt": "2026-05-05"
        }
      ],
      "currentFacts": [
        {
          "name": "Revenue",
          "value": 1090000000,
          "unit": "USD",
          "period": "CY2026Q2",
          "filedAt": "2026-06-30"
        },
        {
          "name": "CashAndCashEquivalents",
          "value": 198000000,
          "unit": "USD",
          "period": "CY2026Q2",
          "filedAt": "2026-06-30"
        }
      ]
    }
  ],
  "fetchMode": "fixtures",
  "forms": [
    "8-K",
    "10-K",
    "10-Q",
    "10-K/A",
    "10-Q/A",
    "S-1",
    "S-3",
    "4",
    "SC 13D",
    "SC 13G",
    "NT 10-K",
    "NT 10-Q"
  ],
  "lookbackDays": 45,
  "maxItems": 1,
  "maxTargets": 1,
  "maxFilingsPerTarget": 10,
  "maxRows": 50,
  "includeCompanyFacts": true,
  "includeReport": true,
  "dryRun": false,
  "secUserAgent": "",
  "contactEmail": "",
  "debug": false
}
```

# Actor output Schema

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

Each dataset row is one charged SEC filing or company-fact signal with severity, evidence, and recommendation.

## `resultsJson` (type: `string`):

Full JSON array of charged dataset rows.

## `summaryJson` (type: `string`):

Run-level counts by target, signal type, form, and severity.

## `summaryReport` (type: `string`):

Markdown report with top SEC filing and company-fact watchlist signals.

# 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("junipr/sec-filing-intelligence-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("junipr/sec-filing-intelligence-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 '{}' |
apify call junipr/sec-filing-intelligence-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/0RDwqgZkRatLQxcek/builds/1ewXI8cVeYWd45igN/openapi.json
