# Public Company Filings Snapshot (`jetlaunch/public-company-filings-snapshot`) Actor

Company profile, normalized XBRL key financials, filing lists and 10-K/10-Q Item 1, 1A and 7 text from public US regulatory filings data.

- **URL**: https://apify.com/jetlaunch/public-company-filings-snapshot.md
- **Developed by:** [Chris O'Byrne](https://apify.com/jetlaunch) (community)
- **Categories:** Business, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 company snapshots

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

### Public Company Filings Snapshot

This Actor turns a stock ticker or CIK into a structured company snapshot built from public U.S. Securities and Exchange Commission filings data: company profile, normalized key financials from the latest annual and quarterly XBRL filings, and the most recent filings list. It also lists filings by form type and date range, and extracts Item 1, Item 1A and Item 7 text from 10-K and 10-Q documents. You get clean JSON, CSV or Excel through the Apify API, with no need to learn the underlying file layout or XBRL tag names.

#### Who is it for

- Analysts, researchers and fintech builders who need a quick, comparable financial summary for many public companies.
- Teams that feed filings into search, RAG or LLM pipelines and want risk factor and MD\&A text without parsing raw HTML.
- Compliance and market-data teams that monitor new 10-K, 10-Q and 8-K filings for a watchlist.

#### Modes

1. **Company snapshot** (default). One record per company with name, CIK, SIC code and description, state of incorporation, fiscal year end, exchanges, filer category, and a latest annual block and a latest quarterly block. Each block reports revenue, net income, operating income, assets, liabilities, stockholders' equity, cash, and basic and diluted EPS, each with the XBRL tag it came from, the unit, the period start and end dates, and the form and accession number it was reported in. Flat fields such as `annualRevenue` and `quarterlyNetIncome` are included for spreadsheet use.
2. **Filing list**. Filing records for a company filtered by form types (for example 10-K, 10-Q, 8-K) and a filing date range: accession number, form, filing date, report date, 8-K items, primary document URL and index URL. Older history is read when the range needs it.
3. **Filing section extract**. Give 10-K or 10-Q document URLs or accession numbers, or just a ticker to use its latest filing. The Actor returns the text of Item 1, Item 1A (Risk Factors) and Item 7 (MD\&A), cut to a character limit you set, with the full length reported. In a 10-Q, Item 1 is the financial statements and the MD\&A is Item 2.

#### Input

| Field | Meaning |
|---|---|
| `mode` | `company-snapshot`, `filings` or `filing-section-extract` |
| `companies` | Tickers (AAPL, BRK-B) or CIK numbers, up to 500 |
| `latestFilingsCount` | Snapshot mode: filings listed inside each snapshot, default 10 |
| `formTypes`, `includeAmendments`, `filedFrom`, `filedTo`, `maxFilingsPerCompany` | Filing list filters |
| `filings`, `extractForm`, `sections`, `maxCharsPerSection` | Section extraction settings |

Example input:

```json
{ "mode": "company-snapshot", "companies": ["AAPL"] }
```

#### Output example

Abridged snapshot record from a real run (Apple, values in US dollars):

```json
{
  "recordType": "company-snapshot",
  "status": "ok",
  "ticker": "AAPL",
  "companyName": "Apple Inc.",
  "cik": "0000320193",
  "sic": "3571",
  "sicDescription": "Electronic Computers",
  "fiscalYearEnd": "09-26",
  "annualForm": "10-K",
  "annualPeriodEnd": "2025-09-27",
  "annualRevenue": 416161000000,
  "annualNetIncome": 112010000000,
  "annualLiabilities": 285508000000,
  "annualEpsDiluted": 7.46,
  "quarterlyForm": "10-Q",
  "quarterlyPeriodEnd": "2026-06-27",
  "latestAnnual": { "accession": "0000320193-25-000079", "facts": { "revenue": { "tag": "RevenueFromContractWithCustomerExcludingAssessedTax", "periodStart": "2024-09-29", "periodEnd": "2025-09-27" } } }
}
```

Filing records and section records have their own fields (see the Filing records and Filing sections table views).

#### Pricing

Pay per event. You pay only for results that were returned.

| Event | Price | Charged when |
|---|---|---|
| Company snapshot | $0.01 | A snapshot with financial data is returned |
| Filing record | $0.002 | Per filing record returned in filing list mode |
| Filing section extract | $0.02 | Per section of at least 500 characters returned |

Not found tickers, snapshots without financial data, empty filing lists, missing sections and sections shorter than 500 characters are returned as records but never charged. A small platform start fee (about $0.00005) also applies. Measured on the Apify platform, one snapshot used about 0.0003 compute units and five large-company snapshots about 0.0006, so compute cost is a small fraction of a cent per result.

#### Data source and licence

All data comes from the official SEC EDGAR interfaces at data.sec.gov (submissions and XBRL company facts) and the sec.gov Archives. The SEC states that information on sec.gov is public and may be copied and distributed; the SEC is the source. The Actor follows the SEC fair access policy: it sends a declared User-Agent with a company name and contact email, makes at most about 3 requests per second (the SEC limit is 10), caches responses during a run, and does not crawl. If the SEC answers 403 or 429, the Actor waits, retries once, and then stops with a clear error instead of trying to get around the limit. This Actor is not affiliated with or endorsed by the U.S. Securities and Exchange Commission. EDGAR is a trademark of the SEC.

#### FAQ

**Which financial concepts are used?** US GAAP (us-gaap) XBRL concepts reported in 10-K and 10-Q filings. When a company has no Liabilities tag, liabilities are derived from total liabilities and equity minus equity and flagged `derived: true`.

**Why is a company marked `no_financial_data`?** Foreign private issuers (20-F, 40-F), funds and shell companies do not file 10-K or 10-Q with US GAAP data. They are returned without charge.

**Why is a section short or missing?** Some filers use a cross-reference index or incorporate items by reference, so the Item heading has no body text. These come back with status `too_short` or `not_found` and are not charged.

**Does it include insider trades?** No. Forms 3, 4, 5 and 144 are person-level and are excluded from this version.

**How fast is it?** In measured runs a snapshot took about one second per company, limited mainly by the polite request rate. Large runs scale linearly.

#### Limitations

Figures are as reported in XBRL and are not restated or adjusted. Section detection is heuristic text parsing of Item headings and can miss unusual layouts. This is not investment advice.

#### Support

Use the Issues tab of this Actor for bug reports and requests.

# Actor input Schema

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

company-snapshot: profile plus key facts and latest filings per company. filings: filing records filtered by form type and date. filing-section-extract: Item 1, Item 1A and Item 7 text from a 10-K or 10-Q.

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

Stock tickers such as AAPL or BRK-B, or CIK numbers such as 320193. Used by all modes. In filing-section-extract mode it is only used when no filings are listed (the latest 10-K or 10-Q of each company is extracted). Up to 500 per run.

## `latestFilingsCount` (type: `integer`):

Snapshot mode: how many of the most recent filings to list inside each snapshot (insider forms 3, 4, 5 and 144 are never listed). The list is part of the snapshot price.

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

Filings mode: form types to return, for example 10-K, 10-Q, 8-K, S-1. Leave empty for all types except insider forms 3, 4, 5 and 144, which are not supported.

## `includeAmendments` (type: `boolean`):

When on, a requested form such as 10-K also returns its amendments (10-K/A).

## `filedFrom` (type: `string`):

Earliest filing date, format YYYY-MM-DD. Optional.

## `filedTo` (type: `string`):

Latest filing date, format YYYY-MM-DD. Optional.

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

Filings mode: the most filing records returned per company, newest first. Each record is a billed event.

## `filings` (type: `array`):

filing-section-extract mode: 10-K or 10-Q document URLs on www.sec.gov (https://www.sec.gov/Archives/edgar/data/...) or accession numbers such as 0000320193-25-000079. Up to 200. Leave empty to use the companies list instead.

## `extractForm` (type: `string`):

Used only when no filings are listed: extract from each company's latest 10-K or latest 10-Q.

## `sections` (type: `array`):

item1 = Item 1 (Business in a 10-K, Financial Statements in a 10-Q). item1a = Item 1A Risk Factors. item7 = Item 7 MD\&A (Item 2 in a 10-Q). Default: all three.

## `maxCharsPerSection` (type: `integer`):

Section text is cut at this length and flagged as truncated. The full length is always reported.

## Actor input object example

```json
{
  "mode": "company-snapshot",
  "companies": [
    "AAPL"
  ],
  "latestFilingsCount": 10,
  "formTypes": [
    "10-K",
    "10-Q"
  ],
  "includeAmendments": false,
  "maxFilingsPerCompany": 25,
  "extractForm": "10-K",
  "sections": [
    "item1",
    "item1a",
    "item7"
  ],
  "maxCharsPerSection": 20000
}
```

# Actor output Schema

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

All records produced by the run, in the overview table.

# 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": "company-snapshot",
    "companies": [
        "AAPL"
    ],
    "formTypes": [
        "10-K",
        "10-Q"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jetlaunch/public-company-filings-snapshot").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": "company-snapshot",
    "companies": ["AAPL"],
    "formTypes": [
        "10-K",
        "10-Q",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("jetlaunch/public-company-filings-snapshot").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": "company-snapshot",
  "companies": [
    "AAPL"
  ],
  "formTypes": [
    "10-K",
    "10-Q"
  ]
}' |
apify call jetlaunch/public-company-filings-snapshot --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jetlaunch/public-company-filings-snapshot"
        }
    }
}
```

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/JeUAYSLbuFeKSc2Cn/builds/I26Tf9GhHU5yY06cW/openapi.json
