# SEC EDGAR Full-Text Search Scraper (`ninhothedev/sec-fulltext-search-scraper`) Actor

$0.5/1K 🔥 Fast SEC EDGAR full-text search scraper! Find filings by keyword — company, form, date & link. No key. JSON, CSV, Excel or API in seconds. Search 10-K, 8-K & more for investment intel & due diligence ⚡

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

## Pricing

from $0.50 / 1,000 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/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 Full-Text Search Scraper

Search the **entire SEC EDGAR full-text filings index by keyword** and get back clean, structured results: company name, CIK, form type, filing date, and a **direct link to the filing document** — with **no API key** required.

Perfect for **filings research, investment intelligence, compliance monitoring, and due diligence**. Point it at a phrase like `"artificial intelligence"`, `"going concern"`, `"material weakness"`, or a competitor's product name, optionally narrow by form type (`10-K`, `8-K`, `10-Q`, …) and date range, and export every matching filing to JSON, CSV, or Excel.

***

### Why this scraper

- **No API key, no login.** The SEC provides open full-text search; this actor is ready the moment you run it.
- **Direct filing URLs.** Every result includes the exact `https://www.sec.gov/Archives/...` document link, built from the accession number and CIK.
- **Multi-query.** Run a whole list of keywords in one job — great for watchlists and topic monitoring.
- **Filter by form and date.** Focus on annual reports, current reports, proxy statements, or a specific window.
- **Cheap & fast.** Datacenter-friendly, one item per filing, tiny memory footprint.

> Built responsibly: the actor sends a descriptive `User-Agent` with a contact email on every request, as required by the SEC fair-access policy.

***

### Input

| Field | Type | Description |
|-------|------|-------------|
| `mode` | select | `search` — run keyword queries against the EDGAR full-text index. |
| `queries` | array | Keywords/phrases to search. Wrap in double quotes for exact-phrase match. Prefilled: `["artificial intelligence", "cybersecurity risk"]`. |
| `forms` | string | Optional. Restrict to form types, comma-separated (e.g. `10-K` or `8-K,10-Q`). |
| `startDate` | string | Optional. Only filings on/after this date (`YYYY-MM-DD`). |
| `endDate` | string | Optional. Only filings on/before this date (`YYYY-MM-DD`). |
| `maxItems` | integer | Max total filings across all queries. Default `100`, max `1000`. |

#### Example input

```json
{
  "mode": "search",
  "queries": ["artificial intelligence", "supply chain risk"],
  "forms": "10-K",
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "maxItems": 200
}
```

***

### Output

One dataset item per matching filing. All fields are nullable.

```json
{
  "query": "artificial intelligence",
  "accession": "0001161697-21-000289",
  "document": "form_10-k.htm",
  "company": "Artificial Intelligence Technology Solutions Inc.  (AITX)  (CIK 0001498148)",
  "ciks": ["0001498148"],
  "form": "10-K",
  "file_date": "2021-06-01",
  "file_type": "10-K",
  "file_description": "FORM 10-K ANNUAL REPORT FOR 02-28-2021",
  "sics": ["3714"],
  "states": ["NV"],
  "filing_url": "https://www.sec.gov/Archives/edgar/data/1498148/000116169721000289/form_10-k.htm",
  "source": "sec",
  "scraped_at": "2026-07-20T00:00:00+00:00"
}
```

| Field | Description |
|-------|-------------|
| `query` | The search term that produced this hit. |
| `accession` | Filing accession number (`_id` before the `:`). |
| `document` | Primary document filename (`_id` after the `:`). |
| `company` | Company display name incl. ticker and CIK. |
| `ciks` | List of associated CIK identifiers. |
| `form` | SEC form type (e.g. `10-K`, `8-K`). |
| `file_date` | Filing date, ISO `YYYY-MM-DD`. |
| `file_type` | Document type label. |
| `file_description` | Human-readable filing description. |
| `sics` | Standard Industrial Classification codes. |
| `states` | Business location state(s). |
| `filing_url` | Direct URL to the filing document on SEC.gov. |
| `source` | Always `sec`. |
| `scraped_at` | UTC timestamp when the record was scraped. |

***

### Pricing

Roughly **$0.5 per 1,000 filings** — pay only for what you pull. Datacenter proxies are fine; no residential proxy needed.

***

### Use cases

- **Filings research** — find every company discussing a topic, technology, or risk factor.
- **Investment intelligence** — surface disclosures across an entire sector or theme.
- **Compliance** — monitor for keywords (restatements, going concern, cyber incidents) across new filings.
- **Due diligence** — pull a target's filings and cross-reference language against peers.

***

### Related actors

- [SEC EDGAR Scraper](https://apify.com/ninhothedev/sec-edgar-scraper)
- [CourtListener Scraper](https://apify.com/ninhothedev/courtlistener-scraper)
- [GLEIF LEI Scraper](https://apify.com/ninhothedev/gleif-scraper)
- [FDIC Banks Scraper](https://apify.com/ninhothedev/fdic-banks-scraper)

***

### Keywords

SEC EDGAR scraper, full-text search, SEC filings API, 10-K scraper, 8-K scraper, 10-Q, financial filings research, investment intelligence, compliance monitoring, due diligence, company disclosures, CIK, accession number, regulatory data, no API key.

***

### FAQ

**Do I need an SEC API key?** No. SEC full-text search is open. The actor sends a compliant contact `User-Agent` automatically.

**How far back does full-text search go?** SEC full-text search covers filings from 2001 onward.

**Can I search exact phrases?** Yes — wrap the phrase in double quotes, e.g. `"material weakness"`.

**How many results per query?** The index returns up to 100 hits per page and the actor paginates; use `maxItems` to cap the total.

# Actor input Schema

## `mode` (type: `string`):

What to scrape. Currently 'search' runs keyword queries against the SEC EDGAR full-text search index and returns one item per matching filing.

## `queries` (type: `array`):

Keywords or phrases to search across SEC filings. Wrap a phrase in double quotes for an exact-phrase match (e.g. "artificial intelligence"). Each query is searched independently.

## `forms` (type: `string`):

Restrict results to one or more SEC form types, comma-separated (e.g. '10-K' or '8-K' or '10-K,10-Q'). Leave empty to search all forms.

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

Only include filings dated on or after this date, format YYYY-MM-DD (e.g. 2024-01-01). Leave empty for no lower bound.

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

Only include filings dated on or before this date, format YYYY-MM-DD (e.g. 2024-12-31). Leave empty for no upper bound.

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

Maximum total number of filings to return across all queries. Default 100, maximum 1000.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "artificial intelligence",
    "cybersecurity risk"
  ],
  "forms": "10-K",
  "startDate": "2024-01-01",
  "endDate": "2024-12-31",
  "maxItems": 100
}
```

# 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 = {
    "queries": [
        "artificial intelligence",
        "cybersecurity risk"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ninhothedev/sec-fulltext-search-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 = { "queries": [
        "artificial intelligence",
        "cybersecurity risk",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("ninhothedev/sec-fulltext-search-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 '{
  "queries": [
    "artificial intelligence",
    "cybersecurity risk"
  ]
}' |
apify call ninhothedev/sec-fulltext-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/F1x8BdClrde5GfyNw/builds/kcLTnQ6v0PUGtu9Sy/openapi.json
