# SEC EDGAR Filings Scraper — Full-Text Search & Company Filings (`grilled_gorge/sec-edgar-filings-scraper`) Actor

Unofficial tool for searching SEC EDGAR filings and exporting structured public metadata. Not affiliated with or endorsed by the U.S. Securities and Exchange Commission.

- **URL**: https://apify.com/grilled\_gorge/sec-edgar-filings-scraper.md
- **Developed by:** [Jonathan Willburry](https://apify.com/grilled_gorge) (community)
- **Categories:** Automation, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 result items

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

### What does SEC EDGAR Filings Scraper do?

> **Unofficial and independent:** This Actor is not affiliated with, sponsored by, or endorsed by the U.S. Securities and Exchange Commission.

**SEC EDGAR Filings Scraper** searches the official [SEC EDGAR](https://www.sec.gov/edgar/search/) database and exports structured filing metadata. Find filings by full-text phrase, form type, date range, ticker, or CIK without managing authentication, pagination, or SEC archive URLs yourself.

Run it manually, schedule recurring searches on Apify, call it through the API, or connect its dataset to tools such as Make, Zapier, Google Drive, and webhooks. The Actor uses public SEC endpoints, observes SEC fair-access limits, and does not require a proxy or API key.

### Why use SEC EDGAR Filings Scraper?

- Monitor 8-K, 10-K, 10-Q, S-1, and other filing types.
- Research mentions of products, risks, industries, or technologies across filing contents.
- Track recent filings for a list of public companies.
- Export consistent filing links and metadata instead of processing SEC response formats.
- Feed filing records into dashboards, alerts, spreadsheets, or data pipelines.

### Ready-to-run examples

- [Track SEC 8-K filings mentioning AI](https://apify.com/grilled_gorge/sec-edgar-filings-scraper/examples/track-8k-filings-artificial-intelligence)
- [Get 10-K annual reports by ticker](https://apify.com/grilled_gorge/sec-edgar-filings-scraper/examples/get-10k-annual-reports-by-ticker)
- [Monitor new S-1 IPO filings on SEC EDGAR](https://apify.com/grilled_gorge/sec-edgar-filings-scraper/examples/monitor-s1-ipo-filings)

Each example opens with a working configuration that you can copy and adjust.

### How to use SEC EDGAR Filings Scraper

1. Open the Actor and select **Try for free**.
2. Keep the default full-text search or enter your own phrase.
3. Optionally select form types and a filing-date range.
4. To use company mode, add ticker symbols or CIKs under **Companies**. Company mode takes precedence over full-text search.
5. Set the maximum number of filings and start the run.
6. Open the Dataset tab to preview or export the results.

### Input

| Field              | Description                                                                                  |
| ------------------ | -------------------------------------------------------------------------------------------- |
| `searchQuery`      | Full-text phrase used when `companies` is empty.                                             |
| `forms`            | SEC form types to include; empty means all forms.                                            |
| `startDate`        | Optional first filing date in `YYYY-MM-DD` format.                                           |
| `endDate`          | Optional last filing date in `YYYY-MM-DD` format.                                            |
| `companies`        | Ticker symbols or CIKs for company mode.                                                     |
| `userAgentContact` | Optional organization and contact for the declared SEC User-Agent. Stored as a secret input. |
| `maxItems`         | Maximum number of dataset records, from 1 to 10,000.                                         |

Example company-mode input:

```json
{
    "searchQuery": "",
    "forms": ["10-K"],
    "companies": ["AAPL"],
    "maxItems": 5
}
```

### Output

Each dataset item represents one filing or one matching filing document. This example came from a live full-text search against SEC EDGAR:

```json
{
    "accessionNumber": "0001683168-20-000837",
    "cik": "0000790526",
    "companyName": "RadNet, Inc.",
    "tickers": ["RDNT"],
    "formType": "8-K",
    "filedAt": "2020-03-16",
    "periodEnding": "2020-03-13",
    "items": ["8.01", "9.01"],
    "fileType": "EX-99.1",
    "fileDescription": "TRANSCRIPT OF CONFERENCE CALL",
    "sicCode": "8071",
    "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/790526/000168316820000837/",
    "filingUrl": "https://www.sec.gov/Archives/edgar/data/790526/000168316820000837/radnet_8k-ex9901.htm",
    "query": "artificial intelligence",
    "scrapedAt": "2026-07-18T08:55:40.181Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field                                 | Meaning                                            |
| ------------------------------------- | -------------------------------------------------- |
| `accessionNumber`                     | SEC accession number.                              |
| `cik`                                 | Ten-digit Central Index Key.                       |
| `companyName`, `tickers`              | Filer identity and available ticker symbols.       |
| `formType`, `filedAt`, `periodEnding` | Filing classification and dates.                   |
| `items`                               | Reported item codes, commonly used by 8-K filings. |
| `fileType`, `fileDescription`         | Matching document metadata when available.         |
| `sicCode`                             | Standard Industrial Classification code.           |
| `filingIndexUrl`, `filingUrl`         | Direct links into the official SEC archive.        |
| `query`, `scrapedAt`                  | Source criterion and collection timestamp.         |

### How much does it cost to search SEC EDGAR filings?

The Actor uses lightweight official API requests and no paid proxies. Pricing is pay-per-event: one start event plus one result event for each saved filing. Check the Pricing tab before starting a run; limiting `maxItems` gives you direct control over the maximum result charges.

### Tips and advanced options

- Use quoted phrases for precise full-text searches.
- Combine a focused phrase with specific forms and dates to reduce irrelevant matches.
- Use ticker symbols for convenience or CIKs for unambiguous company selection.
- For recurring monitoring, schedule the Actor and use a narrow date range.
- Supply a business contact in `userAgentContact` when your organization requires its own SEC request identity.

### FAQ, disclaimers, and support

#### Does this Actor need SEC credentials?

No. It reads public SEC EDGAR endpoints that do not require authentication.

#### Why can a full-text result point to an exhibit?

SEC full-text search matches filing contents and attachments. `filingUrl` therefore identifies the matching document, while `filingIndexUrl` identifies its filing archive directory.

#### Are all historical company filings returned?

Company mode uses the SEC submissions endpoint's recent-filings collection. Use full-text mode for broader document discovery.

Public filing data can contain errors or later amendments and is not investment, legal, or accounting advice. Respect applicable laws and SEC policies when using or redistributing results. For bugs, feature requests, or custom solutions, use the Actor's Issues tab.

# Actor input Schema

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

Text to find in SEC filing contents when no companies are specified.

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

Form types such as 8-K, 10-K, 10-Q, or S-1. Leave empty for all forms.

## `startDate` (type: `string`):

Optional first filing date in YYYY-MM-DD format.

## `endDate` (type: `string`):

Optional last filing date in YYYY-MM-DD format.

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

Ticker symbols or CIKs. When set, the Actor returns recent filings for these companies instead of full-text results.

## `userAgentContact` (type: `string`):

Optional organization name and contact address for the SEC User-Agent header.

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

Maximum number of dataset items for the run.

## Actor input object example

```json
{
  "searchQuery": "artificial intelligence",
  "forms": [
    "8-K"
  ],
  "startDate": "",
  "endDate": "",
  "companies": [],
  "maxItems": 100
}
```

# Actor output Schema

## `dataset` (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 = {
    "searchQuery": "artificial intelligence",
    "forms": [
        "8-K"
    ],
    "companies": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("grilled_gorge/sec-edgar-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 = {
    "searchQuery": "artificial intelligence",
    "forms": ["8-K"],
    "companies": [],
}

# Run the Actor and wait for it to finish
run = client.actor("grilled_gorge/sec-edgar-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 '{
  "searchQuery": "artificial intelligence",
  "forms": [
    "8-K"
  ],
  "companies": []
}' |
apify call grilled_gorge/sec-edgar-filings-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/7w2Hk9hDaVOlgNUB2/builds/niV8yyz8ki3fLDqbA/openapi.json
