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

Get SEC EDGAR data for any US public company: filings, financial statements (XBRL), and insider trades. Clean, AI-ready JSON. No API key needed.

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

## Pricing

from $5.00 / 1,000 company processeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Scraper

Get **SEC EDGAR data for any US public company** — filings, financial statements (XBRL), company profiles, and insider transactions — as clean, AI-ready JSON. Powered by SEC's official data APIs: reliable, always up to date, and no API key required.

### What does SEC EDGAR Scraper do?

Pass any **stock ticker** (AAPL, MSFT, TSLA) or **CIK number** and get back:

- 🏢 **Company profile** — name, CIK, tickers, exchanges, SIC industry code, state of incorporation, fiscal year end, address
- 📄 **Filings list** — every recent filing with form type, dates, and a direct link to the document. Filter by form type (10-K, 10-Q, 8-K, S-1, DEF 14A…) and date
- 💵 **Financial statements (XBRL)** — revenue, net income, assets, liabilities, equity, EPS and any other US-GAAP concept, with the latest value plus history
- 👤 **Insider transactions** — Forms 3/4/5 (insider buys and sells) with links to each filing
- 🤖 **AI-ready JSON** — normalized output built for LLM pipelines, financial dashboards, and AI agents via the Apify MCP server

### Why scrape SEC EDGAR?

Financial analysts, fintech builders, quant researchers, compliance teams, and AI agents use this Actor to:

- Track **company fundamentals** across a watchlist without manual EDGAR searches
- Monitor **new filings** (8-K events, 10-K/10-Q reports) programmatically
- Pull **structured XBRL financials** without parsing raw filing documents
- Watch **insider trading activity** (Form 4) across companies
- Feed **regulatory & financial data** into models, RAG systems, and AI agents

### Input example

```json
{
  "companies": ["AAPL", "TSLA", "320193"],
  "dataTypes": ["profile", "filings", "financials", "insiderTransactions"],
  "formTypes": ["10-K", "10-Q", "8-K"],
  "maxFilings": 50,
  "financialConcepts": ["Revenues", "NetIncomeLoss", "Assets", "Liabilities", "StockholdersEquity"]
}
```

### Output example (abridged)

```json
{
  "query": "AAPL",
  "cik": "0000320193",
  "name": "Apple Inc.",
  "profile": { "exchanges": ["Nasdaq"], "sicDescription": "Electronic Computers", "stateOfIncorporation": "CA" },
  "filings": [
    { "form": "10-Q", "filingDate": "2026-05-01", "url": "https://www.sec.gov/Archives/edgar/data/320193/.../aapl-20260328.htm" }
  ],
  "financials": {
    "Revenues": { "xbrlTag": "RevenueFromContractWithCustomerExcludingAssessedTax", "unit": "USD", "latest": { "value": 111184000000, "end": "2026-03-28", "fiscalYear": 2026, "fiscalPeriod": "Q2" } }
  },
  "insiderTransactions": [
    { "form": "4", "filingDate": "2026-06-17", "url": "https://www.sec.gov/Archives/edgar/data/320193/..." }
  ]
}
```

### Financial concepts (XBRL tags)

Companies report financials under standardized US-GAAP tags. Common ones: `Revenues`, `NetIncomeLoss`, `Assets`, `Liabilities`, `StockholdersEquity`, `CashAndCashEquivalentsAtCarryingValue`, `EarningsPerShareBasic`. Tag availability varies by company and era — this Actor automatically resolves common revenue variants so you always get the most recent value.

### How much does it cost?

Pay per company processed — a small fee per record. Analyzing 100 companies costs well under $1. No subscription.

### FAQ

**Is this legal / affiliated with the SEC?**
This Actor uses SEC's official public data APIs (data.sec.gov) and is not affiliated with or endorsed by the SEC. All data is public. We follow SEC's fair-access policy (declared User-Agent, rate limits).

**Do I need an API key?** No. SEC EDGAR data is free and public.

**Can AI agents use this?** Yes — it works with the Apify MCP server, so Claude, ChatGPT, and other agents can call it and pay per use.

**Which companies are covered?** All ~10,000+ US public companies that file with the SEC. Pass a ticker or CIK.

### Support

Need a new data type (full Form 4 transaction parsing, fund holdings, full-text filing search)? Open an issue in the **Issues tab** — actively maintained, issues answered within one business day.

# Actor input Schema

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

List of stock tickers (e.g. AAPL, MSFT) or CIK numbers (e.g. 320193). Each is resolved and processed separately.

## `dataTypes` (type: `array`):

Which datasets to return for each company.

## `formTypes` (type: `array`):

Only include filings of these form types (e.g. 10-K, 10-Q, 8-K, S-1, DEF 14A). Leave empty for all forms.

## `maxFilings` (type: `integer`):

Maximum number of recent filings to return per company (most recent first).

## `financialConcepts` (type: `array`):

US-GAAP concepts to extract when 'Financial statements' is selected. Common: Revenues, NetIncomeLoss, Assets, Liabilities, StockholdersEquity, CashAndCashEquivalentsAtCarryingValue, EarningsPerShareBasic.

## `filingsSince` (type: `string`):

Only include filings on or after this date (YYYY-MM-DD). Leave empty for no lower bound.

## `contactEmail` (type: `string`):

SEC requires a contact email in the request User-Agent for its fair-access policy. Your own email is recommended; a default is used if left blank.

## Actor input object example

```json
{
  "companies": [
    "AAPL",
    "MSFT"
  ],
  "dataTypes": [
    "profile",
    "filings",
    "financials"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "maxFilings": 50,
  "financialConcepts": [
    "Revenues",
    "NetIncomeLoss",
    "Assets",
    "Liabilities",
    "StockholdersEquity"
  ]
}
```

# 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",
        "MSFT"
    ],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K"
    ]
};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

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