# SEC EDGAR: Filings, Financial Statements & Full-Text Search (`tidelane/sec-edgar`) Actor

Get SEC EDGAR data for any US-listed company by ticker, CIK or name: filings (10-K, 10-Q, 8-K, S-1 ...) with links and optional text, annual and quarterly XBRL financials (revenue, net income, EPS, cash flow, balance sheet) with derived Q4, full-text search and company profiles. Official APIs.

- **URL**: https://apify.com/tidelane/sec-edgar.md
- **Developed by:** [Tidelane Data](https://apify.com/tidelane) (community)
- **Categories:** Developer tools, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.21 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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, Financial Statements & Full-Text Search

Get **SEC EDGAR** data for any company that files with the US Securities and Exchange Commission, by **ticker, CIK number or company name**. Four modes, all through the official SEC APIs (no key, no login):

1. **Filings**: the filing list of each company (10-K, 10-Q, 8-K, S-1, DEF 14A, 20-F, 13F ...) with filing date, period, 8-K items with their names, and links to the document and the filing index. Optionally the **readable text** of each document.
2. **Financial statements**: one clean row per **fiscal year or quarter** from the XBRL data: revenue, gross profit, R\&D, operating income, net income, EPS, operating cash flow, capex, free cash flow, assets, liabilities, equity, cash, long-term debt, shares and margins.
3. **Full-text search** across all EDGAR filings since 2001, for example every 10-Q that mentions *"data center" AND tariffs*.
4. **Company profiles**: industry (SIC), exchanges, fiscal year end, state of incorporation, former names, number of filings.

- ✅ **Q4 included**: companies report no Q4 10-Q; Q4 values are derived from the annual report minus the first three quarters (marked in `derived`)
- ✅ **Quarterly cash flows**: 10-Qs report cash flows year-to-date; the Actor turns them into real quarters
- ✅ **Restatements**: each period has the latest reported value
- ✅ **Long history**: financials back to 2009, filings back to the 1990s
- ✅ **Foreign filers too**: IFRS filers (20-F) in their own currency, for example EUR
- ✅ **Add any XBRL concept** you need, for example `PaymentsOfDividends`
- ✅ **Polite**: stays under the SEC limit of 10 requests per second
- ✅ **Fair billing**: per filing, per financial period, per search result and per document text

### Input examples

Annual and quarterly financials of three companies:

```json
{
    "mode": "financials",
    "companies": ["MSFT", "KO", "ASML"],
    "period": "both",
    "maxPeriods": 12
}
```

The last annual reports and current reports, with text:

```json
{
    "mode": "filings",
    "companies": ["AAPL", "1318605", "Microsoft Corp"],
    "forms": ["10-K", "8-K"],
    "maxFilingsPerCompany": 5,
    "includeText": true
}
```

Full-text search:

```json
{
    "mode": "search",
    "query": "\"data center\" AND tariffs",
    "forms": ["10-Q"],
    "from": "2026-07-01",
    "maxResults": 250
}
```

### Output examples

Real output from test runs. A fiscal year (mode `financials`):

```json
{
    "cik": "0000789019",
    "ticker": "MSFT",
    "company": "MICROSOFT CORPORATION",
    "periodType": "year",
    "fiscalYear": 2026,
    "fiscalQuarter": null,
    "periodStart": "2025-07-01",
    "periodEnd": "2026-06-30",
    "form": "10-K",
    "filed": "2026-07-29",
    "currency": "USD",
    "revenue": 331839000000,
    "costOfRevenue": 106374000000,
    "grossProfit": 225465000000,
    "researchAndDevelopment": 35562000000,
    "operatingIncome": 155237000000,
    "netIncome": 133749000000,
    "operatingCashFlow": 182935000000,
    "capex": 115948000000,
    "epsBasic": 18,
    "epsDiluted": 17.95,
    "totalAssets": 758376000000,
    "totalLiabilities": 315989000000,
    "equity": 442387000000,
    "cash": 20935000000,
    "longTermDebt": 31067000000,
    "sharesOutstanding": 7427000000,
    "freeCashFlow": 66987000000,
    "grossMargin": 0.6794,
    "operatingMargin": 0.4678,
    "netMargin": 0.4031,
    "derived": []
}
```

A filing (mode `filings`, `text` shortened):

```json
{
    "cik": "0000320193",
    "ticker": "AAPL",
    "company": "Apple Inc.",
    "form": "8-K",
    "filingDate": "2026-07-30",
    "reportDate": "2026-07-30",
    "acceptedAt": "2026-07-31T00:30:28.000Z",
    "accessionNumber": "0000320193-26-000018",
    "items": ["2.02", "9.01"],
    "itemNames": ["Results of Operations and Financial Condition", "Financial Statements and Exhibits"],
    "primaryDocument": "aapl-20260730.htm",
    "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",
    "sizeBytes": 417360,
    "isXBRL": true,
    "text": "UNITED STATES\nSECURITIES AND EXCHANGE COMMISSION\nWashington, D.C. 20549\nFORM 8-K\nCURRENT REPORT …",
    "textLength": 3453,
    "textTruncated": false
}
```

A full-text search result (mode `search`):

```json
{
    "query": "\"data center\" AND tariffs",
    "company": "Empery Digital Inc.",
    "ticker": "EMPD",
    "form": "10-Q",
    "filingDate": "2026-08-07",
    "periodEnding": "2026-06-30",
    "documentType": "10-Q",
    "documentDescription": "FORM 10-Q FOR JUN 2026",
    "accessionNumber": "0001683168-26-006099",
    "documentUrl": "https://www.sec.gov/Archives/edgar/data/1829794/000168316826006099/empery_i10q-063026.htm",
    "businessLocations": ["Pflugerville, TX"],
    "sic": "6199"
}
```

A summary per company (and the XBRL concepts used for each metric) is saved as `OUTPUT` in the key-value store.

### Pricing

A fixed price per result: per filing, per financial period, per search result, per company profile, and separately per downloaded document text. In our tests 30 financial periods of 3 companies took 3 seconds, 15 filings with text 6 seconds.

Paid Apify plans pay less: 10% off on Starter, 20% on Scale and 30% on Business and higher plans.

### FAQ

**Which companies are covered?** Every company that files on EDGAR. Tickers and names are looked up in the SEC's own ticker list; companies without a ticker work with their CIK number.

**Why is a metric empty for some periods?** Companies tag their numbers differently. The Actor checks the common US-GAAP and IFRS concepts for each metric (see `OUTPUT`) and uses older ones for older years. If a company uses its own concept, add it with "Extra XBRL concepts".

**Why does a Q4 have no EPS?** EPS cannot be derived by subtraction, because the share count changes over the year. Q4 revenue, income and cash flow are derived; `derived` lists which values were.

**Do I need to enter an email?** No. The SEC asks automated tools to name a contact; if you enter one, it is sent to the SEC only, in the User-Agent.

**Are insider filings included?** Form 3, 4, 5 and 144 filings appear in the filing list, but their documents are not downloaded, because they describe private persons.

### More tools from Tidelane Data

- [UK Companies House Search](https://apify.com/tidelane/uk-companies-house-search): companies by SIC code, postcode or town
- [EU Tenders (TED)](https://apify.com/tidelane/ted-tenders): public procurement notices and contract awards
- [Research Papers](https://apify.com/tidelane/research-papers): search PubMed, arXiv and Crossref at once
- [RSS Feed Reader](https://apify.com/tidelane/rss-feed-reader): news, blogs and podcasts to JSON

All our tools: [apify.com/tidelane](https://apify.com/tidelane)

***

#### Impressum

Levi Griesinger, Tidelane Data\
Besigheimer Straße 18\
74369, Löchgau, Deutschland\
E-Mail: LeviGriesinger@gmail.com

# Actor input Schema

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

Filings: the filing list of each company. Financials: one row per fiscal year or quarter from XBRL data. Search: full-text search across all EDGAR filings. Profile: company details.

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

Tickers (AAPL), CIK numbers (320193) or company names. Not needed for full-text search.

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

Filings and search: only these forms, for example 10-K, 10-Q, 8-K, S-1, DEF 14A, 20-F. Empty keeps all.

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

With form types set: also return amended versions such as 10-K/A.

## `from` (type: `string`):

Filings and search: filed on or after this date.

## `to` (type: `string`):

Filings and search: filed on or before this date.

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

Filings mode: newest first.

## `includeText` (type: `boolean`):

Filings mode: download the main document and add its readable text. Billed per document. Ownership forms (3, 4, 5, 144) are not downloaded.

## `maxTextChars` (type: `integer`):

Longer texts are cut (textTruncated: true). A 10-K has about 300,000 characters.

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

Financials mode: fiscal years, quarters, or both.

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

Financials mode: newest first.

## `extraConcepts` (type: `array`):

Financials mode: more values to add per period, as XBRL concept names, for example PaymentsOfDividends or us-gaap:InventoryNet.

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

Search mode: words or an exact phrase in quotes, for example "supply chain" or tariffs AND China.

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

Search mode: documents to return.

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

The SEC asks automated tools to name a contact in the User-Agent. If set, it is sent to the SEC only.

## Actor input object example

```json
{
  "mode": "filings",
  "companies": [
    "AAPL",
    "MSFT"
  ],
  "includeAmendments": true,
  "maxFilingsPerCompany": 100,
  "includeText": false,
  "maxTextChars": 200000,
  "period": "annual",
  "maxPeriods": 20,
  "maxResults": 100
}
```

# Actor output Schema

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

All results of the run as dataset items.

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

Summary per input with status (ok, error and the reason).

# 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"
    ]
};

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

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

```

## MCP server setup

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

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/ZVbSg8yVrkHy6uGXP/builds/JG3U5XjSbkrGzsNHx/openapi.json
