# SEC EDGAR Scraper (`anyxsolutions/sec-edgar-scraper`) Actor

Scrape SEC EDGAR filings by ticker, CIK or full-text search: 10-K, 10-Q, 8-K and every other form, with filing dates, 8-K items, document links, company profile and optional key annual financials. Search all filings since 2001. No API key, no login, no proxy.

- **URL**: https://apify.com/anyxsolutions/sec-edgar-scraper.md
- **Developed by:** [Anyx Solutions](https://apify.com/anyxsolutions) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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.
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

![banner](https://anyx.solutions/banners/sec-edgar-scraper.png)

## SEC EDGAR Scraper

**Every SEC filing a company makes — 10-K, 10-Q, 8-K, proxy statements, insider trades — or a full-text search across all of EDGAR, as clean JSON.**

SEC EDGAR is the official record of every US public company: annual and quarterly reports,
material events, registration statements, proxy statements and insider transactions. This Actor
scrapes SEC EDGAR filings by ticker, CIK or EDGAR URL, or by full-text search of every filing and
exhibit since 2001. Each filing comes back with its form type, filing and period dates, acceptance
time, 8-K items, accession number, links to the filing index and the main document, and the
filer's profile: industry (SIC), state of incorporation, fiscal year end and exchanges. Filter by
form type and filing date, and optionally add each company's key annual financials: revenue,
operating and net income, diluted EPS, cash flow and balance sheet. Scrape SEC filings with no API key,
no login and no proxy. Built for investment research, equity analysts, compliance and legal teams,
event-driven trading signals, and anyone feeding filings into an AI or NLP pipeline.

### ⚡ Quick start

```json
{
  "startUrls": [{ "url": "https://www.sec.gov/edgar/browse/?CIK=320193" }],
  "searchTerms": ["\"artificial intelligence\""],
  "forms": ["10-K", "10-Q", "8-K"],
  "maxItems": 5
}
```

### 🧩 Input

| Field                | Type    | Required | Default                      | Description                                                                                                                                                                                                                         |
| -------------------- | ------- | -------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startUrls`          | array   | no       | —                            | EDGAR pages: a company's filings page (`https://www.sec.gov/edgar/browse/?CIK=320193`, or the classic `…/cgi-bin/browse-edgar?action=getcompany&CIK=…&type=10-K`) or a full-text search (`https://www.sec.gov/edgar/search/#/q=…`). |
| `tickers`            | array   | no       | —                            | Stock tickers, one per line, such as `AAPL`, `MSFT` or `BRK.B`.                                                                                                                                                                     |
| `ciks`               | array   | no       | —                            | SEC Central Index Keys, one per line, such as `320193`. Works for filers without a ticker, funds and individuals.                                                                                                                   |
| `searchTerms`        | array   | no       | —                            | Words or phrases to find in the text of filings and exhibits, one search per line. Quote a phrase for an exact match (`"supply chain disruption"`); unquoted words must all appear.                                                 |
| `forms`              | array   | no       | —                            | Only return these form types, such as `10-K`, `10-Q`, `8-K`, `S-1`, `DEF 14A` or `4`. Amendments are included (`10-K` also returns `10-K/A`).                                                                                       |
| `dateFrom`           | string  | no       | —                            | Only return filings filed on or after this date (`YYYY-MM-DD`).                                                                                                                                                                     |
| `dateTo`             | string  | no       | —                            | Only return filings filed on or before this date (`YYYY-MM-DD`).                                                                                                                                                                    |
| `includeFinancials`  | boolean | no       | `false`                      | Add the company's key annual figures for its last three fiscal years to every row. Adds one request per company.                                                                                                                    |
| `maxItems`           | integer | no       | —                            | Maximum number of filings per URL, ticker, CIK or search phrase. The input form starts at 5; leave it empty for every matching filing.                                                                                              |
| `proxyConfiguration` | object  | no       | `{ "useApifyProxy": false }` | Proxy settings. SEC EDGAR needs no proxy.                                                                                                                                                                                           |

Add EDGAR URLs, tickers, CIKs, search phrases, or any mix. The form-type and date filters apply to
all of them, except where a URL sets its own: the classic company page's `type=` and `dateb=`, or
the form and date filters chosen on the EDGAR full-text search page. The easiest way to build a
search is to run it on [EDGAR full-text search](https://www.sec.gov/edgar/search/) with its
filters and paste the address bar; relative ranges such as "last 30 days" are kept.

### 📤 Output

Each filing is one dataset row, marked by `source`: `company` for a company's filing list,
`search` for a full-text search match. Company filings come newest first. Search results come in
EDGAR's relevance order; a filing whose main document and exhibits both match is returned once,
with the best-matching document in `matchedDocumentUrl`. Every row carries the filer's profile.

#### Fields

| Field                   | Type    | Description                                                                                                                                                                                                                                                                                   |
| ----------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `source`                | string  | `company` or `search`.                                                                                                                                                                                                                                                                        |
| `searchQuery`           | string  | The full-text search that matched the filing. `null` for company rows.                                                                                                                                                                                                                        |
| `cik`                   | string  | The filer's Central Index Key, ten digits.                                                                                                                                                                                                                                                    |
| `ticker`                | string  | The company's ticker (the one you asked for, when it has several share classes).                                                                                                                                                                                                              |
| `companyName`           | string  | Filer name.                                                                                                                                                                                                                                                                                   |
| `sic`                   | string  | Standard Industrial Classification code.                                                                                                                                                                                                                                                      |
| `sicDescription`        | string  | Industry, such as `Electronic Computers`.                                                                                                                                                                                                                                                     |
| `stateOfIncorporation`  | string  | State or country of incorporation.                                                                                                                                                                                                                                                            |
| `fiscalYearEnd`         | string  | Fiscal year end as `MMDD`, such as `0926`.                                                                                                                                                                                                                                                    |
| `exchanges`             | array   | Exchanges the company's shares trade on.                                                                                                                                                                                                                                                      |
| `form`                  | string  | Form type, such as `10-K`, `8-K` or `4`.                                                                                                                                                                                                                                                      |
| `filingDate`            | string  | Date the filing was filed (`YYYY-MM-DD`).                                                                                                                                                                                                                                                     |
| `reportDate`            | string  | Period the filing reports on, or the event date of an 8-K.                                                                                                                                                                                                                                    |
| `acceptanceDateTime`    | string  | When EDGAR accepted the filing.                                                                                                                                                                                                                                                               |
| `accessionNumber`       | string  | The filing's unique accession number.                                                                                                                                                                                                                                                         |
| `fileNumber`            | string  | SEC file number.                                                                                                                                                                                                                                                                              |
| `items`                 | array   | 8-K items reported, such as `2.02` (results of operations) or `5.02` (officer changes). Empty for other forms.                                                                                                                                                                                |
| `size`                  | number  | Size of the filing in bytes.                                                                                                                                                                                                                                                                  |
| `isXBRL`                | boolean | Whether the filing includes XBRL financial data.                                                                                                                                                                                                                                              |
| `isInlineXBRL`          | boolean | Whether the filing uses inline XBRL.                                                                                                                                                                                                                                                          |
| `primaryDocument`       | string  | File name of the main document.                                                                                                                                                                                                                                                               |
| `primaryDocDescription` | string  | Description of the main document.                                                                                                                                                                                                                                                             |
| `url`                   | string  | The filing's index page on sec.gov, listing every document in it.                                                                                                                                                                                                                             |
| `documentUrl`           | string  | The main document on sec.gov.                                                                                                                                                                                                                                                                 |
| `companyUrl`            | string  | The filer's EDGAR page.                                                                                                                                                                                                                                                                       |
| `matchedDocumentUrl`    | string  | The document that matched a full-text search (the main document or an exhibit). `null` for company rows.                                                                                                                                                                                      |
| `matchedDocumentType`   | string  | Type of the matched document, such as `8-K` or `EX-99.1`. `null` for company rows.                                                                                                                                                                                                            |
| `financials`            | array   | With `includeFinancials`: the last three fiscal years, newest first, each with `fiscalYear`, `periodStart`, `periodEnd`, `currency`, `revenue`, `operatingIncome`, `netIncome`, `epsDiluted`, `operatingCashFlow`, `assets`, `liabilities`, `stockholdersEquity` and `cash`. `null` when off. |

For a search match from an older filing, `acceptanceDateTime`, `size`, the XBRL flags and the
primary document can be `null`: they come from the company's recent-filings record.

<details><summary>Example output</summary>

```json
{
  "source": "company",
  "searchQuery": null,
  "cik": "0000320193",
  "ticker": "AAPL",
  "companyName": "Apple Inc.",
  "sic": "3571",
  "sicDescription": "Electronic Computers",
  "stateOfIncorporation": "CA",
  "fiscalYearEnd": "0926",
  "exchanges": ["Nasdaq"],
  "form": "10-K",
  "filingDate": "2025-10-31",
  "reportDate": "2025-09-27",
  "acceptanceDateTime": "2025-10-31T14:01:26.000Z",
  "accessionNumber": "0000320193-25-000079",
  "fileNumber": "001-36743",
  "items": [],
  "size": 9392337,
  "isXBRL": true,
  "isInlineXBRL": true,
  "primaryDocument": "aapl-20250927.htm",
  "primaryDocDescription": "10-K",
  "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm",
  "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm",
  "companyUrl": "https://www.sec.gov/edgar/browse/?CIK=320193",
  "matchedDocumentUrl": null,
  "matchedDocumentType": null,
  "financials": [
    {
      "fiscalYear": 2025,
      "periodStart": "2024-09-29",
      "periodEnd": "2025-09-27",
      "currency": "USD",
      "revenue": 416161000000,
      "operatingIncome": 133050000000,
      "netIncome": 112010000000,
      "epsDiluted": 7.46,
      "operatingCashFlow": 111482000000,
      "assets": 359241000000,
      "liabilities": 285508000000,
      "stockholdersEquity": 73733000000,
      "cash": 35934000000
    }
  ]
}
```

</details>

### 💡 Use cases

- **Event-driven signals** — watch 8-K filings for earnings releases (item 2.02), executive changes (5.02) or material agreements (1.01) across a watchlist.
- **Investment research** — pull every 10-K and 10-Q for a sector, with links straight to the documents and key annual figures alongside.
- **Thematic search** — find every company that mentions a phrase such as "tariffs", "going concern" or "artificial intelligence" in its filings, and when.
- **Compliance and legal** — monitor competitors' and counterparties' filings, proxy statements and insider transactions.
- **AI and NLP pipelines** — feed filing documents into summarisation, sentiment or risk-factor extraction.

### ❓ FAQ

- **Do I need an SEC API key or an account?** No. EDGAR is public. The Actor identifies itself to the SEC and stays under the SEC's limit of 10 requests per second, as the SEC's fair-access policy asks.
- **Do I need a proxy?** No. It runs without one by default.
- **How far back does it go?** A company's filing list goes back to its first electronic filing (the mid-1990s for most large companies). Full-text search covers filings from 2001 onwards.
- **Does full-text search return every match?** EDGAR returns up to 10,000 matching documents per search, ranked by relevance. Narrow a broad search with form types and dates.
- **Why are some financials missing?** The summary reads US GAAP figures from annual reports. Funds, individuals and most foreign filers (who report under IFRS) have none, so their list is empty; a company that does not report one figure gets `null` for it.
- **Can I get the full text of a filing?** Each row links to the main document and the filing index. Pair the Actor with a page-content scraper to download the documents' text.
- **Why did a run return fewer filings than expected?** The filters may be narrower than you think (amendments are included, but `10-K` does not match `10-KT`), or a ticker may be missing from the SEC's list; the log says when a ticker or CIK is not found. Open an issue if something looks off.

### 🔗 More scrapers by Anyx

- [Google News Scraper](https://apify.com/anyxsolutions/google-news-scraper)
- [Google Search Scraper](https://apify.com/anyxsolutions/google-search-scraper)
- [Web Content Scraper](https://apify.com/anyxsolutions/web-content-scraper)
- [Bing Search Scraper](https://apify.com/anyxsolutions/bing-search-scraper)

### 🤝 Anyx Solutions

We build custom scrapers and data-extraction pipelines.

- Email: tantosthor@gmail.com

### 🖼 Image credit

Image credit: [sec.gov](https://www.sec.gov/)

# Actor input Schema

## `startUrls` (type: `array`):

Public EDGAR pages: a company's filings page (https://www.sec.gov/edgar/browse/?CIK=320193 or https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany\&CIK=0000320193\&type=10-K) or a full-text search (https://www.sec.gov/edgar/search/#/q=%22artificial%20intelligence%22\&forms=10-K).

## `tickers` (type: `array`):

Stock tickers of companies whose filings to return, one per line, for example AAPL, MSFT or BRK.B.

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

SEC Central Index Keys of filers whose filings to return, one per line, for example 320193 or 0000320193. Works for companies without a ticker, funds and individuals.

## `searchTerms` (type: `array`):

Words or phrases to find in the text of filings and their exhibits, one search per line, for example "supply chain disruption" (quoted for an exact phrase) or tariffs china (every word).

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

Only return these form types, for example 10-K, 10-Q, 8-K, S-1, DEF 14A or 4. Amendments are included (10-K also returns 10-K/A). Leave empty for every form.

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

Only return filings filed on or after this date, for example 2025-01-01.

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

Only return filings filed on or before this date, for example 2026-06-30.

## `includeFinancials` (type: `boolean`):

Add the company's key annual figures (revenue, operating and net income, diluted EPS, operating cash flow, assets, liabilities, equity, cash) for its last three fiscal years to every row. Adds one request per company.

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

Maximum number of filings to return per URL, ticker, CIK or search phrase. Leave empty for every matching filing.

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

Proxy settings. SEC EDGAR is public and needs no proxy; the Actor keeps to the SEC's request-rate limit.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.sec.gov/edgar/browse/?CIK=320193"
    }
  ],
  "searchTerms": [
    "\"artificial intelligence\""
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "includeFinancials": false,
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://www.sec.gov/edgar/browse/?CIK=320193"
        }
    ],
    "searchTerms": [
        "\"artificial intelligence\""
    ],
    "forms": [
        "10-K",
        "10-Q",
        "8-K"
    ],
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("anyxsolutions/sec-edgar-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 = {
    "startUrls": [{ "url": "https://www.sec.gov/edgar/browse/?CIK=320193" }],
    "searchTerms": ["\"artificial intelligence\""],
    "forms": [
        "10-K",
        "10-Q",
        "8-K",
    ],
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("anyxsolutions/sec-edgar-scraper").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 '{
  "startUrls": [
    {
      "url": "https://www.sec.gov/edgar/browse/?CIK=320193"
    }
  ],
  "searchTerms": [
    "\\"artificial intelligence\\""
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "maxItems": 5
}' |
apify call anyxsolutions/sec-edgar-scraper --silent --output-dataset

```

## MCP server setup

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

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/YPa0s9jng2l5bt0sl/builds/laTAAwvVfR4Ix4Lxa/openapi.json
