# SEC EDGAR Filings Scraper: 10-K, 10-Q, 8-K, Form 4 (`redfoxscout/sec-edgar-filings`) Actor

Pull SEC EDGAR filings by ticker, CIK or company name: 10-K, 10-Q, 8-K, Form 4, 13F and more, with filing dates, accession numbers, document links, 8-K item codes and full-text search. $1.50 per 1,000 filings.

- **URL**: https://apify.com/redfoxscout/sec-edgar-filings.md
- **Developed by:** [Red Fox Scout](https://apify.com/redfoxscout) (community)
- **Categories:** Developer tools, News
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.13 / 1,000 filings

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/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

Pull **SEC EDGAR filings** by ticker, CIK or company name: **10-K, 10-Q, 8-K, Form 4**, **13F** and more, with filing dates, accession numbers and links to each document. Search the text of filings with **full-text search**, or list the **latest filings** for any form type. Everything comes from the SEC's own public EDGAR records.

**Price: $1.50 per 1,000 filings.** Failed lookups and error rows are free, and a filing returned twice in one run is charged once. Apify's free plan ($5 monthly credit) covers about 3,300 filings a month.

[![SEC EDGAR Filings Scraper output: Apple and Microsoft 10-K and 8-K filings with dates, item codes and links](https://raw.githubusercontent.com/TikTop-Data/apify-store-assets/main/images/sec-edgar-filings-output.png)](https://apify.com/redfoxscout/sec-edgar-filings)

### Questions it answers

- Which annual and quarterly reports has a company filed since 2025, and where is each document?
- Which companies filed an earnings release (8-K item 2.02) this quarter?
- When did a company's insiders file Form 4 reports?
- Which filings mention going concern doubts, or any other phrase?
- Which companies filed new S-1 registration statements this month?

### Who uses this

- 📈 **Investors and analysts:** follow earnings 8-Ks, annual reports and insider filings for a watchlist.
- 🔎 **Researchers and journalists:** search filing text for a phrase, then open the original document.
- 🧾 **Due-diligence and compliance teams:** pull a company's filing history with direct links for review.
- 💻 **Developers:** feed a dashboard or spreadsheet with dated, structured filing records.

### Why this SEC EDGAR Filings Scraper

- 🏛️ **Official SEC data:** the public EDGAR records behind sec.gov. No SEC account or API key needed.
- 🔎 **Three ways in, one output:** company filings by ticker, CIK or name, full-text search, or the latest filings by form type. Every row has the same keys; fields the SEC does not provide are null.
- 📈 **Form 4 shows the issuer:** companyName is the company whose shares were traded, not the insider who filed the report.
- 🏷️ **8-K item filter:** keep only the 8-Ks with the item codes you need, such as 2.02 (results of operations).
- 🔗 **Direct links:** each row has the filing index page and the main document.

### How to use the SEC EDGAR Filings Scraper

1. Click **Try for free** (a free Apify account is enough).
2. Enter tickers, CIK numbers or company names, one per line (`AAPL`, `BRK-B`, `1067983`, `Tesla`), or a full-text search phrase.
3. Optional: add form types (`10-K`, `8-K`, `4`), a filing date range or 8-K item codes.
4. Click **Start**, then download as JSON, CSV or Excel, or schedule it for a weekly feed.

### Input

| Field | Default | What it does |
|---|---|---|
| `companies` | – | Tickers (`AAPL`, `BRK-B`), CIK numbers (`1067983`) or company names (`Tesla`), one per line. |
| `forms` | all forms | Form types, e.g. `10-K`, `8-K`, `4`, `S-1`. Without companies or a phrase, returns the latest filings of these forms. |
| `searchPhrase` | – | Full-text search: only filings whose text contains this phrase, e.g. `going concern`. With companies, limits the search to them. |
| `includeAmendments` | true | Also return amendments, such as 10-K/A for 10-K. Turn off for original filings only. |
| `dateFrom` | – | Only filings dated on or after this day (`YYYY-MM-DD`). |
| `dateTo` | – | Only filings dated on or before this day (`YYYY-MM-DD`). |
| `items` | – | 8-K item codes, e.g. `2.02` or `5.02`. Keeps filings that include any of them. Only 8-Ks carry item codes. |
| `maxItems` | 100 | Filings per company or search (max 10,000). |

Example (the input behind the row below):

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

### Output

One row per filing. A real row from that run (Apple's 8-K filed 2026-07-30):

```json
{
  "companyName": "Apple Inc.",
  "cik": "0000320193",
  "ticker": "AAPL",
  "form": "8-K",
  "filingDate": "2026-07-30",
  "reportDate": "2026-07-30",
  "acceptanceDateTime": "2026-07-31T00:30:28.000Z",
  "accessionNumber": "0000320193-26-000018",
  "items": ["2.02", "9.01"],
  "description": "8-K",
  "documentType": null,
  "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm",
  "indexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.htm",
  "fileNumber": "001-36743",
  "sic": "3571",
  "sicDescription": "Electronic Computers",
  "stateOfIncorporation": "CA",
  "exchange": "Nasdaq",
  "businessCity": "CUPERTINO",
  "businessState": "CA",
  "isXBRL": true,
  "sizeBytes": 417360,
  "source": "company filings",
  "searchQuery": "AAPL"
}
```

### Example tasks

Ready-made inputs you can open, change and run:

- [Get Tesla's latest 8-K filings](https://apify.com/redfoxscout/sec-edgar-filings/examples/sec-edgar-tesla-8k-filings)

### How much does it cost?

$1.50 per 1,000 filings.

- 100 filings: about $0.15
- 10,000 filings: about $15
- Error rows and duplicate filings: free

Apify's free plan gives $5 of credit every month, enough for about 3,300 filings.

### FAQ

**Is this legal?** It reads the SEC's public EDGAR records, the same filings anyone can open on sec.gov without a login. Requests carry a declared User-Agent with a contact address, as the SEC asks, and stay under its fair-access limit of 10 requests per second. It does not log in, solve CAPTCHAs, or output street addresses, phone numbers or tax IDs.

**Why do some filings have no reportDate?** reportDate is the period or event date the SEC records for a filing: the fiscal year end for a 10-K, the event date for an 8-K. The SEC leaves it empty for some form types, such as new S-1 registration statements, which came back without one in our tests. The Actor returns null rather than guess. filingDate is always set.

**Why do full-text and latest-filing rows have fewer fields?** Those rows come from the SEC's search index, which does not include acceptance time, state of incorporation, exchange, business city or file size, so those fields are null. The ticker can also be null on Form 4 and S-1 rows. Searching by company (ticker or CIK) returns the full record.

**What does "No SEC company found" mean?** The name or ticker did not match a company in the SEC's company list. Try the ticker (AAPL), the CIK number, or a shorter part of the company name.

### Related Actors

- [Company Signals MCP](https://apify.com/redfoxscout/company-signals-mcp): startup jobs and hiring data for AI agents, served over MCP.
- [Jobs Index](https://apify.com/redfoxscout/jobs-index): search startup jobs from company career pages at once.
- [Company Social Links Finder](https://apify.com/redfoxscout/company-social-links): a company's official social profiles, found from its website.

# Actor input Schema

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

Tickers, CIK numbers or company names, one per line, e.g. AAPL, BRK-B, 1067983 or Tesla.

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

SEC form types, one per line, e.g. 10-K, 10-Q, 8-K, 4 or S-1. Leave empty to get every form type.

## `searchPhrase` (type: `string`):

Only filings whose text contains this phrase, e.g. going concern or cybersecurity incident.

## `includeAmendments` (type: `boolean`):

Also return amended forms, e.g. 10-K/A when you ask for 10-K. Turn off for original filings only.

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

Only filings dated on or after this day, e.g. 2026-01-01.

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

Only filings dated on or before this day, e.g. 2026-06-30.

## `items` (type: `array`):

8-K item numbers, one per line, e.g. 2.02 (results of operations) or 5.02 (executive changes). Keeps filings that include any of them.

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

Stop each search after this many results.

## `maxConcurrency` (type: `integer`):

How many searches run at once.

## Actor input object example

```json
{
  "companies": [
    "AAPL"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "includeAmendments": true,
  "maxItems": 100,
  "maxConcurrency": 3
}
```

# Actor output Schema

## `results` (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 = {
    "companies": [
        "AAPL"
    ],
    "forms": [
        "10-K",
        "10-Q",
        "8-K"
    ]
};

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,redfoxscout/sec-edgar-filings"
        }
    }
}
```

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/JZfpXsUynDlHfXPdO/builds/YtHoBa8fkq0dIDazp/openapi.json
