# SEC EDGAR Filings & Financials API - 10-K, 10-Q, 8-K, XBRL (`digivibetech/sec-edgar-filings-financials`) Actor

Look up US public companies by ticker or CIK via the official SEC EDGAR APIs: new filings (10-K, 10-Q, 8-K...) with links, plus clean annual or quarterly financials (revenue, net income, assets, cash flow, EPS, margins). Only-new mode for monitoring. $0.0004 per filing.

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

## Pricing

from $0.40 / 1,000 filing listed (one filing record returned)s

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 API - 10-K, 10-Q, 8-K, XBRL

Get **US public company filings and clean financials** straight from the **official SEC EDGAR APIs** (data.sec.gov). Give tickers or CIK numbers; get every new 10-K, 10-Q, 8-K, S-1 or proxy with direct document links, plus an optional ready-to-use financials table (revenue, profit, EPS, cash flow, balance sheet, margins).

### Quick start: example input, output and cost

Input: `{"companies": ["AAPL", "MSFT"], "forms": ["10-K", "8-K"], "maxFilingsPerCompany": 5, "includeFinancials": true, "years": 3}`
Output: up to 10 filing records + 2 financials records. Cost: 10 x $0.0004 + 2 x $0.002 = **$0.008**.

```json
{"recordType": "filing", "company": "Apple Inc.", "tickers": ["AAPL"], "form": "10-K", "filingDate": "2025-10-31", "reportDate": "2025-09-27",
 "accessionNumber": "0000320193-25-000079", "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/.../aapl-20250927.htm", "isXBRL": true}
{"recordType": "financials", "company": "Apple Inc.", "period": "annual", "periods": [{"periodEnd": "2025-09-27", "revenue": 416161000000, "netIncome": 112010000000,
 "epsDiluted": 7.46, "operatingCashFlow": 111482000000, "freeCashFlow": 98767000000, "netMargin": 0.2692, "...": "..."}]}
```

### Use cases

- **Filing alerts**: schedule daily with *Only new filings* + a webhook to Slack, Make or n8n when a watched company files an 8-K.
- **Fundamentals for screening and AI agents**: 14 key metrics per year/quarter in one record, no XBRL wrangling.
- **Research datasets**: thousands of tickers per run, CSV/Excel/JSON export.

### Year-over-year growth and 8-K item titles

- Every financials period carries `yoyGrowth` (revenue, gross profit, operating income, net income, operating cash flow, free cash flow) as a fraction of the same period one year earlier, plus `yoyPriorPeriodEnd`. Quarterly rows compare with the same quarter a year before. A value is `null` when there is no comparable period or the base is zero.
- 8-K filings get `itemTitles` next to the item codes, using the SEC's official names (for example `2.02` = "Results of Operations and Financial Condition"), so an alert can say what was filed without opening it.

### Limits

- US SEC filers only. Insider forms (3, 4, 5, 144) and individual filers are left out on purpose.
- Financial metrics come from the company's XBRL facts. Companies that tag items differently can have gaps, which stay `null`.
- Data is as fresh as SEC's own APIs, which can lag a few minutes behind the EDGAR website.
- Not investment advice.

### Pricing (pay per event, no start fee)

| Event | Price |
|---|---|
| Filing listed | $0.0004 |
| Company financials (all requested periods) | $0.002 |

Unknown tickers, companies without XBRL data and errors are **free** and explained in the `ERRORS` record. Your max cost per run is respected exactly.

### Fields

Filing: cik, company, tickers, form, filingDate, reportDate, acceptedAt, accessionNumber, items (8-K item codes), description, isXBRL, sizeBytes, documentUrl, filingIndexUrl.
Financials (per period): periodEnd, revenue, grossProfit, operatingIncome, netIncome, epsBasic, epsDiluted, operatingCashFlow, capex, freeCashFlow, totalAssets, totalLiabilities, stockholdersEquity, cash, longTermDebt, sharesOutstanding, grossMargin, netMargin. Latest-filed values win (restatements applied). USD only.

### Responsible use and data source

- Data comes only from the SEC's official public APIs, which are designed for automated access and need no key. The actor follows SEC fair-access rules: a declared User-Agent with contact details, at most 5 requests per second (SEC allows 10), and Retry-After honoured. EDGAR data is US government public-domain information.
- **No personal data**: insider forms (3, 4, 5, 144) and individual filers are excluded; addresses and phone numbers are not output.
- Not investment advice. Always check the original filing (linked in every record).

Maintained by DigiVibeTech. Questions: [digivibetech.com/support](https://digivibetech.com/support/)

# Actor input Schema

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

US-listed tickers (AAPL, BRK.B) or SEC CIK numbers (320193 or 0000320193).

## `companiesText` (type: `string`):

Optional: paste many tickers/CIKs separated by commas or new lines.

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

Only these forms (e.g. 10-K, 10-Q, 8-K, S-1, DEF 14A). Empty = all company forms. Amendments (/A) are included. Insider forms 3/4/5/144 are always excluded.

## `sinceDate` (type: `string`):

Optional YYYY-MM-DD: only filings filed on or after this date.

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

Newest first. 0 = no filings (financials only). Covers the most recent ~1000 filings per company.

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

Return only filings not returned in earlier runs with the same state key. Ideal for a daily schedule + webhook.

## `stateKey` (type: `string`):

Separate monitors by using different keys.

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

Add one record per company with key XBRL metrics (revenue, net income, EPS, cash flow, balance sheet, margins). $0.002 per company.

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

Fiscal years or quarters.

## `years` (type: `integer`):

How many fiscal years (quarterly: years x 4 quarters).

## Actor input object example

```json
{
  "companies": [
    "AAPL",
    "MSFT"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "maxFilingsPerCompany": 20,
  "onlyNew": false,
  "stateKey": "default",
  "includeFinancials": false,
  "period": "annual",
  "years": 5
}
```

# Actor output Schema

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

All result items (overview view)

## `errors` (type: `string`):

Inputs that could not be processed, with the reason

## `summary` (type: `string`):

Counts of processed, billed and failed items

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

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,digivibetech/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/30sn0LmeBgL3eZy6r/builds/a2jhbVcZt94UeZf0S/openapi.json
