# SEC EDGAR Filings, Financials & Full-Text Search (`parth-tools/sec-edgar-filings-financials`) Actor

Get SEC EDGAR data from the official SEC APIs: company filings (10-K, 10-Q, 8-K, S-1, Form 4…) with document links, XBRL financials (revenue, net income, EPS, assets, cash flow) by year or quarter, and full-text search.

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

## Pricing

from $0.30 / 1,000 filings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## SEC EDGAR Filings, Financials & Full-Text Search

**Pull U.S. public-company data straight from the SEC's official EDGAR APIs** — no scraping, no API key. Three modes:

1. **Company filings** — every filing for a ticker or CIK (10-K, 10-Q, 8-K, S-1, DEF 14A, Form 4, 13F…) with filing/report dates, 8-K item codes, description and direct links to the main document and filing index.
2. **Financial statements (XBRL)** — clean annual or quarterly rows with **revenue, cost of revenue, gross profit, operating income, net income, EPS (basic/diluted), R\&D, operating cash flow, capex, dividends, total assets, liabilities, equity, cash, long-term debt, shares outstanding** and net margin.
3. **Full-text search** — search the text of all EDGAR filings since 2001 (e.g. `"artificial intelligence" supply chain` in 10-Ks) with company, form, date and document link.

Tickers are resolved to CIKs automatically. Requests respect the SEC's fair-access limit (≤ 8 requests/second).

### Use cases

- 📈 **Investing & equity research** — multi-year financials for a watchlist in one table
- 🔔 **Filing alerts** — schedule daily runs for 8-Ks or Form 4 insider filings of selected companies
- 🧠 **AI / RAG** — collect 10-K and 10-Q document links to feed into LLM pipelines (pair with the Website to Markdown Crawler)
- 🕵️ **Due diligence & competitive intelligence** — full-text search for products, risks, customers or lawsuits across all filers

### Input examples

Latest annual & quarterly reports and 8-Ks:

```json
{ "mode": "filings", "companies": ["AAPL", "MSFT", "320193"], "formTypes": ["10-K", "10-Q", "8-K"], "dateFrom": "2025-01-01", "maxFilingsPerCompany": 50 }
```

Five years of annual financials:

```json
{ "mode": "financials", "companies": ["AAPL", "NVDA", "AMZN"], "period": "annual", "maxPeriods": 5 }
```

Full-text search:

```json
{ "mode": "search", "query": "\"web scraping\"", "formTypes": ["10-K"], "dateFrom": "2024-01-01", "maxResults": 200 }
```

### Output examples

Financial period:

```json
{
    "type": "financial_period",
    "companyName": "Apple Inc.",
    "cik": "320193",
    "period": "annual",
    "fiscalYear": 2025,
    "fiscalPeriod": "FY",
    "periodStart": "2024-09-29",
    "periodEnd": "2025-09-27",
    "revenue": 416161000000,
    "grossProfit": 195201000000,
    "netIncome": 112010000000,
    "epsDiluted": 7.46,
    "totalAssets": 359241000000,
    "cash": 35934000000,
    "operatingCashFlow": 111482000000,
    "netMargin": 0.2692,
    "currency": "USD"
}
```

Filing:

```json
{
    "type": "filing",
    "companyName": "Apple Inc.",
    "tickers": ["AAPL"],
    "form": "8-K",
    "filingDate": "2026-07-30",
    "items": "2.02,9.01",
    "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm",
    "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.htm"
}
```

### Pricing

| Event | Price | When |
|---|---|---|
| Filing | **$0.0003** ($0.30 / 1,000) | Each filing record |
| Financial period | **$0.001** | Each company-year or company-quarter with ~18 metrics |
| Full-text search hit | **$0.0003** | Each search result |
| Actor start | $0.00005 | Once per run |

Unknown tickers return free error rows.

### FAQ

**Where does the data come from?** Only official SEC endpoints: `data.sec.gov` submissions and XBRL company facts, and EDGAR full-text search. Values are as reported by companies in XBRL.

**Why is a metric empty?** Companies use different XBRL tags; the Actor checks common alternatives, but some items aren't reported (e.g. banks have no "gross profit"). Quarterly cash-flow items are usually reported year-to-date only.

**Foreign filers?** 20-F/40-F annual data is included when tagged in XBRL; amounts are USD only in this version.

**Contact email?** The SEC asks automated tools to identify themselves. Optionally enter your email and it'll be added to the User-Agent sent to sec.gov.

# Actor input Schema

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

<b>Filings</b>: list a company's filings (10-K, 10-Q, 8-K, S-1, Form 4, 13F…) with document links. <b>Financials</b>: key income-statement, balance-sheet and cash-flow numbers per fiscal year or quarter from XBRL. <b>Full-text search</b>: search the text of all EDGAR filings since 2001.

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

Filings & financials modes: tickers like <code>AAPL</code>, <code>BRK-B</code> or CIK numbers like <code>320193</code>.

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

Optional filter, e.g. <code>10-K</code>, <code>10-Q</code>, <code>8-K</code>, <code>S-1</code>, <code>4</code>, <code>13F-HR</code>, <code>DEF 14A</code>. Empty = all forms.

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

Only filings filed on/after this date (filings & search modes).

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

Only filings filed on/before this date.

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

Newest first. 0 = all matching filings.

## `period` (type: `string`):

Financials mode: fiscal years (10-K) or quarters (10-Q). Quarterly cash-flow items are often reported year-to-date only and may be empty.

## `maxPeriods` (type: `integer`):

Financials mode: most recent N periods.

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

Search mode. Use quotes for exact phrases, e.g. <code>"artificial intelligence" supply chain</code>.

## `maxResults` (type: `integer`):

Search mode cap (the SEC search returns at most 10,000 hits).

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

The SEC asks automated tools to declare contact info in the User-Agent. If you provide an email it is added to the request header sent to sec.gov (and nowhere else).

## Actor input object example

```json
{
  "mode": "filings",
  "companies": [
    "AAPL",
    "MSFT"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "maxFilingsPerCompany": 50,
  "period": "annual",
  "maxPeriods": 10,
  "maxResults": 100
}
```

# Actor output Schema

## `all` (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 = {
    "mode": "filings",
    "companies": [
        "AAPL",
        "MSFT"
    ],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K"
    ]
};

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

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

```

## MCP server setup

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

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/sLkPFTu0vAx4nYFHZ/builds/T9kFPfId0thPAcd7F/openapi.json
