# SEC EDGAR Company Filings Scraper (`fetch_cat/sec-edgar-company-filings-scraper`) Actor

Extract SEC EDGAR filing metadata by ticker or CIK with form/date filters, accession numbers, company fields, and direct SEC document URLs.

- **URL**: https://apify.com/fetch\_cat/sec-edgar-company-filings-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Business, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 96.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.03 / 1,000 filing metadata rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 EDGAR Company Filings Scraper

Export SEC EDGAR filing metadata by ticker or CIK, including form type, filing dates, accession numbers, company identifiers, and direct SEC filing document URLs.

Use this Actor when you need a repeatable CSV, JSON, Excel, API, or AI-agent feed of public SEC filings for investment research, compliance monitoring, competitive intelligence, or financial-data workflows.

### What Does SEC EDGAR Company Filings Scraper Do?

SEC EDGAR Company Filings Scraper looks up public company submissions on SEC EDGAR and saves matching filing rows.

- **Search by ticker or CIK**: use symbols such as `AAPL`, `MSFT`, or identifiers such as `0000320193`.
- **Filter form types**: collect `10-K`, `10-Q`, `8-K`, `Form 4`, `S-1`, or any other SEC form values.
- **Filter by filing date**: limit results with `dateFrom` and `dateTo`.
- **Export document links**: include SEC filing detail URLs and primary document URLs when available.
- **Use as an API feed**: run from Apify API, schedules, webhooks, or the official Apify MCP server.

### Ready-to-run examples

- [Create Blue Chip Filings Dataset](https://apify.com/fetch_cat/sec-edgar-company-filings-scraper/examples/create-blue-chip-filings-dataset)
- [Find Recent All Forms For Disney](https://apify.com/fetch_cat/sec-edgar-company-filings-scraper/examples/find-recent-all-forms-for-disney)
- [Track Salesforce Sec Filings Without Document Links](https://apify.com/fetch_cat/sec-edgar-company-filings-scraper/examples/track-salesforce-sec-filings-without-document-links)
- [Monitor Airline 10 K Filings](https://apify.com/fetch_cat/sec-edgar-company-filings-scraper/examples/monitor-airline-10-k-filings)
- [Collect Semiconductor Sec Filings](https://apify.com/fetch_cat/sec-edgar-company-filings-scraper/examples/collect-semiconductor-sec-filings)
- [Build Faang Filing Feed](https://apify.com/fetch_cat/sec-edgar-company-filings-scraper/examples/build-faang-filing-feed)

[View all ready-to-run examples](https://apify.com/fetch_cat/sec-edgar-company-filings-scraper/examples)

### Input Example

```json
{
  "tickersOrCiks": ["AAPL", "MSFT"],
  "forms": ["10-K", "10-Q", "8-K"],
  "dateFrom": "2024-01-01",
  "maxFilingsPerCompany": 20,
  "includeDocuments": true,
  "requestDelayMs": 120
}
```

### Output Example

```json
{
  "cik": "0000320193",
  "ticker": "AAPL",
  "companyName": "Apple Inc.",
  "sic": "3571",
  "sicDescription": "Electronic Computers",
  "form": "10-Q",
  "filingDate": "2026-05-01",
  "reportDate": "2026-03-28",
  "accessionNumber": "0000320193-26-000000",
  "primaryDocument": "aapl-20260328.htm",
  "filingDetailUrl": "https://www.sec.gov/Archives/edgar/data/320193/...",
  "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/.../aapl-20260328.htm",
  "isXbrl": true,
  "items": "2.02, 9.01"
}
```

### Who Is It For?

| User | Use case |
| --- | --- |
| Investors and analysts | Build a feed of 10-K, 10-Q, 8-K, S-1, or Form 4 filings. |
| Compliance teams | Monitor filing activity for companies, issuers, or peer groups. |
| Market researchers | Compare filing cadence across sectors, competitors, or watchlists. |
| Data teams | Export EDGAR metadata to warehouses, notebooks, dashboards, or alerts. |
| AI agents | Retrieve recent filings through Apify API or MCP and summarize filing activity. |

### Input settings

| Setting | JSON key | Type / default | Description |
| --- | --- | --- | --- |
| Tickers or CIKs | `tickersOrCiks` | array, default `["AAPL","MSFT"]` | Stock tickers or SEC CIK identifiers to look up. Examples: AAPL, MSFT, 0000320193. |
| Form types | `forms` | array, default `["10-K","10-Q","8-K"]` | Optional SEC form filters. Leave empty to return all recent filing types. |
| Filed on or after | `dateFrom` | string, default `"2024-01-01"` | Optional filing date lower bound in YYYY-MM-DD format. |
| Filed on or before | `dateTo` | string | Optional filing date upper bound in YYYY-MM-DD format. |
| Maximum filings per company | `maxFilingsPerCompany` | integer, default `20` | Maximum matching filings to save for each ticker or CIK. |
| Include primary document URLs | `includeDocuments` | boolean, default `true` | Add direct URLs to primary filing documents when available. |
| Delay between company requests (ms) | `requestDelayMs` | integer, default `120` | Polite delay between SEC company requests. Keep this at 100ms or higher for larger lists. |

### Output fields

| JSON key | Label | Type | Description |
| --- | --- | --- | --- |
| `cik` | Cik | string | Output field for cik. |
| `ticker` | Ticker | string / null | Output field for ticker. |
| `companyName` | CompanyName | string | Output field for companyname. |
| `sic` | Sic | string / null | Output field for sic. |
| `sicDescription` | SicDescription | string / null | Output field for sicdescription. |
| `form` | Form | string | Output field for form. |
| `filingDate` | FilingDate | string | Output field for filingdate. |
| `reportDate` | ReportDate | string / null | Output field for reportdate. |
| `accessionNumber` | AccessionNumber | string | Output field for accessionnumber. |
| `primaryDocument` | PrimaryDocument | string / null | Output field for primarydocument. |
| `filingDetailUrl` | FilingDetailUrl | string | Output field for filingdetailurl. |
| `documentUrl` | DocumentUrl | string / null | Output field for documenturl. |
| `fileNumber` | FileNumber | string / null | Output field for filenumber. |
| `filmNumber` | FilmNumber | string / null | Output field for filmnumber. |
| `acceptanceDateTime` | AcceptanceDateTime | string / null | Output field for acceptancedatetime. |
| `isXbrl` | IsXbrl | boolean / null | Output field for isxbrl. |
| `items` | Items | string / null | Output field for items. |

### Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

| Event | What is charged | Price |
| --- | --- | ---: |
| `start` | One-time fee per run | $0.005 |

| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| `item` | Per SEC filing metadata row produced | $0.0575 / 1,000 | $0.05 / 1,000 | $0.039 / 1,000 | $0.03 / 1,000 | $0.02 / 1,000 | $0.014 / 1,000 |

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

### Tips For Better Results

- **Use CIKs for precision**: tickers can change, while CIKs are stable SEC identifiers.
- **Filter forms when possible**: `forms` keeps datasets focused and reduces noise.
- **Use date windows**: `dateFrom` and `dateTo` help create clean monthly, quarterly, or event-specific exports.
- **Keep polite delays**: SEC requests should be paced; avoid setting `requestDelayMs` too low for large company lists.
- **Remember the scope**: this Actor exports filing metadata and document links, not full parsed filing text.

### API usage

Run SEC EDGAR Company Filings Scraper from your own code with the Apify API.

**Node.js**

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
  "tickersOrCiks": [
    "AAPL",
    "MSFT"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "dateFrom": "2024-01-01",
  "dateTo": "2026-07-08",
  "maxFilingsPerCompany": 20
};

const run = await client.actor('fetch_cat/sec-edgar-company-filings-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**Python**

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/sec-edgar-company-filings-scraper").call(run_input={
  "tickersOrCiks": [
    "AAPL",
    "MSFT"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "dateFrom": "2024-01-01",
  "dateTo": "2026-07-08",
  "maxFilingsPerCompany": 20
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
```

**cURL**

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~sec-edgar-company-filings-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tickersOrCiks":["AAPL","MSFT"],"forms":["10-K","10-Q","8-K"],"dateFrom":"2024-01-01","dateTo":"2026-07-08","maxFilingsPerCompany":20}'
```

### Use with AI agents via MCP

SEC EDGAR Company Filings Scraper can be used by AI assistants through the hosted Apify MCP server.

**Claude Code setup**

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/sec-edgar-company-filings-scraper"
```

**Claude Desktop, Cursor, or VS Code JSON config**

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/sec-edgar-company-filings-scraper"
    }
  }
}
```

**Example prompts**

- "Run SEC EDGAR Company Filings Scraper with this input JSON and summarize the dataset."
- "Export the latest SEC EDGAR Company Filings Scraper results to a table I can review."
- "Schedule this Actor for monitoring and tell me what changed between runs."

### Limits And Notes

- The Actor reads public SEC EDGAR data and should be used with reasonable request pacing.
- Ticker lookup depends on available SEC company mapping; CIK input is more precise.
- `documentUrl` can be empty when a primary document is unavailable or `includeDocuments` is disabled.
- Filing metadata can change when SEC updates company submissions.

### FAQ

#### Can I scrape full SEC filing text?

This Actor saves filing metadata and URLs to SEC documents. Use the `documentUrl` to fetch or process full filing documents in a separate workflow.

#### Can I export filings to CSV or Excel?

Yes. After the run, export the dataset from Apify as CSV, Excel, JSON, XML, or RSS.

#### Does this require an SEC login?

No. It uses public SEC EDGAR data.

#### Is this a SEC EDGAR API alternative?

It can serve as a practical API-style export for common EDGAR filing metadata workflows through Apify API, schedules, webhooks, datasets, and MCP.

### Related actors

- [Agoda Reviews Scraper](https://apify.com/fetch_cat/agoda-reviews-scraper)
- [AliExpress Products Scraper](https://apify.com/fetch_cat/aliexpress-products-scraper)
- [arXiv Paper Search Scraper](https://apify.com/fetch_cat/arxiv-paper-search-scraper)
- [CoinMarketCap Crypto Prices Scraper](https://apify.com/fetch_cat/coinmarketcap-crypto-prices-scraper)
- [Cron Expression Parser & Validator](https://apify.com/fetch_cat/cron-expression-parser)

### Support

Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.

### Changelog

#### 0.1

- Initial public release.

### Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses the inputs you provide and the public records needed to produce the documented dataset to produce the output dataset and sends requests to SEC EDGAR public pages/APIs; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

# Actor input Schema

## `tickersOrCiks` (type: `array`):

Stock tickers or SEC CIK identifiers to look up. Examples: AAPL, MSFT, 0000320193.

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

Optional SEC form filters. Leave empty to return all recent filing types.

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

Optional filing date lower bound in YYYY-MM-DD format.

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

Optional filing date upper bound in YYYY-MM-DD format.

## `maxFilingsPerCompany` (type: `integer`):

Maximum matching filings to save for each ticker or CIK.

## `includeDocuments` (type: `boolean`):

Add direct URLs to primary filing documents when available.

## `requestDelayMs` (type: `integer`):

Polite delay between SEC company requests. Keep this at 100ms or higher for larger lists.

## Actor input object example

```json
{
  "tickersOrCiks": [
    "AAPL",
    "MSFT"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "dateFrom": "2024-01-01",
  "maxFilingsPerCompany": 20,
  "includeDocuments": true,
  "requestDelayMs": 120
}
```

# Actor output Schema

## `overview` (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 = {
    "tickersOrCiks": [
        "AAPL",
        "MSFT"
    ],
    "forms": [
        "10-K",
        "10-Q",
        "8-K"
    ],
    "dateFrom": "2024-01-01"
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/sec-edgar-company-filings-scraper").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 = {
    "tickersOrCiks": [
        "AAPL",
        "MSFT",
    ],
    "forms": [
        "10-K",
        "10-Q",
        "8-K",
    ],
    "dateFrom": "2024-01-01",
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/sec-edgar-company-filings-scraper").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 '{
  "tickersOrCiks": [
    "AAPL",
    "MSFT"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "dateFrom": "2024-01-01"
}' |
apify call fetch_cat/sec-edgar-company-filings-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/TXM5TvaNIxzQwqCuR/builds/aiRdxZYheYY9WyoyP/openapi.json
