# SEC EDGAR Filings & Financials (Official API) (`creativefour/sec-edgar-filings`) Actor

Get SEC filings (10-K, 10-Q, 8-K, Form 4, S-1 and more) for any US public company by ticker, with direct document links, plain-English 8-K items, optional key financials, and a new-filings-only mode for alerts. Uses SEC's official JSON API, not HTML scraping.

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

## Pricing

$3.00 / 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.

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

### What does SEC EDGAR Filings & Financials do?

It pulls **SEC filings for any US public company**: 10-K, 10-Q, 8-K, Form 4, S-1, DEF 14A, 13F, and more. Enter **tickers** (like AAPL) or CIKs and get **direct links to every document**, **8-K items in plain English**, and optionally **key financials reported in each 10-K and 10-Q**, such as revenue, net income, EPS, assets, and cash flow.

It uses the **SEC's official JSON API** (data.sec.gov), not HTML scraping, so it stays stable when the EDGAR website changes, and it follows the SEC's fair-access rules. Because it runs on Apify, you can **schedule it with "New filings only"** and get alerts in Slack, email, or Google Sheets whenever a company you follow files something.

### Why use it?

- **Monitor companies.** Schedule a daily run with **New filings only** to catch new 8-Ks (earnings, executive changes, acquisitions), insider Form 4s, or new offerings as soon as they post.
- **Build research datasets.** Pull years of 10-K and 10-Q filings with links and headline financials for screening, backtests, or due diligence.
- **Feed AI agents and RAG pipelines** with clean filing metadata and document URLs.
- **Understand 8-Ks at a glance.** Item codes like `5.02` come with plain-English descriptions ("Departure or appointment of directors or officers").

### How to use it

1. Open the **Input** tab and list tickers or CIKs.
2. Optional: pick form types (for example `10-K`, `10-Q`, `8-K`) and a date range.
3. Optional: turn on **Add key financials** or **New filings only**.
4. Click **Start**, then open the **Output** tab: **Filings**, or **Financials (10-K / 10-Q)**.
5. To monitor, save the input as a task and **schedule it** (for example, every morning).

### Input

| Field | What it does |
|---|---|
| **Companies** | Tickers (AAPL) or CIK numbers (320193). Unknown tickers are skipped with a warning. |
| **Form types** | Filter to specific forms. Leave empty for everything. |
| **Filed on or after / before** | Date range (YYYY-MM-DD). Older filings are fetched automatically when the range needs them. |
| **Max filings per company** | Most recent first. |
| **Add key financials** | Adds revenue, net income, operating income, diluted EPS, assets, liabilities, equity, cash, and operating cash flow to each 10-K and 10-Q. |
| **New filings only** | Remembers what it already returned for this watchlist and returns only new filings on later runs. |
| **Your contact email for SEC** | Optional. Added to the request header, as the SEC asks of automated clients. |

```json
{
  "companies": ["AAPL", "MSFT", "NVDA"],
  "formTypes": ["8-K", "4"],
  "onlyNew": true
}
```

### Output

One row per filing. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
  "ticker": "MSFT",
  "cik": "0000789019",
  "companyName": "MICROSOFT CORP",
  "form": "10-K",
  "filingDate": "2026-07-29",
  "reportDate": "2026-06-30",
  "accessionNumber": "0001193125-26-323660",
  "items": [],
  "itemDescriptions": [],
  "documentUrl": "https://www.sec.gov/Archives/edgar/data/789019/000119312526323660/msft-20260630.htm",
  "filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/789019/000119312526323660/0001193125-26-323660-index.htm",
  "industry": "Services-Prepackaged Software",
  "financials": {
    "periodEnd": "2026-06-30",
    "revenue": 331839000000,
    "netIncome": 133749000000,
    "epsDiluted": 17.95
  }
}
```

### Data fields

| Field | Description |
|---|---|
| `ticker`, `cik`, `companyName`, `industry` | Who filed |
| `form`, `filingDate`, `reportDate`, `acceptedAt` | What was filed, and when |
| `items`, `itemDescriptions` | 8-K item codes and their plain-English meaning |
| `documentUrl`, `filingIndexUrl` | Direct links to the main document and the full filing index |
| `financials` | Key XBRL values reported in that 10-K or 10-Q (optional) |
| `accessionNumber`, `sizeBytes`, `isXBRL` | Filing identifiers and details |

### How much does it cost to get SEC filings?

You pay per filing returned. With **New filings only**, scheduled runs that find nothing new cost nothing for results. Set a **maximum charge per run** in the run options, and the Actor stops cleanly at that limit.

### Use it from AI agents (MCP)

AI agents can find and run this Actor through the [Apify MCP server](https://docs.apify.com/integrations/mcp).

- **Claude, ChatGPT, or any MCP client:** add `https://mcp.apify.com?tools=creativefour/sec-edgar-filings` as a custom connector, and sign in to Apify when prompted.
- **Claude Code, Cursor, VS Code, or Codex:** run `apify mcp install claude-code` (swap in your client's name), then ask your agent for "the latest 8-K filings for NVDA using creativefour/sec-edgar-filings".

### FAQ and support

**Where does the data come from?** Directly from the SEC's official EDGAR JSON API. Filings appear as soon as the SEC publishes them.

**Why are some financials missing?** Companies tag financials in XBRL differently; the Actor takes the standard US-GAAP concepts reported in that exact filing. If a company doesn't use one, that field is left out rather than guessed.

**Is this investment advice?** No. It's a data tool; always read the original filing.

**Found a bug or need a feature?** Open an issue on the **Issues** tab. Custom versions are available on request.

# Actor input Schema

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

One per line: a stock ticker like AAPL, or an SEC CIK number like 320193.

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

Only these forms, for example 10-K, 10-Q, 8-K, 4, S-1, DEF 14A, 13F-HR. Leave empty for all forms.

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

YYYY-MM-DD. Leave empty for no lower limit.

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

YYYY-MM-DD. Leave empty for no upper limit.

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

Most recent first.

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

Revenue, net income, operating income, diluted EPS, assets, liabilities, equity, cash, and operating cash flow, as reported in that filing (from SEC XBRL data).

## `onlyNew` (type: `boolean`):

Remember filings already returned for this company and form list, and return only new ones on later runs. Schedule the Actor to get alerts on new filings.

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

The SEC asks automated clients to identify themselves. It's added to the request's User-Agent header only, never stored or shown elsewhere.

## Actor input object example

```json
{
  "companies": [
    "AAPL",
    "MSFT"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "maxFilingsPerCompany": 5,
  "includeFinancials": true,
  "onlyNew": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (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 = {
    "companies": [
        "AAPL",
        "MSFT"
    ],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K"
    ],
    "maxFilingsPerCompany": 5,
    "includeFinancials": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("creativefour/sec-edgar-filings").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",
    ],
    "maxFilingsPerCompany": 5,
    "includeFinancials": True,
}

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

```

## MCP server setup

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

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/KahYSFYi8odmuJIhk/builds/39e81GUSKSUlw2GSz/openapi.json
