# EDGAR Intelligence — SEC Filings, AI Forecasts & Analysis (`datasiphon/sec-edgar-poller`) Actor

Monitor 30+ SEC filing types, forecast revenue with AI, and get plain-English analysis of material events. Built for VC, PE, hedge funds, corp dev, and family offices.

- **URL**: https://apify.com/datasiphon/sec-edgar-poller.md
- **Developed by:** [Kashif Ali](https://apify.com/datasiphon) (community)
- **Categories:** Automation, News
- **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/actors/running/actors-in-store.md#pay-per-usage

## 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

## EDGAR Intelligence — SEC Monitoring That Finds What Moves Markets

> Monitor 30+ SEC filing types across your entire portfolio. Turn on forecasts to see where revenue is going. Turn on AI analysis to get a one-paragraph summary of every material event. All from one input.

***

**An 8-K landed at 2:14 PM last Thursday.**

A PE analyst had 3 hours before the Monday morning investment committee meeting. The filing disclosed a material contract loss at a portfolio company. Without it, the team would have walked into that meeting with stale numbers.

**EDGAR Intelligence catches what manual tracking misses.**

Pick a company, a search term, or just watch the SEC's live feed. The Actor ingests filings across 30+ form types — 8-K, 10-K, 10-Q, Form D, S-1, 13-F — and returns structured JSON with full text.

**Need to know where revenue is heading?**

Turn on TimesFM forecasting. The model reads 8–12 quarters of history and returns a probability-weighted range for the next year. No spreadsheet modeling. No manual data entry.

**Need to know what an 8-K actually says — in one paragraph?**

Turn on AI analysis. An 8-K about a director resignation becomes:

> *"The CFO resigned effective immediately; no replacement named. Material risk of leadership vacuum during Q3 fundraising."*

Not 20 pages. One paragraph.

***

#### This is built for:

→ VC associates covering 100+ portfolio companies\
→ PE analysts running quarterly monitoring\
→ Hedge fund teams tracking every position\
→ Corp dev scanning for acquisition targets\
→ Family offices keeping a pulse on holdings

#### This is NOT built for:

→ Engineers who want to build their own SEC pipeline\
→ PDF readers who prefer 20-page filings to one-paragraph summaries

***

#### Setup takes 60 seconds.

1. Paste your EDGAR identity (required by the SEC)
2. Pick your mode — company filings, RSS feed, manual CIK search, or full-text search
3. Toggle forecasts and AI analysis on or off
4. Run

Output lands as clean JSON. Every filing. Every enrichment. One call's worth of work.

> *"I've been manually checking EDGAR for 6 years. This does in 60 seconds what took me 3 hours a week."* — PE Analyst at a $3B fund

***

#### Run it on Apify now.

**Free tier:** 50 filings total per user, one-time trial. After that, contact `kashif@dialnorth.com` for unlimited access.

First run is free. No subscription commitment. No setup call.

***

### Appendix — Technical Summary

#### Modes

| Mode | What it does |
|------|-------------|
| `latest_feed` | Poll SEC EDGAR RSS for recent filings |
| `company_search` | Fetch filings by ticker / CIK / company name |
| `form_specific` | Focus on one form type with filters |
| `full_text_search` | Search EDGAR full-text index by keyword |

#### Output Fields

| Field | Description |
|-------|-------------|
| `form_type` | SEC form type |
| `company_name` | Issuer name |
| `cik` | 10-digit SEC CIK |
| `filing_date` | Date filed |
| `accession_number` | SEC accession (unique ID) |
| `filing_text` | Full text extracted and cleaned |
| `structured_data` | Filing-specific typed data |
| `forecast_data` | TimesFM predictions (if enabled) |
| `semantic_analysis` | AI-written summary + impact rating (if enabled) |
| `edgar_tools_version` | Actor version |

#### SEC Compliance

- `set_identity()` called before every SEC request
- Rate-limited (1 req/100ms) via edgartools
- User-Agent set from `edgarIdentity`

#### License

MIT

***

*Built by Keystone Revenue Systems*

# Actor input Schema

## `edgarIdentity` (type: `string`):

Your name and email for SEC EDGAR compliance. Format: 'Your Name / your.email@domain.com'. Required by SEC policy — the Actor will not start without this.

## `mode` (type: `string`):

What to fetch. 'latest\_feed' polls SEC for recent filings (default). 'company\_search' fetches filings for specified companies (tickers/CIKs/name). 'form\_specific' focuses on one form type. 'full\_text\_search' queries EDGAR's full-text index by keyword.

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

SEC form types to poll or search. Used in latest\_feed and company\_search modes.

## `formType` (type: `string`):

Single form type for form\_specific mode.

## `searchType` (type: `string`):

How to identify companies in company\_search mode.

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

Stock ticker symbols for company\_search mode (e.g., AAPL, MSFT, TSLA).

## `ciks` (type: `array`):

SEC Central Index Key numbers (10-digit). Used in company\_search mode.

## `companyName` (type: `string`):

Search by company name (partial match). Used in company\_search mode.

## `searchQuery` (type: `string`):

Keyword or phrase for full\_text\_search mode. Supports AND/OR/NOT and quotes.

## `datePreset` (type: `string`):

Quick date range selector. Overrides dateFrom/dateTo.

## `dateFrom` (type: `string`):

Start date. Overridden by datePreset.

## `dateTo` (type: `string`):

End date. Overridden by datePreset.

## `maxFilings` (type: `integer`):

Maximum number of filings to return. In company\_search mode, this is per-company. Max 1000.

## `includeFilingText` (type: `boolean`):

Fetch and include the cleaned text of each filing.

## `maxTextLength` (type: `integer`):

Maximum characters of filing text per record.

## `includeStructuredData` (type: `boolean`):

Parse structured data via edgartools (typed objects per form type).

## `outputFormat` (type: `string`):

Preferred output format.

## `incrementalMode` (type: `boolean`):

Only return filings newer than the last run. Uses Apify KV Store.

## `delaySeconds` (type: `number`):

Seconds to wait between filing fetches. SEC recommends 1 req/100ms.

## `proxyConfiguration` (type: `object`):

Proxy settings. SEC EDGAR does not require proxies.

## `enablePredictiveForecast` (type: `boolean`):

\[v2.0] Run Google TimesFM AI on 10-K/10-Q financial data to predict next 4 quarters of revenue. Requires timesfm\[torch] to be installed (see README). Can use significant memory (~2 GB).

## `forecastHorizon` (type: `integer`):

Number of future quarters to forecast. TimesFM supports up to 256 periods, but 4 is standard for next-year outlook.

## `openRouterApiKey` (type: `string`):

\[v2.2] OpenRouter API key for AI narrative analysis of filings (8-K summaries, Form D round classification, forecast commentary). Defaults to free Llama 3.1 70B model. Get a free key at openrouter.ai/keys. Falls back to OPENROUTER\_API\_KEY env var if not provided.

## `enableSemanticAnalysis` (type: `boolean`):

\[v2.2] Generate AI-powered narrative analysis for filings using OpenRouter (free tier available). Produces filing summaries, material impact assessments, and forecast commentary. Requires openRouterApiKey or OPENROUTER\_API\_KEY env var.

## Actor input object example

```json
{
  "edgarIdentity": "Kashif / kashif@dialnorth.com",
  "mode": "latest_feed",
  "formTypes": [
    "D",
    "8-K"
  ],
  "formType": "4",
  "searchType": "ticker",
  "tickers": [
    "AAPL"
  ],
  "ciks": [],
  "companyName": "",
  "searchQuery": "artificial intelligence",
  "datePreset": "",
  "dateFrom": "",
  "dateTo": "",
  "maxFilings": 100,
  "includeFilingText": true,
  "maxTextLength": 8000,
  "includeStructuredData": true,
  "outputFormat": "json",
  "incrementalMode": false,
  "delaySeconds": 1,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "enablePredictiveForecast": false,
  "forecastHorizon": 4,
  "enableSemanticAnalysis": false
}
```

# Actor output Schema

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

All retrieved SEC filing records with optional forecast and semantic analysis fields.

## `forecastView` (type: `string`):

10-K/10-Q filings with TimesFM AI financial forecasts (when enabled).

## `semanticView` (type: `string`):

Filings with Groq AI-generated narrative analysis (when enabled).

# 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 = {
    "edgarIdentity": "Kashif / kashif@dialnorth.com",
    "mode": "latest_feed",
    "formTypes": [
        "D",
        "8-K"
    ],
    "formType": "4",
    "searchType": "ticker",
    "tickers": [
        "AAPL"
    ],
    "searchQuery": "artificial intelligence",
    "datePreset": "",
    "outputFormat": "json"
};

// Run the Actor and wait for it to finish
const run = await client.actor("datasiphon/sec-edgar-poller").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 = {
    "edgarIdentity": "Kashif / kashif@dialnorth.com",
    "mode": "latest_feed",
    "formTypes": [
        "D",
        "8-K",
    ],
    "formType": "4",
    "searchType": "ticker",
    "tickers": ["AAPL"],
    "searchQuery": "artificial intelligence",
    "datePreset": "",
    "outputFormat": "json",
}

# Run the Actor and wait for it to finish
run = client.actor("datasiphon/sec-edgar-poller").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 '{
  "edgarIdentity": "Kashif / kashif@dialnorth.com",
  "mode": "latest_feed",
  "formTypes": [
    "D",
    "8-K"
  ],
  "formType": "4",
  "searchType": "ticker",
  "tickers": [
    "AAPL"
  ],
  "searchQuery": "artificial intelligence",
  "datePreset": "",
  "outputFormat": "json"
}' |
apify call datasiphon/sec-edgar-poller --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datasiphon/sec-edgar-poller"
        }
    }
}

```

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/PfRBXMswdXjoKdKIg/builds/UJOhf1CAbH3F1mSNc/openapi.json
