# SEC Filing Full-Text Search Scraper (`scrapemint/sec-filing-fulltext-scraper`) Actor

Search the full text of every SEC EDGAR filing since 2001 by keyword or phrase. One row per matching filing with company, ticker, form type, filing date, and a direct link. Filter by form, date range, or company. No login, no API key. Pay per row.

- **URL**: https://apify.com/scrapemint/sec-filing-fulltext-scraper.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** Business, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$7.00 / 1,000 filing rows

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

## SEC Filing Full-Text Search Scraper

Search the full text of every SEC EDGAR filing since 2001 by keyword or phrase, across all companies and every form type. No login, no API key, no browser. Give it a query, the Actor returns one clean row per matching filing with the company, form, filing date, and a direct link.

This is keyword full-text search across the whole EDGAR archive, not a per company or per form tracker. Use it to catch a phrase wherever it appears: risk language, an executive name, a product, a legal term, or an accounting disclosure.

### What you get

One row per matching filing, with:

- `companyName`, `ticker`, `cik`, `ciks`
- `form`, `rootForm`
- `fileDate`, `periodEnding`
- `fileType`, `fileDescription`
- `accessionNo`
- `filingUrl` (direct link to the filing document)
- `sic`, `businessLocation`, `businessStates`, `incorporationStates`
- `score`, `query`, `scrapedAt`

### Input

- `query` (keyword or phrase; wrap phrases in double quotes, e.g. `"material weakness"`)
- `forms` (optional list of form types, e.g. `8-K`, `10-K`, `10-Q`, `S-1`, `13D`)
- `startDate`, `endDate` (optional date range, `YYYY-MM-DD`)
- `ciks` (optional list of company CIK numbers to restrict the search)
- `maxRows`

### Example input

```json
{
  "query": "\"material weakness\"",
  "forms": ["10-K"],
  "startDate": "2026-01-01",
  "endDate": "2026-06-30",
  "maxRows": 200
}
```

Track a phrase across only one company:

```json
{
  "query": "artificial intelligence",
  "ciks": ["0000320193"]
}
```

### Uses

- Monitor risk and disclosure language ("going concern", "material weakness", "restatement")
- Track a person, product, or competitor across all filers
- Legal and compliance research
- Building a filing alert or feed

### Pricing

Pay per row. The first 15 rows of every run are free so you can validate output before you scale up. You only pay for the filings you keep.

### Notes

- Data comes from the SEC EDGAR full-text search index, which covers filings since 2001. EDGAR returns up to 10,000 matches per query.
- Proxy is off by default because EDGAR is a tolerant public source; supply a proxy only if you run very large pulls and hit rate limits.

# Actor input Schema

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

Keyword or phrase to search the full text of EDGAR filings. Wrap phrases in double quotes, e.g. "material weakness" or "going concern". Searches filings since 2001.

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

Optional. Restrict to specific form types, e.g. 8-K, 10-K, 10-Q, S-1, 13D. Leave empty for all forms.

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

Optional. Only return filings on or after this date (YYYY-MM-DD).

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

Optional. Only return filings on or before this date (YYYY-MM-DD).

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

Optional. Restrict to one or more companies by SEC CIK number, e.g. 0000320193 for Apple.

## `maxRows` (type: `integer`):

Maximum number of filing rows to return. First 15 rows per run are free. EDGAR returns up to 10,000 matches per query.

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

Optional. EDGAR is a tolerant public source, so proxy is off by default. Supply one only if you run very large pulls and hit rate limits.

## Actor input object example

```json
{
  "query": "\"material weakness\"",
  "forms": [
    "8-K"
  ],
  "maxRows": 200
}
```

# 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": "\"material weakness\"",
    "forms": [
        "8-K"
    ],
    "maxRows": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/sec-filing-fulltext-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 = {
    "query": "\"material weakness\"",
    "forms": ["8-K"],
    "maxRows": 200,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/sec-filing-fulltext-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 '{
  "query": "\\"material weakness\\"",
  "forms": [
    "8-K"
  ],
  "maxRows": 200
}' |
apify call scrapemint/sec-filing-fulltext-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/2eedfNipkWzf1KGaJ/builds/MCwEdHe6ebHsK2hh7/openapi.json
