# SEC EDGAR Filings — 10-K, 10-Q, 8-K, 13F & Full-Text Search (`yadroo/sec-edgar-filings`) Actor

SEC filings for any EDGAR registrant by ticker, CIK or company name, plus full-text search across all filings since 2001. Form type, dates, 8-K item codes, accession number, document/index/txt/XBRL-viewer links, company profile (former names, addresses, filer category).

- **URL**: https://apify.com/yadroo/sec-edgar-filings.md
- **Developed by:** [Samat Makatov](https://apify.com/yadroo) (community)
- **Categories:** Business, AI, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 filing returneds

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## SEC EDGAR Filings — 10-K, 10-Q, 8-K, 13F, S-1 by ticker + full-text search

Pull SEC filings for any EDGAR registrant as clean JSON — by ticker, CIK or company name — or search the
text of every filing since 2001 for a phrase ("cybersecurity incident", a competitor's name, "going concern").
Each item carries form type, dates, 8-K item codes, accession number and every useful link (primary document,
filing index, full submission `.txt`, XBRL viewer). Built for AI agents and analysts. No API key, no proxy,
no browser — only the public SEC endpoints, used within SEC fair-use limits.

### Use cases

- **8-K event monitoring** — daily run over a watchlist with `itemCodes: ["1.05","4.02","5.02"]` to catch cyber incidents, restatements and executive departures the day they are filed.
- **Keyword surveillance across the market** — `fullTextSearch` for `"ransomware"`, `"tariff"` or your competitor's name in 8-K / 10-K / 10-Q filings, with SIC and state facets.
- **Insider-trading feed** — Form 3/4/5 filings per issuer (`forms: ["4"]`), newest first, with direct XML/HTML links.
- **13F holdings tracking** — 13F-HR filings for a list of institutional managers (by CIK) each quarter.
- **IPO / capital-markets pipeline** — S-1, S-1/A, 424B4 and F-1 filings with `since` to see who is going public.
- **Proxy-season and governance research** — DEF 14A / DEFA14A / PRE 14A by ticker; former names, filer category, addresses via `includeCompanyProfile`.
- **Due diligence** — full history of a company (paged back to 1994) filtered by form and date range.

### Input

| Field | Type | Default | Notes |
|---|---|---|---|
| `mode` | `submissions` | `fullTextSearch` | `submissions` | `submissions` = filings of specific companies. `fullTextSearch` = search filing text market-wide (needs `query`). |
| `tickers` | string\[] | `["AAPL"]` | Exchange tickers (`AAPL`, `BRK-B`/`BRK.B`) or CIKs (up to 10 digits). Resolved via [company\_tickers.json](https://www.sec.gov/files/company_tickers.json); funds, insiders and private issuers have no ticker — use the CIK. Unknown values yield an `error` item. |
| `companyNameContains` | string\[] | — | Name fragments matched against SEC company titles. Exact title wins; otherwise first match is used and the alternatives are logged as a warning. |
| `includeCompanyProfile` | boolean | `false` | Emit one `company` item per company (former names, addresses, EIN, filer category, SIC, exchanges, FYE…). |
| `forms` | string\[] | `["10-K","10-Q","8-K"]` | Free-text form filter. Aliases are normalized (`10k`→`10-K`, `def14a`→`DEF 14A`, `13F`→`13F-HR`, `10-KA`→`10-K/A`). Empty = all. |
| `formTypes` | string\[] (multi-select) | — | Same as `forms`, picked from the 88-entry dictionary below; merged with `forms`. |
| `since` | `YYYY-MM-DD` | — | Filed on/after. Older submission pages are fetched automatically when the range needs them. |
| `until` | `YYYY-MM-DD` | — | Filed on/before. |
| `itemCodes` | string\[] (multi-select) | — | Submissions mode: keep 8-K / 8-K/A that report at least one of these items (dictionary below). Ignored in full-text mode. |
| `limitPerCompany` | integer 1–1000 | `20` | Newest-first cap per company, after filters. |
| `query` | string | — | **Full-text mode only, required.** `"exact phrase"`, words are ANDed, `OR`, `-exclude`, `cyber*` wildcards. |
| `startDate` / `endDate` | `YYYY-MM-DD` | fall back to `since`/`until` | Full-text date window. Empty = 2001 → today. |
| `entityName` | string | — | Full-text: filer name contains (EFTS `entityName`). |
| `sics` | string\[] | — | Full-text: 4-digit [SIC codes](https://www.sec.gov/search-filings/standard-industrial-classification-sic-code-list) of the filer. |
| `locationCodes` | string\[] | — | Full-text: US state or [EDGAR country codes](https://www.sec.gov/submit-filings/filer-support-resources/edgar-state-country-codes) of the filer. |
| `locationType` | `located` | `incorporated` | `located` | Whether `locationCodes` mean business address or state of incorporation. |
| `maxItems` | integer 1–10000 | `200` | Hard cap on all dataset items (filings + company + error items). |
| `fields` | string\[] | — | Whitelist of output fields; `type`, `id`, `error` are always kept. |
| `dedupe` | boolean | `true` | One item per accession number (co-registrants, several matching documents). |

Nothing is required: `tickers` or `companyNameContains` in submissions mode, `query` in full-text mode. Bad dates,
an empty query or an unknown `mode` fail fast with a clear error.

### Reference

#### Form types (`forms` / `formTypes`)

Any EDGAR form string is accepted in `forms`; the ones below are in the multi-select and get a `formTitle` in the output.
Full official list: [EDGAR form types](https://www.sec.gov/submit-filings/forms-index).

| Form | Title |
|---|---|
| `3` | Initial statement of insider beneficial ownership |
| `4` | Insider transaction report (2 business days) |
| `5` | Annual insider ownership statement |
| `144` | Notice of proposed sale of restricted securities |
| `10-K` | Annual report (US domestic) |
| `10-K/A` | Annual report amendment |
| `10-KT` | Transition annual report |
| `10-Q` | Quarterly report |
| `10-Q/A` | Quarterly report amendment |
| `8-K` | Current report (material events) |
| `8-K/A` | Current report amendment |
| `20-F` | Annual report (foreign private issuer) |
| `20-F/A` | Foreign annual report amendment |
| `40-F` | Annual report (Canadian issuer, MJDS) |
| `6-K` | Report of foreign private issuer |
| `10-D` | Asset-backed issuer distribution report |
| `11-K` | Employee stock plan annual report |
| `NT 10-K` | Notification of late 10-K |
| `NT 10-Q` | Notification of late 10-Q |
| `NT 20-F` | Notification of late 20-F |
| `ARS` | Annual report to security holders |
| `S-1` | IPO / general registration statement |
| `S-1/A` | S-1 amendment |
| `S-3` | Shelf registration (seasoned issuer) |
| `S-3/A` | S-3 amendment |
| `S-3ASR` | Automatic shelf registration (WKSI) |
| `S-4` | Registration for M\&A / exchange offers |
| `S-4/A` | S-4 amendment |
| `S-8` | Employee benefit plan registration |
| `S-11` | Real estate company registration |
| `F-1` | Foreign issuer IPO registration |
| `F-1/A` | F-1 amendment |
| `F-3` | Foreign issuer shelf registration |
| `F-4` | Foreign issuer M\&A registration |
| `F-10` | Canadian issuer registration (MJDS) |
| `424B1` | Prospectus (new facts, Rule 424(b)(1)) |
| `424B2` | Prospectus (pricing supplement) |
| `424B3` | Prospectus (substantive changes) |
| `424B4` | Final IPO prospectus |
| `424B5` | Prospectus supplement (shelf takedown) |
| `424B7` | Prospectus (selling security holder info) |
| `FWP` | Free writing prospectus |
| `DEF 14A` | Definitive proxy statement |
| `DEFA14A` | Additional definitive proxy soliciting materials |
| `DEFM14A` | Definitive merger proxy statement |
| `PRE 14A` | Preliminary proxy statement |
| `PREM14A` | Preliminary merger proxy statement |
| `DEF 14C` | Definitive information statement |
| `PX14A6G` | Exempt shareholder solicitation notice |
| `13F-HR` | Institutional holdings report (quarterly) |
| `13F-HR/A` | 13F-HR amendment |
| `13F-NT` | 13F notice (holdings reported by another manager) |
| `SC 13D` | Beneficial ownership >5% (active) |
| `SC 13D/A` | SC 13D amendment |
| `SC 13G` | Beneficial ownership >5% (passive) |
| `SC 13G/A` | SC 13G amendment |
| `SC TO-T` | Third-party tender offer statement |
| `SC TO-I` | Issuer tender offer statement |
| `SC 14D9` | Tender offer solicitation/recommendation |
| `SC 13E3` | Going-private transaction statement |
| `3/A` | Form 3 amendment |
| `4/A` | Form 4 amendment |
| `D` | Notice of exempt offering (Reg D private placement) |
| `D/A` | Form D amendment |
| `C` | Regulation Crowdfunding offering statement |
| `C/A` | Form C amendment |
| `C-U` | Crowdfunding progress update |
| `C-AR` | Crowdfunding annual report |
| `1-A` | Regulation A offering statement |
| `1-K` | Regulation A annual report |
| `1-SA` | Regulation A semiannual report |
| `N-CSR` | Certified shareholder report (funds) |
| `N-CSRS` | Semiannual certified shareholder report (funds) |
| `N-PORT` | Monthly portfolio holdings (funds) |
| `N-PX` | Proxy voting record (funds) |
| `N-1A` | Open-end fund registration |
| `N-2` | Closed-end fund registration |
| `485BPOS` | Post-effective amendment (funds) |
| `497K` | Summary prospectus (funds) |
| `X-17A-5` | Broker-dealer annual audited report |
| `ABS15G` | Asset-backed securities report |
| `CORRESP` | Correspondence with SEC staff |
| `UPLOAD` | SEC staff comment letter |
| `EFFECT` | Notice of effectiveness |
| `REGDEX` | Regulation D exemption (legacy) |
| `IRANNOTICE` | Iran-related disclosure notice |
| `SD` | Specialized disclosure (conflict minerals) |
| `PX14A6N` | Exempt solicitation (non-management) |

#### 8-K item codes (`itemCodes`, output `items8k`)

| Item | Title |
|---|---|
| `1.01` | Entry into a Material Definitive Agreement |
| `1.02` | Termination of a Material Definitive Agreement |
| `1.03` | Bankruptcy or Receivership |
| `1.04` | Mine Safety — Reporting of Shutdowns and Patterns of Violations |
| `1.05` | Material Cybersecurity Incidents |
| `2.01` | Completion of Acquisition or Disposition of Assets |
| `2.02` | Results of Operations and Financial Condition |
| `2.03` | Creation of a Direct Financial Obligation or Off-Balance Sheet Arrangement |
| `2.04` | Triggering Events That Accelerate or Increase a Direct Financial Obligation |
| `2.05` | Costs Associated with Exit or Disposal Activities |
| `2.06` | Material Impairments |
| `3.01` | Notice of Delisting or Failure to Satisfy a Continued Listing Rule |
| `3.02` | Unregistered Sales of Equity Securities |
| `3.03` | Material Modification to Rights of Security Holders |
| `4.01` | Changes in Registrant’s Certifying Accountant |
| `4.02` | Non-Reliance on Previously Issued Financial Statements (Restatement) |
| `5.01` | Changes in Control of Registrant |
| `5.02` | Departure/Election of Directors or Officers; Compensatory Arrangements |
| `5.03` | Amendments to Articles of Incorporation or Bylaws; Change in Fiscal Year |
| `5.04` | Temporary Suspension of Trading Under Employee Benefit Plans |
| `5.05` | Amendments to or Waiver of Code of Ethics |
| `5.06` | Change in Shell Company Status |
| `5.07` | Submission of Matters to a Vote of Security Holders |
| `5.08` | Shareholder Director Nominations |
| `6.01` | ABS Informational and Computational Material |
| `6.02` | Change of Servicer or Trustee |
| `6.03` | Change in Credit Enhancement or Other External Support |
| `6.04` | Failure to Make a Required Distribution |
| `6.05` | Securities Act Updating Disclosure |
| `6.06` | Static Pool |
| `7.01` | Regulation FD Disclosure |
| `8.01` | Other Events |
| `9.01` | Financial Statements and Exhibits |

#### Where the data comes from

| Source | Used for |
|---|---|
| `https://www.sec.gov/files/company_tickers.json` | ticker / name → CIK |
| `https://data.sec.gov/submissions/CIK##########.json` (+ `-submissions-NNN.json` pages) | company profile and full filing history |
| `https://efts.sec.gov/LATEST/search-index` | full-text search (same API the [EDGAR full-text search UI](https://www.sec.gov/edgar/search/) uses) |

### Examples

**Watchlist 8-K monitor — executive changes, restatements, cyber incidents this quarter**

```json
{ "tickers": ["AAPL", "MSFT", "NVDA", "JPM"], "forms": ["8-K", "8-K/A"], "itemCodes": ["1.05", "4.02", "5.02"], "since": "2026-07-01", "limitPerCompany": 20 }
```

**Who disclosed a cybersecurity incident since June (market-wide)**

```json
{ "mode": "fullTextSearch", "query": "\"cybersecurity incident\"", "forms": ["8-K"], "startDate": "2026-06-01", "maxItems": 100 }
```

**Material weakness in annual reports of California software companies**

```json
{ "mode": "fullTextSearch", "query": "\"material weakness\"", "forms": ["10-K"], "sics": ["7372"], "locationCodes": ["CA"], "startDate": "2026-01-01", "maxItems": 200 }
```

**Insider Form 4 feed for one issuer, compact output**

```json
{ "tickers": ["TSLA"], "forms": ["4"], "since": "2026-08-01", "limitPerCompany": 100, "fields": ["ticker", "form", "filingDate", "reportDate", "documentUrl"] }
```

**13F holdings of Berkshire and a private manager by CIK, plus profiles**

```json
{ "tickers": ["BRK-B", "1067983", "1350694"], "formTypes": ["13F-HR", "13F-HR/A"], "limitPerCompany": 4, "includeCompanyProfile": true }
```

**Ten years of annual reports (auto-pages into older history)**

```json
{ "companyNameContains": ["Palantir Technologies"], "tickers": ["AAPL"], "forms": ["10-K"], "since": "2014-01-01", "until": "2024-12-31", "limitPerCompany": 15 }
```

### Output

One item per filing (`type: "filing"`), optionally `company` items, `error` items for unresolved companies, and in
full-text mode one `searchSummary` item first (total hits + top facets by form, entity, SIC, state).

Submissions-mode filing (trimmed):

```json
{
  "type": "filing",
  "id": "0000320193-26-000018",
  "ticker": "AAPL",
  "cik": "0000320193",
  "companyName": "Apple Inc.",
  "sic": "3571",
  "sicDescription": "Electronic Computers",
  "stateOfIncorporation": "CA",
  "fiscalYearEnd": "0926",
  "exchanges": ["Nasdaq"],
  "form": "8-K",
  "formTitle": "8-K — Current report (material events)",
  "filingDate": "2026-07-30",
  "reportDate": "2026-07-30",
  "acceptedAt": "2026-07-30T20:30:28.000Z",
  "accessionNumber": "0000320193-26-000018",
  "act": "34",
  "fileNumber": "001-36743",
  "filmNumber": "261223821",
  "items8k": ["2.02", "9.01"],
  "items8kTitles": ["Results of Operations and Financial Condition", "Financial Statements and Exhibits"],
  "size": 417360,
  "isXBRL": true,
  "isInlineXBRL": true,
  "primaryDocument": "aapl-20260730.htm",
  "primaryDocDescription": "8-K",
  "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm",
  "indexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018-index.html",
  "folderUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/",
  "filingIndexJsonUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/index.json",
  "txtUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-000018.txt",
  "viewerUrl": "https://www.sec.gov/cgi-bin/viewer?action=view&cik=320193&accession_number=0000320193-26-000018&xbrl_type=v",
  "inlineViewerUrl": "https://www.sec.gov/ix?doc=/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm",
  "sourceUrl": "https://data.sec.gov/submissions/CIK0000320193.json",
  "fetchedAt": "2026-09-12T23:34:42.039Z"
}
```

| Field | Meaning |
|---|---|
| `type`, `id` | `filing` / `company` / `error` / `searchSummary`; `id` = accession number for filings, `company:<cik>` for profiles |
| `ticker`, `cik`, `companyName` | issuer; `cik` is always 10 digits |
| `sic`, `sicDescription`, `stateOfIncorporation`, `fiscalYearEnd` (`MMDD`), `exchanges` | issuer profile snapshot |
| `form`, `formTitle` | EDGAR form and human title (null for forms outside the dictionary) |
| `filingDate`, `reportDate`, `acceptedAt` | filed date, period of report, EDGAR acceptance timestamp |
| `accessionNumber`, `act`, `fileNumber`, `filmNumber`, `size` | EDGAR identifiers; `act` = 33/34; `size` in bytes |
| `items8k`, `items8kTitles` | 8-K item codes and titles (empty for other forms) |
| `isXBRL`, `isInlineXBRL` | structured-data flags |
| `primaryDocument`, `primaryDocDescription`, `documentUrl` | main document of the filing |
| `indexUrl`, `folderUrl`, `filingIndexJsonUrl`, `txtUrl` | filing index page, raw folder, machine-readable folder listing, complete submission text file |
| `viewerUrl` (XBRL), `inlineViewerUrl` (inline XBRL) | SEC interactive viewers |
| `sourceUrl`, `fetchedAt` | exact API URL the item came from, ISO timestamp |

Full-text hits additionally carry `filers[]` (all co-filers with name/ticker/CIK), `rootForm`, `sics`, `businessStates`,
`businessLocations`, `incorporationStates`, `matchedDocument`, `matchedDocumentType`, `matchedDocumentDescription`
and `score`; `documentUrl` points at the matched document (not necessarily the primary one).

Company profile items: `tickers`, `exchanges`, `entityType`, `category` (filer status), `ownerOrg`, `ein`, `lei`,
`phone`, `website`, `investorWebsite`, `addresses.{business,mailing}`, `formerNames[]`, `totalFilingsIndexed`, `edgarUrl`.

### Use it from code / agents

Apify API (curl):

```bash
curl -X POST "https://api.apify.com/v2/acts/yadroo~sec-edgar-filings/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tickers":["AAPL","MSFT"],"forms":["8-K"],"since":"2026-01-01","limitPerCompany":5}'
```

JavaScript (`apify-client`):

```js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yadroo/sec-edgar-filings').call({
    mode: 'fullTextSearch', query: '"cybersecurity incident"', forms: ['8-K'], startDate: '2026-06-01', maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

Python (`apify-client`):

```python
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yadroo/sec-edgar-filings").call(run_input={
    "tickers": ["TSLA"], "forms": ["4"], "since": "2026-08-01", "limitPerCompany": 100})
items = client.dataset(run["defaultDatasetId"]).list_items().items
```

MCP: add `https://mcp.apify.com` to your agent (Claude, Cursor, custom) and call the `yadroo/sec-edgar-filings`
tool with the same JSON input — the input schema descriptions are written for agents.

### Pricing

Pay per event: **$0.001 per run start + $0.002 per dataset item** (filings, company profiles, error and summary
items all count). Typical runs: 4 tickers × 5 latest 8-Ks = 20 items ≈ $0.041; a 100-hit full-text search ≈ $0.20;
a 1,000-filing history dump ≈ $2.00. Set `maxItems` to bound the cost.

### Limits & FAQ

- **Rate limits.** SEC fair use is 10 requests/second; the actor sends a descriptive User-Agent, sleeps ≥150 ms between requests, retries 429/5xx three times with backoff and fails with a clear error instead of looping.
- **Freshness.** `data.sec.gov` submissions update within minutes of EDGAR acceptance; full-text search indexes filings with a short delay and covers 2001 onward.
- **Tickers.** Only exchange-listed issuers are in the ticker map. Mutual funds, insiders, 13F managers and private issuers must be given as CIK (find it on [EDGAR company search](https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany)).
- **Paging into history.** The first submissions file holds the newest ~1,000 filings; older pages are fetched only when `since`/`until`/`limitPerCompany` need them.
- **Full-text search availability.** `efts.sec.gov` can occasionally answer `403 Forbidden` or throttle bursts (SEC fair use: under 10 requests per second). The actor then stops with an explicit error; submissions mode is unaffected. EFTS caps paging at 10,000 documents per query — narrow the date range for more.
- **`itemCodes`** apply to 8-K/8-K/A in submissions mode only (EFTS has no item filter — put `"Item 1.05"` in the query instead).
- **No document text.** The actor returns metadata and links; pair it with a fetch tool or the Yadroo `sec-company-financials` actor for XBRL numbers.
- **Roadmap.** Exhibit lists from `index.json`, Form 4 transaction parsing, 13F holdings tables. Tell us what you need.

***

Made by **Yadroo** · Related actors: [sec-company-financials](https://apify.com/yadroo/sec-company-financials) ·
[us-treasury-yields](https://apify.com/yadroo/us-treasury-yields) · [fx-rates](https://apify.com/yadroo/fx-rates) ·
[world-bank-indicators](https://apify.com/yadroo/world-bank-indicators) · [sanctions-screen](https://apify.com/yadroo/sanctions-screen) ·
[domain-intel](https://apify.com/yadroo/domain-intel) · [google-news-search](https://apify.com/yadroo/google-news-search)

# Actor input Schema

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

Default "submissions": list filings per company given in tickers / companyNameContains. "fullTextSearch": requires "query"; searches all filings (2001+) and returns matching filings with document links; tickers/companyNameContains then act as an optional CIK restriction.

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

US exchange tickers (AAPL, NVDA, BRK-B) or SEC CIK numbers (up to 10 digits, leading zeros optional). One company per entry. Tickers are resolved via https://www.sec.gov/files/company\_tickers.json — only exchange-listed issuers have tickers; use the CIK for funds, insiders, private issuers. Unknown entries produce an item with "error" and a warning.

## `companyNameContains` (type: `array`):

Resolve companies by name fragment (case-insensitive match against SEC company titles, e.g. "Palantir", "Coinbase Global"). Exact title match wins; otherwise the first match is used and other candidates are listed in the log as a warning. Prefer tickers/CIKs when you know them.

## `includeCompanyProfile` (type: `boolean`):

If true, emits one extra item of type "company" per resolved company before its filings: former names, business/mailing addresses, EIN, filer category (e.g. "Large accelerated filer"), SIC, exchanges, fiscal year end, phone, website, total filings indexed.

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

Form types as free text, e.g. \["10-K","10-Q","8-K"]. Common aliases are normalized ("10k" → "10-K", "def14a" → "DEF 14A", "13F" → "13F-HR", "10-KA" → "10-K/A"). Merged with "formTypes". Empty = all forms. Full dictionary in README.

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

Same as "forms" but as a multi-select of the most common EDGAR form types with titles. Values are merged with "forms". Use "forms" for anything not in this list.

## `since` (type: `string`):

Only filings filed on or after this date (inclusive). In submissions mode older paged submission files are fetched automatically when needed. In fullTextSearch mode this is used as startDate if startDate is empty. Empty = no lower bound.

## `until` (type: `string`):

Only filings filed on or before this date (inclusive). In fullTextSearch mode used as endDate if endDate is empty. Empty = today.

## `itemCodes` (type: `array`):

Submissions mode only: keep 8-K / 8-K/A filings that report at least one of these items (e.g. 2.02 earnings, 5.02 executive changes, 1.05 cybersecurity incident, 1.03 bankruptcy). Accepts "202" or "Item 2.02" too. Ignored (with a warning) in fullTextSearch mode. Dictionary in README.

## `limitPerCompany` (type: `integer`):

Submissions mode: newest-first cap per company after filters. Default 20, max 1000. The global "maxItems" still applies.

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

Required in fullTextSearch mode. Exact phrase in double quotes ("going concern"), plain words are ANDed, supports OR, -negation and trailing \* wildcards. Examples: ""material weakness"", ""ransomware" AND "Item 1.05"", "Anthropic OR OpenAI".

## `startDate` (type: `string`):

fullTextSearch: earliest filing date. Falls back to "since". Empty = full history (2001+).

## `endDate` (type: `string`):

fullTextSearch: latest filing date. Falls back to "until". Empty = today.

## `entityName` (type: `string`):

fullTextSearch: restrict to filers whose name contains this text (EFTS "entityName" parameter), e.g. "Bank". For exact companies prefer tickers/CIKs.

## `sics` (type: `array`):

fullTextSearch: 4-digit SIC industry codes of the filer, e.g. \["7372"] software, \["6022"] state commercial banks, \["2834"] pharma preparations. Full list: https://www.sec.gov/search-filings/standard-industrial-classification-sic-code-list

## `locationCodes` (type: `array`):

fullTextSearch: US state / country codes of the filer, e.g. \["CA","NY"] or EDGAR country codes (e.g. "X0" Canada... see https://www.sec.gov/submit-filings/filer-support-resources/edgar-state-country-codes). Combined with "locationType".

## `locationType` (type: `string`):

fullTextSearch: whether locationCodes refer to the business address (located) or the state/country of incorporation (incorporated).

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

Hard cap on dataset items across all companies / search pages (including company profile and error items). Default 200. You pay per item, so keep it modest.

## `fields` (type: `array`):

Optional whitelist of top-level output fields, e.g. \["ticker","form","filingDate","items8k","documentUrl"]. "type", "id" and "error" are always kept. Empty = all fields.

## `dedupe` (type: `boolean`):

Emit each filing (accession number) once even if it appears for several companies (co-registrants) or several matching documents in full-text search. Set false to get one item per matching document/company.

## Actor input object example

```json
{
  "mode": "submissions",
  "tickers": [
    "AAPL"
  ],
  "includeCompanyProfile": false,
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "limitPerCompany": 20,
  "locationType": "located",
  "maxItems": 200,
  "dedupe": true
}
```

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

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

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

```

## MCP server setup

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