# SEC EDGAR Extractor – Filings & Financials (`hichemdev/sec-edgar-extractor`) Actor

Extract SEC filings (10-K, 10-Q, 8-K and more) and XBRL financials - revenue, net income, assets and any US-GAAP concept - for any US public company by ticker or CIK. Powered by the free official SEC EDGAR API: fast, structured, and never blocked.

- **URL**: https://apify.com/hichemdev/sec-edgar-extractor.md
- **Developed by:** [Hichem Ben Moussa](https://apify.com/hichemdev) (community)
- **Categories:** Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

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 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 Extractor – Filings & Financials 📊

**Pull SEC filings and XBRL financials for any US public company** by ticker or CIK — straight from the free official **SEC EDGAR** API. Reliable, fast, structured, and never blocked. Skip the expensive financial-data vendors.

### 🔎 Modes

- **`filings`** — list a company's filings (**10-K, 10-Q, 8-K, S-1**, and more) with dates, accession numbers, and direct document links.
- **`financials`** — pull structured **XBRL** figures (**revenue, net income, assets, liabilities, equity** — any US-GAAP concept) with the reporting period for each data point.

### 🎯 Use cases

- **Quant & algo traders** — build fundamentals datasets and event feeds from filings.
- **Alternative-data teams** — turn EDGAR into a clean, machine-readable API.
- **Investors & analysts** — pull revenue/earnings history for any ticker in seconds.
- **Fintech builders** — power dashboards and screeners with authoritative source data.
- **Journalists & researchers** — track disclosures across companies at scale.

### 📥 Input

- `mode` — `filings` or `financials`.
- `tickers` — e.g. `AAPL`, `MSFT` (auto-resolved to CIK).
- `ciks` — optional, if you already have CIK numbers.
- `formTypes` — filter for `filings` mode (e.g. `10-K`, `8-K`). Empty = all.
- `maxFilingsPerCompany` — cap per company.
- `concepts` — US-GAAP concept names for `financials` mode.
- `maxDataPointsPerConcept` — how many recent periods per concept.
- `contactEmail` — used in the SEC-required User-Agent header (use your own email).

### 📤 Output (filings)

```json
{
  "company": "Apple Inc.",
  "cik": "0000320193",
  "ticker": "AAPL",
  "form": "10-K",
  "filingDate": "2025-10-31",
  "reportDate": "2025-09-27",
  "accessionNumber": "0000320193-25-000079",
  "primaryDocument": "aapl-20250927.htm",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm"
}
````

### 📤 Output (financials)

```json
{
  "company": "Apple Inc.",
  "cik": "0000320193",
  "concept": "Revenues",
  "unit": "USD",
  "value": 391035000000,
  "periodEnd": "2025-09-27",
  "fiscalYear": 2025,
  "fiscalPeriod": "FY",
  "form": "10-K"
}
```

### 🔌 Integrations & scheduling

- **Schedule** it to capture new filings as they're published (great for event-driven strategies).
- Export to **CSV, Excel, JSON, or Google Sheets**, or pull via the Apify API.
- Feed structured financials straight into a model, spreadsheet, or database.

### ❓ FAQ

**Is this official / legal?** Yes — it uses the SEC's own public EDGAR endpoints (`data.sec.gov`, `www.sec.gov`), which are free and intended for programmatic access.

**Why do I set a contact email?** The SEC asks for a contact email in the request User-Agent. Set `contactEmail` to your own for uninterrupted access.

**How is it priced?** Pay per result — per filing or per financial data point returned. No subscription.

### 🗺️ Roadmap

- Full-text filing search
- Insider transactions (Form 4) parsing
- New-filing alerts (since last run)

# Actor input Schema

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

"filings" lists a company's SEC filings. "financials" pulls XBRL financial figures.

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

Stock tickers, e.g. AAPL, MSFT, TSLA.

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

SEC CIK numbers, if you prefer them over tickers.

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

Filter filings by form type. Leave empty for all forms.

## `maxFilingsPerCompany` (type: `integer`):

Maximum number of filings to return per company (filings mode).

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

US-GAAP XBRL concept names to pull.

## `maxDataPointsPerConcept` (type: `integer`):

Maximum number of recent data points to return per financial concept (financials mode).

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

The SEC requires a contact email in the request User-Agent. Use your email for uninterrupted access.

## Actor input object example

```json
{
  "mode": "filings",
  "tickers": [
    "AAPL"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "maxFilingsPerCompany": 20,
  "concepts": [
    "Revenues",
    "NetIncomeLoss",
    "Assets",
    "Liabilities",
    "StockholdersEquity"
  ],
  "maxDataPointsPerConcept": 8,
  "contactEmail": "contact@example.com"
}
```

# 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 = {
    "tickers": [
        "AAPL"
    ],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K"
    ],
    "concepts": [
        "Revenues",
        "NetIncomeLoss",
        "Assets",
        "Liabilities",
        "StockholdersEquity"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hichemdev/sec-edgar-extractor").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 = {
    "tickers": ["AAPL"],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K",
    ],
    "concepts": [
        "Revenues",
        "NetIncomeLoss",
        "Assets",
        "Liabilities",
        "StockholdersEquity",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("hichemdev/sec-edgar-extractor").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 '{
  "tickers": [
    "AAPL"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "concepts": [
    "Revenues",
    "NetIncomeLoss",
    "Assets",
    "Liabilities",
    "StockholdersEquity"
  ]
}' |
apify call hichemdev/sec-edgar-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC EDGAR Extractor – Filings & Financials",
        "description": "Extract SEC filings (10-K, 10-Q, 8-K and more) and XBRL financials - revenue, net income, assets and any US-GAAP concept - for any US public company by ticker or CIK. Powered by the free official SEC EDGAR API: fast, structured, and never blocked.",
        "version": "0.1",
        "x-build-id": "gdueExgQhKMD0BzdW"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/hichemdev~sec-edgar-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-hichemdev-sec-edgar-extractor",
                "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/hichemdev~sec-edgar-extractor/runs": {
            "post": {
                "operationId": "runs-sync-hichemdev-sec-edgar-extractor",
                "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/hichemdev~sec-edgar-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-hichemdev-sec-edgar-extractor",
                "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": "What to extract",
                        "enum": [
                            "filings",
                            "financials"
                        ],
                        "type": "string",
                        "description": "\"filings\" lists a company's SEC filings. \"financials\" pulls XBRL financial figures.",
                        "default": "filings"
                    },
                    "tickers": {
                        "title": "Tickers",
                        "type": "array",
                        "description": "Stock tickers, e.g. AAPL, MSFT, TSLA.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ciks": {
                        "title": "CIKs (optional)",
                        "type": "array",
                        "description": "SEC CIK numbers, if you prefer them over tickers.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "formTypes": {
                        "title": "Form types (filings mode)",
                        "type": "array",
                        "description": "Filter filings by form type. Leave empty for all forms.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxFilingsPerCompany": {
                        "title": "Max filings per company",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of filings to return per company (filings mode).",
                        "default": 20
                    },
                    "concepts": {
                        "title": "Financial concepts (financials mode)",
                        "type": "array",
                        "description": "US-GAAP XBRL concept names to pull.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxDataPointsPerConcept": {
                        "title": "Max data points per concept",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of recent data points to return per financial concept (financials mode).",
                        "default": 8
                    },
                    "contactEmail": {
                        "title": "Contact email (for SEC User-Agent)",
                        "type": "string",
                        "description": "The SEC requires a contact email in the request User-Agent. Use your email for uninterrupted access.",
                        "default": "contact@example.com"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
