# SEC EDGAR Filings Monitor – 8-K, 10-K, 10-Q, S-1, 13F API (`kobakotools/pubdata-sec-edgar-filings`) Actor

Monitor new SEC EDGAR filings by ticker, CIK, form type or full-text keywords. Returns form, 8-K items with descriptions, dates and direct document links from the official SEC APIs. Monitoring mode returns only new filings.

- **URL**: https://apify.com/kobakotools/pubdata-sec-edgar-filings.md
- **Developed by:** [Rin Washi](https://apify.com/kobakotools) (community)
- **Categories:** Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 filing results

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## SEC EDGAR Filings Monitor – 8-K, 10-K, 10-Q, S-1, 13F API

### What does SEC EDGAR Filings Monitor do?

It watches **SEC EDGAR** for new filings from the companies you choose (by **ticker or CIK**) or from all companies
(by **form type** and **full-text keywords**), and returns one clean row per filing: company, tickers, form,
8-K items with plain-English descriptions, filing and period dates, and **direct links** to the document and the filing index.
Everything comes from the official SEC APIs (`data.sec.gov` submissions and EDGAR full-text search).

### Why use it?

- **Monitoring built in.** Turn on `Only new filings` and schedule it: each run returns (and charges for) filings you have not received yet.
- **8-K items explained.** `2.02` becomes "Results of Operations and Financial Condition", `5.02` "Departure/Election of Directors or Officers…".
- **Tickers or CIKs.** `AAPL`, `BRK.B` or `320193` all work; tickers are resolved with SEC's official `company_tickers.json`.
- **Full-text keyword search** across all filers (e.g. "going concern", "material weakness", "data center") with form and date filters.
- **Direct links** to the primary document and the filing index — ready for alerts, Slack, Sheets or an AI agent.
- **SEC fair-access compliant.** ≤ 5 requests/second (SEC allows 10), a declared User-Agent, automatic retries with backoff.
- **Low, flat price.** $1.50 per 1,000 filings.

### How to use

1. Enter tickers or CIKs in `companies` (or leave empty to search all companies).
2. Choose `formTypes` (default 8-K, 10-K, 10-Q). `13F` expands to 13F-HR and 13F-NT. Amendments (/A) are included by default.
3. Optionally add `keywords` for full-text search and a date range (`lookbackDays` or `dateFrom`/`dateTo`).
4. Optionally enter your `contactEmail`; SEC asks automated tools to identify themselves.
5. Run, or schedule (e.g. hourly/daily) with `onlyNew` on and one `stateKey` per watchlist.

### Input example

```json
{
  "companies": ["AAPL", "MSFT", "NVDA", "TSLA"],
  "formTypes": ["8-K", "10-Q", "10-K", "S-1"],
  "includeAmendments": true,
  "lookbackDays": 30,
  "maxItems": 100,
  "onlyNew": true,
  "stateKey": "big-tech-watchlist"
}
```

Full-text example (all companies): `{"companies": [], "keywords": ["material weakness"], "formTypes": ["10-K", "10-Q"], "lookbackDays": 7}`

### Output example

```json
{
  "id": "0000320193-26-000030",
  "source": "SEC EDGAR",
  "accession_number": "0000320193-26-000030",
  "cik": "0000320193",
  "company_name": "Apple Inc.",
  "tickers": ["AAPL"],
  "sic": "3571",
  "sic_description": "Electronic Computers",
  "form": "8-K",
  "items": ["2.02", "9.01"],
  "items_description": ["Results of Operations and Financial Condition", "Financial Statements and Exhibits"],
  "filing_date": "2026-09-10",
  "report_date": "2026-09-09",
  "accepted_at": "2026-09-10T20:30:00.000Z",
  "primary_document": "aapl-8k.htm",
  "document_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000030/aapl-8k.htm",
  "filing_index_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000030/0000320193-26-000030-index.htm",
  "is_xbrl": true,
  "size_bytes": 12345,
  "fetched_at": "2026-09-21T06:00:00Z"
}
```

In full-text mode `accepted_at`, `sic_description`, `is_xbrl` and `size_bytes` are `null` (not provided by that API).

### Pricing

Pay per event: **$0.0015 per saved filing ($1.50 per 1,000)** plus Apify's tiny default start fee.
Set **Max cost per run** in the run options; the Actor stops cleanly at your limit and keeps what it saved.

### Data source and license

U.S. Securities and Exchange Commission, EDGAR (`data.sec.gov`, `efts.sec.gov`, `www.sec.gov/Archives`).
EDGAR filings are public U.S. government records. Access follows the SEC's fair access policy
(max 10 requests/second, declared User-Agent). This Actor is not affiliated with or endorsed by the SEC.

### Limitations

- Company mode checks the "recent" filing history the SEC publishes per company (at least one year or 1,000 filings); `lookbackDays` is capped at 365.
- Full-text search covers documents indexed by EDGAR full-text search (2001 onward) and returns at most 10,000 documents per query.
- Filing contents (financial statements, exhibits) are linked, not downloaded.

### Personal data

Forms that report individuals' holdings or trades (**3, 4, 5, 144, SC 13D, SC 13G**) are not supported, and filers that
look like individuals are skipped. Company addresses and phone numbers are not output.

### Your responsibility

You are responsible for using the data in line with SEC policies and applicable law. Not investment advice.

### AI disclosure

This Actor's code and description were created with generative AI (Claude) and are verified by automated tests.

### Changelog

- 1.0 – First release: ticker/CIK watchlists, full-text search, 8-K item descriptions, monitoring mode, PPE pricing.

# Actor input Schema

## `companies` (type: `array`):

Tickers like AAPL, BRK.B or CIK numbers like 320193. Empty = all companies (uses EDGAR full-text search).

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

E.g. 8-K, 10-K, 10-Q, S-1, 20-F, 6-K, 13F-HR, DEF 14A, D. '13F' means 13F-HR + 13F-NT. Insider forms (3, 4, 5, 144, SC 13D/G) are not supported because they identify individuals.

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

Also return amended filings such as 8-K/A and 10-K/A.

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

Match filings whose text contains any of these words or phrases (EDGAR full-text search, filings since 2001).

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

Used when 'Filed from' is empty.

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

Optional start date.

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

Optional end date (default: today).

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

Maximum filings to save. Each saved filing is one billable result.

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

SEC asks automated tools to declare a contact in the User-Agent header. If set, your e-mail is used; otherwise the Actor's operator contact is used. Sent only to sec.gov.

## `onlyNew` (type: `boolean`):

Return only filings not returned by earlier runs with the same state key. Use with a schedule.

## `stateKey` (type: `string`):

Name of the memory used by 'Only new filings'. Use one key per watchlist.

## Actor input object example

```json
{
  "companies": [
    "AAPL",
    "MSFT",
    "NVDA"
  ],
  "formTypes": [
    "8-K",
    "10-K",
    "10-Q"
  ],
  "includeAmendments": true,
  "keywords": [],
  "lookbackDays": 30,
  "maxItems": 20,
  "onlyNew": false,
  "stateKey": "default"
}
```

# Actor output Schema

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

All items saved by this run (the default dataset).

# 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 = {
    "companies": [
        "AAPL",
        "MSFT",
        "NVDA"
    ],
    "formTypes": [
        "8-K",
        "10-K",
        "10-Q"
    ],
    "lookbackDays": 30,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("kobakotools/pubdata-sec-edgar-filings").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 = {
    "companies": [
        "AAPL",
        "MSFT",
        "NVDA",
    ],
    "formTypes": [
        "8-K",
        "10-K",
        "10-Q",
    ],
    "lookbackDays": 30,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("kobakotools/pubdata-sec-edgar-filings").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 '{
  "companies": [
    "AAPL",
    "MSFT",
    "NVDA"
  ],
  "formTypes": [
    "8-K",
    "10-K",
    "10-Q"
  ],
  "lookbackDays": 30,
  "maxItems": 20
}' |
apify call kobakotools/pubdata-sec-edgar-filings --silent --output-dataset

```

## MCP server setup

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

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/foXxdmF8ZlRz9ahTw/builds/sZRFpwh2l6Z3hVmxU/openapi.json
