# SEC EDGAR Filing Search Pro (`red.cars/sec-edgar-filing-search-pro`) Actor

Full-text search across every SEC EDGAR filing (10-K, 10-Q, 8-K, S-1 and more) by keyword, company and date range. Clean JSON rows with accession numbers and filing links. No API key needed.

- **URL**: https://apify.com/red.cars/sec-edgar-filing-search-pro.md
- **Developed by:** [AutomateLab](https://apify.com/red.cars) (community)
- **Categories:** Business, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 filing documents

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 Filing Search Pro

Full-text search across every SEC EDGAR filing. Search by keyword, company and date range, restricted to the form types you choose (10-K, 10-Q, 8-K, S-1, 13F, Form 4, DEF 14A and more), and get one clean JSON row per matching filing document: form type, filed date, period ending, company and CIK, business location, SIC code, 8-K items, accession number and a direct link to the filing's index page.

No SEC account and no API key: set your query and filters, run it, and get clean results in seconds.

### Why this one

The segment's biggest listing, constant_quadruped/sec-edgar-filings-scraper (105 users), publishes no event pricing and no reviews; ryanclinton/edgar-filing-search charges $0.002 per filing fetched. **SEC EDGAR Filing Search Pro sits at $2.00 per 1,000 filing documents, in line with the published market.**

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `query` | string | `"artificial intelligence"` | Full-text phrase or keywords across filing documents |
| `forms` | array | `["10-K"]` | Form types to keep (empty = all) |
| `entityName` | string | ``| Restrict to one company (empty = all) |
| `dateFrom` / `dateTo` | date |`` | Filed-date window (empty = unbounded) |
| `maxItems` | number | `10` | Hard cap on documents saved |

### Output

| Field | Description |
|---|---|
| `formType` | 10-K, 10-Q, 8-K, S-1, ... |
| `filedDate` | Filing date |
| `periodEnding` | Reporting period end date |
| `company` | Registrant display name (name, ticker, CIK) |
| `allCompanyNames` | All registrants on the filing (co-registrants) |
| `cik` | Central Index Key |
| `sic` | Industry classification code |
| `businessLocation` | Registrant's business location |
| `accessionNo` | Filing accession number |
| `documentType` | Matched document (10-K body, EX-21.1, ...) |
| `documentDescription` | Document description |
| `formItems` | 8-K item numbers when reported |
| `filingUrl` | Direct link to the filing index on sec.gov |

### Pricing

Pay per event:

| Event | Price | When |
|---|---|---|
| actor-start | $0.005 | Once per run |
| result | $0.002 | Per filing document row saved to the dataset |

**$2.00 per 1,000 filing documents.** Form-type, company and date filters run on the API side, so non-matching documents are never fetched, never saved, and never billed.

### Use cases

- Risk and event monitoring: track mentions of key phrases (cybersecurity incidents, restatements, going concern) across filings as they land
- Company research: pull one company's filings by form type and date
- Investment screens: find companies in an industry (SIC) disclosing a topic
- AI/LLM datasets: structured filing rows with accession numbers, ready to fetch document text

### FAQ

**Do I need an SEC API key?**
No. No key, no login, no setup.

**How far back does full-text search go?**
Coverage runs from 2001 onward.

**What counts as a billed result?**
Each filing document row saved to the dataset. Documents filtered out by your form, company or date filters are never fetched and never billed.

**Can I get the document text itself?**
This actor returns the structured row and the filing index URL; fetch the document from sec.gov with its accession number for full text.

# Actor input Schema

## `query` (type: `string`):

Phrase or keywords to search across filing documents, e.g. "artificial intelligence" or 'supply chain disruption'.

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

Restrict to form types: 10-K, 10-Q, 8-K, S-1, 13F, 4, DEF 14A... Empty means all forms.

## `entityName` (type: `string`):

Restrict results to one company, e.g. 'Apple'. Empty means all companies.

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

Only filings filed on or after this date. Empty means no lower bound.

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

Only filings filed on or before this date. Empty means no upper bound.

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

Hard cap on filing documents saved.

## Actor input object example

```json
{
  "query": "artificial intelligence",
  "forms": [
    "10-K"
  ],
  "maxItems": 10
}
```

# Actor output Schema

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

URL to the dataset items: one clean JSON row per matching filing document, with form type, dates, company, CIK, accession number and the filing's index URL.

# 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 = {
    "query": "artificial intelligence",
    "forms": [
        "10-K"
    ],
    "entityName": "",
    "dateFrom": "",
    "dateTo": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("red.cars/sec-edgar-filing-search-pro").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 = {
    "query": "artificial intelligence",
    "forms": ["10-K"],
    "entityName": "",
    "dateFrom": "",
    "dateTo": "",
}

# Run the Actor and wait for it to finish
run = client.actor("red.cars/sec-edgar-filing-search-pro").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 '{
  "query": "artificial intelligence",
  "forms": [
    "10-K"
  ],
  "entityName": "",
  "dateFrom": "",
  "dateTo": ""
}' |
apify call red.cars/sec-edgar-filing-search-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,red.cars/sec-edgar-filing-search-pro"
        }
    }
}
```

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/9ei1qyRua3huohCSC/builds/x38kXCMOPmD8lWtNZ/openapi.json
