# SEC Company Financials — XBRL Balance Sheet & Income (`gochujang/sec-company-financials`) Actor

Extract financial statements for any US public company from SEC EDGAR XBRL data: revenue, net income, EPS, total assets, debt, cash flow, and 20+ metrics. Quarterly or annual. Free, no API key. Works for all ~10,000 SEC-reporting companies by ticker or CIK.

- **URL**: https://apify.com/gochujang/sec-company-financials.md
- **Developed by:** [Hojun Lee](https://apify.com/gochujang) (community)
- **Categories:** Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 company analyzeds

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 Company Financials — XBRL Balance Sheet, Income Statement & Cash Flow

Extract structured financial statements for any US public company directly from SEC EDGAR XBRL data. Input a list of stock tickers (AAPL, MSFT, NVDA, etc.) or SEC CIK numbers and get back quarterly or annual revenue, net income, EPS, total assets, debt, equity, operating cash flow, and 20+ other financial metrics — for free, with no API key.

### What It Does

- Looks up companies by stock ticker or SEC CIK number (works for all ~10,000 SEC-reporting companies)
- Extracts 20+ standardized financial concepts from US GAAP XBRL filings
- Returns quarterly (10-Q) or annual (10-K) data, configurable number of periods
- Fetches multiple companies concurrently for speed
- Data sourced directly from SEC EDGAR — the most authoritative source for US company financials

### Available Financial Concepts

| Concept | Label | Statement |
|---------|-------|-----------|
| `Revenues` | Revenue | Income |
| `GrossProfit` | Gross Profit | Income |
| `OperatingIncomeLoss` | Operating Income | Income |
| `NetIncomeLoss` | Net Income | Income |
| `EarningsPerShareBasic` | EPS Basic | Income |
| `EarningsPerShareDiluted` | EPS Diluted | Income |
| `Assets` | Total Assets | Balance Sheet |
| `AssetsCurrent` | Current Assets | Balance Sheet |
| `CashAndCashEquivalentsAtCarryingValue` | Cash & Equivalents | Balance Sheet |
| `Liabilities` | Total Liabilities | Balance Sheet |
| `LiabilitiesCurrent` | Current Liabilities | Balance Sheet |
| `LongTermDebt` | Long-Term Debt | Balance Sheet |
| `StockholdersEquity` | Stockholders Equity | Balance Sheet |
| `RetainedEarningsAccumulatedDeficit` | Retained Earnings | Balance Sheet |
| `CommonStockSharesOutstanding` | Shares Outstanding | Balance Sheet |
| `NetCashProvidedByUsedInOperatingActivities` | Operating Cash Flow | Cash Flow |
| `NetCashProvidedByUsedInInvestingActivities` | Investing Cash Flow | Cash Flow |
| `NetCashProvidedByUsedInFinancingActivities` | Financing Cash Flow | Cash Flow |
| `PaymentsForRepurchaseOfCommonStock` | Share Buybacks | Cash Flow |
| `PaymentsOfDividendsCommonStock` | Dividends Paid | Cash Flow |

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `companies` | array | `["AAPL", "MSFT", "NVDA"]` | Tickers or CIK numbers |
| `periodType` | string | `"quarterly"` | `"quarterly"` or `"annual"` |
| `periods` | integer | `20` | Periods to return (max 40) |
| `concepts` | array | 10 key concepts | Financial concepts to extract |

### Sample Output

```json
{
  "cik": "320193",
  "ticker": "AAPL",
  "company": "Apple Inc.",
  "concept": "Revenues",
  "label": "Revenue",
  "statement": "income",
  "end_date": "2024-06-29",
  "start_date": "2024-03-31",
  "value": 85777000000,
  "form": "10-Q",
  "fiscal_period": "Q3",
  "fiscal_year": 2024,
  "accession": "0000320193-24-000081"
}
```

### Use Cases

**Fundamental analysis** — Pull quarterly revenue, earnings, and cash flow for any stock in seconds. Compare gross margins, EPS trends, and debt levels across companies.

**Earnings tracker pipeline** — Run after earnings announcements to extract the latest 10-Q data as soon as it's filed with the SEC.

**Comparative analysis** — Pass 10+ tickers at once to build a comparative financial model across an industry sector.

**Dividend and buyback tracking** — Monitor `PaymentsOfDividendsCommonStock` and `PaymentsForRepurchaseOfCommonStock` to track capital return programs.

**Debt monitoring** — Track `LongTermDebt` trends alongside operating cash flow to assess leverage and interest coverage.

**Balance sheet health** — Monitor current ratio (`AssetsCurrent` / `LiabilitiesCurrent`) and equity trends over time.

**Financial modeling** — Extract historical data for DCF models, ratio analysis, or ML feature engineering.

### Pricing

- **$0.01 per company analyzed** (PPE — Pay Per Event)
- 3 companies in one run ≈ $0.03

### FAQ

**Does this work for international companies listed in the US?**
Yes — foreign private issuers that file 20-F or 40-F with the SEC are included. Examples: TSMC (TSM), Samsung (SSNLF), Toyota (TM).

**Why is some data missing for certain companies?**
Not all companies use the same XBRL concept names. Small companies and early EDGAR filers may use different taxonomy tags. The actor tries the most common concepts — for edge cases, check the SEC EDGAR company facts API directly.

**How far back does the data go?**
XBRL reporting became mandatory for large accelerated filers in 2009. Most large-cap companies have quarterly data from 2009–2010 onward.

**Can I get data for private companies?**
No — SEC EDGAR only covers companies required to file with the SEC (public companies and SEC-registered private issuers).

**What is a CIK number?**
The Central Index Key (CIK) is the SEC's unique identifier for each filer. You can find a company's CIK on the EDGAR company search at `efts.sec.gov`. Apple's CIK is `320193`, Microsoft's is `789019`.

### Data Source

[SEC EDGAR XBRL Company Facts API](https://data.sec.gov/api/xbrl/) — U.S. Securities and Exchange Commission, free public data.

***

### Why use SEC Company Financials?

1. **Fundamental analysis at scale** — Pull quarterly revenue, net income, EPS, and cash flow for any of 10,000 SEC filers in seconds. Build earnings trend charts, margin analysis, and DCF models without subscribing to Bloomberg or FactSet.
2. **Earnings tracker pipeline** — Run after SEC filings go live to extract the latest 10-Q/10-K data as soon as it's filed. Automate your earnings database without manual copy-paste.
3. **Sector comparative analysis** — Pass 10+ tickers at once to compare gross margins, debt ratios, and operating cash flows across an industry. One run, structured output, ready for pandas/Excel.
4. **Capital return monitoring** — Track `PaymentsOfDividendsCommonStock` and `PaymentsForRepurchaseOfCommonStock` over time to monitor share buyback programs and dividend sustainability.
5. **Crypto company analysis** — Track Strategy (MSTR), Coinbase (COIN), Marathon (MARA), and Riot (RIOT) financials alongside their crypto treasury holdings for integrated crypto equity research.

***

### Related actors

- [Corporate Crypto Treasury Tracker](https://apify.com/gochujang/corporate-crypto-treasury) — MicroStrategy/Marathon BTC holdings to pair with SEC financial statement data
- [Technical Indicator Screener](https://apify.com/gochujang/technical-indicator-screener) — Price/technical data to complement fundamental SEC financials
- [Institutional Crypto Flows](https://apify.com/gochujang/institutional-crypto-flows) — ETF fund flows for the same public companies tracked via SEC

### Feedback

If this actor powers your financial research, a review helps others find it: [Leave a review on Apify Store](https://apify.com/gochujang/sec-company-financials#reviews)

***

**Keywords:** SEC EDGAR financials, XBRL financial data, company revenue scraper, SEC 10-K data extractor, quarterly earnings data, EPS tracker SEC, balance sheet scraper, cash flow statement SEC, US public company financials, CIK lookup, ticker financial data, EDGAR XBRL parser, fundamental analysis data, free financial statements

# Actor input Schema

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

List of stock tickers (e.g. 'AAPL', 'MSFT', 'NVDA') or SEC CIK numbers (e.g. '320193'). Can mix tickers and CIKs.

## `periodType` (type: `string`):

Return 'quarterly' (10-Q/10-K) or 'annual' (10-K/20-F only) data.

## `periods` (type: `integer`):

Number of periods to return per metric (most recent first). Max 40.

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

Which financial concepts to extract. Leave blank to return all 20+ default concepts. Available: Revenues, GrossProfit, OperatingIncomeLoss, NetIncomeLoss, EarningsPerShareBasic, EarningsPerShareDiluted, Assets, AssetsCurrent, CashAndCashEquivalentsAtCarryingValue, Liabilities, LiabilitiesCurrent, LongTermDebt, StockholdersEquity, RetainedEarningsAccumulatedDeficit, CommonStockSharesOutstanding, NetCashProvidedByUsedInOperatingActivities, NetCashProvidedByUsedInInvestingActivities, NetCashProvidedByUsedInFinancingActivities, PaymentsForRepurchaseOfCommonStock, PaymentsOfDividendsCommonStock.

## Actor input object example

```json
{
  "companies": [
    "AAPL",
    "MSFT",
    "NVDA"
  ],
  "periodType": "quarterly",
  "periods": 20,
  "concepts": [
    "Revenues",
    "GrossProfit",
    "OperatingIncomeLoss",
    "NetIncomeLoss",
    "EarningsPerShareDiluted",
    "Assets",
    "CashAndCashEquivalentsAtCarryingValue",
    "LongTermDebt",
    "StockholdersEquity",
    "NetCashProvidedByUsedInOperatingActivities"
  ]
}
```

# Actor output Schema

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

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

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gochujang/sec-company-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/JOvrRC0FXsVaKoTmM/builds/w5KdZofmWV4e3U7vQ/openapi.json
