# SEC EDGAR Filings API: 10-K, 10-Q & 8-K by Ticker or Date (`jp-data-lab/sec-edgar-company-filings`) Actor

Company filings from official SEC data: form type, dates, ticker, exchange, industry, 8-K event items in plain English and direct document links. Track tickers in real time or read each filing day, largest listed companies first. No insider or personal filings.

- **URL**: https://apify.com/jp-data-lab/sec-edgar-company-filings.md
- **Developed by:** [JP Data Lab](https://apify.com/jp-data-lab) (community)
- **Categories:** Business, AI
- **Security:** Limited permissions
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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.

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 API: 10-K, 10-Q & 8-K by Ticker or Date

Get US company filings as clean JSON, using **official SEC data only**. Each item gives the form type, dates, company, ticker, exchange, SEC industry, 8-K event items in plain English and a direct link to the document.

Use it two ways:

- **Track companies:** give it tickers such as `AAPL` or `NVDA`. You get their filings newest first, updated as soon as the SEC publishes them, and history back to the company's first electronic filing.
- **Read the whole market:** leave tickers empty to get each filing day. Listed companies come first, in the order of the SEC's ticker list, which starts with the largest. So a default run returns Amazon, Exxon and AbbVie before the small filers.

Use it to feed earnings calendars, event alerts, research pipelines or AI agents that need to answer "what did this company file?". Pass `primaryDocumentUrl` to your own reader when you need the text.

### Examples

Earnings releases from Apple:

```json
{ "tickers": ["AAPL"], "eightKItems": ["2.02"] }
```

Berkshire Hathaway annual reports since 2005:

```json
{ "tickers": ["BRK.B"], "formTypes": ["10-K"], "dateFrom": "2005-01-01" }
```

Cybersecurity incidents and bankruptcies reported in the last 5 filing days:

```json
{ "eightKItems": ["1.05", "1.03"], "filingDays": 5 }
```

New IPO registrations:

```json
{ "formTypes": ["S-1", "F-1"], "filingDays": 5 }
```

### Output

One item per filing:

```json
{
  "id": "sec-edgar:0001253986-26-000064",
  "accessionNumber": "0001253986-26-000064",
  "formType": "8-K",
  "filedAt": "2026-10-30",
  "acceptedAt": "2026-10-30T13:03:18Z",
  "reportDate": "2026-10-30",
  "cik": "1253986",
  "companyName": "ARBOR REALTY TRUST INC",
  "tickers": ["ABR", "ABR-PD", "ABR-PE", "ABR-PF"],
  "exchanges": ["NYSE"],
  "sic": "6798",
  "sicDescription": "Real Estate Investment Trusts",
  "filerCategory": "Large accelerated filer",
  "stateOfIncorporation": "MD",
  "fiscalYearEnd": "12-31",
  "city": "UNIONDALE",
  "state": "NY",
  "items": ["7.01", "9.01"],
  "itemTitles": ["Regulation FD Disclosure", "Financial Statements and Exhibits"],
  "hasXbrl": true,
  "fileNumber": "001-32136",
  "primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/1253986/000125398626000064/abr-20261030.htm",
  "url": "https://www.sec.gov/Archives/edgar/data/1253986/000125398626000064/0001253986-26-000064-index.htm",
  "attribution": "Source: U.S. Securities and Exchange Commission, EDGAR (https://www.sec.gov/edgar)",
  "scrapedAt": "2026-10-31T14:30:00+00:00"
}
```

| Field | Meaning |
|---|---|
| `formType` | The form as filed, for example `10-K`, `8-K/A` |
| `filedAt` | The official filing date (`YYYY-MM-DD`) |
| `acceptedAt` | When EDGAR accepted the filing, in UTC. A filing accepted in the evening US Eastern time carries the next business day as `filedAt`, so this can be a day earlier |
| `reportDate` | End of the reporting period. For an 8-K, the date of the event |
| `tickers` / `exchanges` | Listings known to the SEC. Empty for companies without a listed stock |
| `sic` / `sicDescription` | The industry code the SEC assigned to the company |
| `filerCategory` | For example `Large accelerated filer` |
| `city` / `state` | City and state code of the business address. Companies outside the US carry EDGAR's own location code |
| `items` / `itemTitles` | For an 8-K, the events reported, as numbers and in words |
| `hasXbrl` | The filing carries structured financial data |
| `primaryDocumentUrl` | The main document. `url` opens the EDGAR filing page with all exhibits |

#### Common 8-K items

| Item | Event |
|---|---|
| 1.01 | Material agreement signed |
| 1.03 | Bankruptcy or receivership |
| 1.05 | Material cybersecurity incident |
| 2.01 | Acquisition or disposal completed |
| 2.02 | Earnings release |
| 4.02 | Earlier financial statements should no longer be relied on |
| 5.02 | Director or officer change |
| 7.01 | Regulation FD disclosure |
| 8.01 | Other events |

**Not included:** the text of filings, street addresses, ZIP codes, phone numbers and tax IDs.

**Not covered, on purpose:** filings made by individuals, or that are mainly about individuals: Forms 3, 4 and 5 (insider transactions), Form 144, Schedules 13D and 13G, and Form 13F. A filer is skipped when it has no ticker, no industry code and no company word in its name. In a sample of 1,645 8-K filings over 5 days, one was skipped.

### Input

| Field | Default | |
|---|---|---|
| `tickers` | none | Tickers such as `AAPL` or `BRK.B`, or SEC CIK numbers. Leave empty to read all companies by filing day |
| `formTypes` | 10-K, 10-Q, 8-K, 20-F, 40-F, 6-K, S-1, F-1 | Pick from the list in the input form. It also has proxy statements, shelf and merger registrations, and late filing notices |
| `includeAmendments` | off | Also return `/A` amendments |
| `eightKItems` | none | Keep 8-K filings reporting any of these items, for example `2.02`. Returns 8-K filings only |
| `filingDays` | 1 | Number of most recent EDGAR filing days to read. Weekends and federal holidays are skipped. Ignored with `tickers` or `dateFrom` |
| `dateFrom` / `dateTo` | none | Fixed date window (`YYYY-MM-DD`) |
| `listedOnly` | off | Filing-day reads only: keep companies in the SEC's ticker list. Drops asset-backed trusts and unlisted subsidiaries |
| `industries` | none | `sicDescription` contains any of these words, for example `Pharmaceutical`, `Software` |
| `states` | none | Business address state codes, for example `CA`, `NY` |
| `maxItems` | 100 | Newest first. You pay per result |

A default run takes about 20 seconds and returns the latest filing day's 100 most prominent filings. A run with tickers takes about a second per company. A full filing day of about 570 filings takes about 2 minutes.

Schedule it daily with `tickers` set for a watchlist, or with `eightKItems` set to catch an event across the market.

### Limitations

- **Filing-day reads lag:** each day's index is published in the evening US Eastern time, so the newest filing day is usually yesterday. Reads with `tickers` have no such lag.
- **History:** without `dateFrom`, a run with `tickers` covers at least the last year or the last 1,000 filings of any kind. Set `dateFrom` to go further back. Without `tickers`, date windows reach back about a year from `dateTo`.
- **Narrow filters read more:** `eightKItems`, `industries` and `states` are checked after reading each company, so a rare event over many days takes longer. The cybersecurity and bankruptcy example above takes about 6 minutes. Each run reads up to 5,000 companies, and `stoppedAtReadLimit` in the run summary tells you if it stopped there.
- **Metadata only:** this Actor returns the list of filings, not their contents. If you download documents from `sec.gov` yourself, follow the SEC's fair access rules. Documents can contain the names of officers and directors.
- **Co-registrants:** a filing made jointly by several companies is returned once, under the listed company when there is one.
- **Company details are current:** name, tickers, industry and address reflect the company today, not at the time of an old filing.
- **Speed:** the Actor reads at no more than 4 requests per second, below the SEC's limit of 10.
- This is not investment advice. Check the original filing before you rely on it.
- Not affiliated with, or endorsed by, the U.S. Securities and Exchange Commission.

### Data source and attribution

Source: U.S. Securities and Exchange Commission, EDGAR, https://www.sec.gov/edgar. The SEC states that information on sec.gov is public information and may be copied or further distributed without its permission, and asks users to consider citing the SEC as the source.

This Actor uses the public EDGAR daily index, the SEC's company ticker list and the [data.sec.gov submissions API](https://www.sec.gov/search-filings/edgar-application-programming-interfaces), and follows the SEC's fair access policy: https://www.sec.gov/os/accessing-edgar-data

Each item carries its own `attribution` field, so you can keep the credit when you pass the data on.

***

### 日本語

米国 SEC の EDGAR から、企業の提出書類（10-K、10-Q、8-K など）の一覧を公式データで JSON にして取得します。ティッカーを指定すると、その企業の書類を提出と同時に、過去分まで取得できます。指定しないと提出日ごとに全企業を読み、上場企業から順に返します。8-K の項目番号は英語の説明つきで出力します。本文は取得せず、文書へのリンクを出力します。個人が提出する Form 3・4・5、144、13D/G、13F は対象外です。番地、電話番号、納税者番号も出力しません。出典は U.S. Securities and Exchange Commission, EDGAR（https://www.sec.gov/edgar）です。投資の判断には元の書類を確認してください。

# Actor input Schema

## `tickers` (type: `array`):

Optional. Stock tickers such as AAPL or BRK.B, or SEC CIK numbers. Returns the filings of these companies, newest first and updated in real time, and Latest filing days is ignored. Leave empty to read all companies by filing day.

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

Which forms to return. Leave empty for 10-K, 10-Q, 8-K, 20-F, 40-F, 6-K, S-1 and F-1.

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

Also return amended filings such as 10-K/A and 8-K/A.

## `eightKItems` (type: `array`):

Optional. Keep 8-K filings that report any of these item numbers, for example 2.02 for earnings, 5.02 for director or officer changes, 1.05 for cybersecurity incidents, 1.03 for bankruptcy. Setting this returns 8-K filings only.

## `filingDays` (type: `integer`):

How many of the most recent EDGAR filing days to read. Weekends and federal holidays have no filings and are skipped. Ignored when Date from or Tickers is set.

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

Optional. First filing date, YYYY-MM-DD. With Tickers this can go back to the company's first electronic filing. Without Tickers it reaches back about one year from Date to.

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

Optional. Last filing date, YYYY-MM-DD. Leave empty for the newest filings.

## `listedOnly` (type: `boolean`):

Keep companies that have a ticker in the SEC's list. This drops asset-backed trusts, subsidiaries and other filers without a listed stock. Applies when reading by filing day.

## `industries` (type: `array`):

Optional. Keep companies whose SEC industry contains any of these words, for example Pharmaceutical or Software. Case-insensitive partial match. Leave empty for all.

## `states` (type: `array`):

Optional. Two-letter state codes of the company's business address, for example CA, NY, TX. Leave empty for all.

## `maxItems` (type: `integer`):

Newest first. You are charged per result.

## Actor input object example

```json
{
  "tickers": [],
  "formTypes": [],
  "includeAmendments": false,
  "eightKItems": [],
  "filingDays": 1,
  "listedOnly": false,
  "industries": [],
  "states": [],
  "maxItems": 100
}
```

# Actor output Schema

## `filings` (type: `string`):

One item per filing: form type, filing and acceptance dates, company, tickers, exchanges, SEC industry, 8-K items with titles, document links and attribution.

## `runSummary` (type: `string`):

Number of companies and filings read and returned in this run.

# 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("jp-data-lab/sec-edgar-company-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 = {}

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jp-data-lab/sec-edgar-company-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/qGOUpHk85R1sDfnv3/builds/mkQLBN6ekFmCjeW7k/openapi.json
