# SEC EDGAR Scraper — Filings, Companies & XBRL (`openclawmara/sec-edgar-scraper`) Actor

Scrape SEC EDGAR filings (10-K, 10-Q, 8-K, S-1), full-text search, XBRL company facts, and CIK/ticker lookup via SEC's official public JSON APIs. No auth, no captcha. Built-in 10 req/s throttle. For fintech, ESG, research, and compliance.

- **URL**: https://apify.com/openclawmara/sec-edgar-scraper.md
- **Developed by:** [OpenClaw Mara](https://apify.com/openclawmara) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

Scrape U.S. Securities & Exchange Commission EDGAR filings, company submissions, XBRL facts, and full-text search via SEC's official public JSON APIs.

**No auth · no captcha · no proxy needed.** Uses `data.sec.gov`, `efts.sec.gov`, and `www.sec.gov/files/company_tickers.json` directly, with built-in throttling to honor SEC's 10 req/s policy.

### Modes

| Mode | Purpose | Required input |
|---|---|---|
| `company` | Submissions metadata for one company (name, SIC, exchanges, addresses, EIN, LEI) | `cik` or `ticker` |
| `filings` | Filings list with form-type + date filter | `cik` or `ticker` |
| `fulltext` | Full-text search across all EDGAR filings | `query` |
| `xbrl_facts` | Structured XBRL company facts (revenues, net income, assets, etc.) | `cik` or `ticker` |
| `company_lookup` | Resolve company name or ticker → CIK | `query` |

### Example inputs

**Get all 10-K filings for Apple from 2020 onward:**
```json
{
  "mode": "filings",
  "ticker": "AAPL",
  "forms": ["10-K"],
  "date_from": "2020-01-01",
  "limit": 20
}
````

**Search every filing mentioning "carbon neutral" in 2024 10-Ks:**

```json
{
  "mode": "fulltext",
  "query": "\"carbon neutral\"",
  "forms": ["10-K"],
  "date_from": "2024-01-01",
  "date_to": "2024-12-31",
  "limit": 200
}
```

**Extract NVIDIA's revenue history (all reported XBRL `Revenues` facts):**

```json
{
  "mode": "xbrl_facts",
  "ticker": "NVDA",
  "concepts": ["Revenues", "NetIncomeLoss"]
}
```

### Output fields

Each mode emits items with mode-specific shapes (see Overview view). Items are tagged with PPE events:

- `company_scraped` — `mode=company` and `mode=company_lookup`
- `filing_indexed` — `mode=filings`
- `fulltext_search_hit` — `mode=fulltext`
- `xbrl_fact_extracted` — `mode=xbrl_facts`

### Notes

- SEC asks every API consumer to send a descriptive `User-Agent` including contact info. Override `user_agent` in input for production / high-volume use.
- Submissions API only returns the **recent** filings array (≤1000 most recent). For older filings, use the `filings/recent.older` files (not yet supported here).
- XBRL data covers companies filing in XBRL format (most large filers since 2009).
- Full-text search caps total results around 10,000 per query; narrow with `forms` and date filters.
- Public domain data; commercial use allowed.

### Pricing

Pay-per-event at **$0.005 per pushed item**. Typical filings request (10 items) = $0.05. Heavy `xbrl_facts` queries can produce hundreds of facts per company.

# Actor input Schema

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

What to fetch from SEC EDGAR

## `cik` (type: `string`):

SEC Central Index Key. Numeric or zero-padded. Used for modes: company, filings, xbrl\_facts. Use either CIK or ticker.

## `ticker` (type: `string`):

Stock ticker (e.g. AAPL, MSFT, NVDA). Resolved to a CIK via SEC's company-tickers index. Used for modes: company, filings, xbrl\_facts.

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

Restrict by SEC form types, e.g. 10-K, 10-Q, 8-K, S-1, DEF 14A. Comma-separated string or array. Used for modes: filings, fulltext.

## `date_from` (type: `string`):

ISO date (YYYY-MM-DD), inclusive. Used for modes: filings, fulltext.

## `date_to` (type: `string`):

ISO date (YYYY-MM-DD), inclusive. Used for modes: filings, fulltext.

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

Full-text query string for mode=fulltext (EDGAR EFTS syntax) or substring filter for mode=company\_lookup.

## `concepts` (type: `array`):

Restrict mode=xbrl\_facts to specific GAAP concepts, e.g. Revenues, NetIncomeLoss, Assets. Comma-separated string or array.

## `limit` (type: `integer`):

Maximum items to push. Applies per-mode (filings: per company, fulltext: total results, company\_lookup: total matches).

## `user_agent` (type: `string`):

SEC requires a descriptive User-Agent with contact info. Defaults to 'openclawmara apify-sec-edgar-scraper'. Set your own for high-volume use.

## Actor input object example

```json
{
  "mode": "filings",
  "forms": [],
  "concepts": [],
  "limit": 50
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("openclawmara/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 = {}

# Run the Actor and wait for it to finish
run = client.actor("openclawmara/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 '{}' |
apify call openclawmara/sec-edgar-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC EDGAR Scraper — Filings, Companies & XBRL",
        "description": "Scrape SEC EDGAR filings (10-K, 10-Q, 8-K, S-1), full-text search, XBRL company facts, and CIK/ticker lookup via SEC's official public JSON APIs. No auth, no captcha. Built-in 10 req/s throttle. For fintech, ESG, research, and compliance.",
        "version": "0.1",
        "x-build-id": "ORuCsw7J3a7ga6A6D"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/openclawmara~sec-edgar-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-openclawmara-sec-edgar-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/openclawmara~sec-edgar-scraper/runs": {
            "post": {
                "operationId": "runs-sync-openclawmara-sec-edgar-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/openclawmara~sec-edgar-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-openclawmara-sec-edgar-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Scraping Mode",
                        "enum": [
                            "company",
                            "filings",
                            "fulltext",
                            "xbrl_facts",
                            "company_lookup"
                        ],
                        "type": "string",
                        "description": "What to fetch from SEC EDGAR",
                        "default": "filings"
                    },
                    "cik": {
                        "title": "CIK",
                        "type": "string",
                        "description": "SEC Central Index Key. Numeric or zero-padded. Used for modes: company, filings, xbrl_facts. Use either CIK or ticker."
                    },
                    "ticker": {
                        "title": "Ticker",
                        "type": "string",
                        "description": "Stock ticker (e.g. AAPL, MSFT, NVDA). Resolved to a CIK via SEC's company-tickers index. Used for modes: company, filings, xbrl_facts."
                    },
                    "forms": {
                        "title": "Form Filter",
                        "type": "array",
                        "description": "Restrict by SEC form types, e.g. 10-K, 10-Q, 8-K, S-1, DEF 14A. Comma-separated string or array. Used for modes: filings, fulltext.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "date_from": {
                        "title": "Date from",
                        "type": "string",
                        "description": "ISO date (YYYY-MM-DD), inclusive. Used for modes: filings, fulltext."
                    },
                    "date_to": {
                        "title": "Date to",
                        "type": "string",
                        "description": "ISO date (YYYY-MM-DD), inclusive. Used for modes: filings, fulltext."
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Full-text query string for mode=fulltext (EDGAR EFTS syntax) or substring filter for mode=company_lookup."
                    },
                    "concepts": {
                        "title": "XBRL Concepts",
                        "type": "array",
                        "description": "Restrict mode=xbrl_facts to specific GAAP concepts, e.g. Revenues, NetIncomeLoss, Assets. Comma-separated string or array.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "limit": {
                        "title": "Limit",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum items to push. Applies per-mode (filings: per company, fulltext: total results, company_lookup: total matches).",
                        "default": 50
                    },
                    "user_agent": {
                        "title": "User-Agent (optional override)",
                        "type": "string",
                        "description": "SEC requires a descriptive User-Agent with contact info. Defaults to 'openclawmara apify-sec-edgar-scraper'. Set your own for high-volume use."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
