# SEC EDGAR Scraper — 10-K, 8-K, Form 4 & 13F (`khadinakbar/sec-edgar-all-in-one-scraper`) Actor

Scrape SEC EDGAR — 10-K, 10-Q, 8-K, Form 4 insiders, 13F holdings, 13D/G stakes, DEF 14A, Form D, XBRL facts, full-text search. 9 modes auto-detected from ticker/CIK/accession/URL/keyword. MCP-ready, free official SEC API. $0.005/result.

- **URL**: https://apify.com/khadinakbar/sec-edgar-all-in-one-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** AI, MCP servers, Developer tools
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Scraper — 10-K, 8-K, Form 4 & 13F

**SEC EDGAR Scraper bundles nine modes in one actor and auto-detects ticker, CIK, accession, URL, or keyword.** Built for AI agents, quant funds, equity analysts, and compliance teams who need every SEC EDGAR endpoint — 10-K, 10-Q, 8-K, Form 4 insider trades, 13F holdings, 13D/G activism, DEF 14A proxies, Form D and XBRL facts — without juggling nine separate actors.

### What it does

Pass anything — a ticker (`AAPL`), a 10-digit CIK (`0000320193`), an accession number (`0000320193-25-000123`), a filing URL, or a free-text keyword — and the actor routes to the right SEC endpoint automatically. Or override with `mode`.

| Mode | Use it for | Example input |
|---|---|---|
| `auto` | Default. Guesses from query shape. | `AAPL` |
| `company` | Filings list for a company | `MSFT`, `0000789019` |
| `filing` | Single filing details (+ optional full text) | `0000320193-25-000123` |
| `search` | Full-text search across every filing | `climate risk` |
| `insider` | Form 3/4/5 insider trades | `TSLA` |
| `holdings` | 13F institutional positions | `0001067983` (Berkshire) |
| `activist` | 13D/G beneficial ownership stakes | `GME` |
| `xbrl` | XBRL financial facts (revenue, assets, EPS) | `AAPL` + `xbrlConcept: Revenues` |
| `form-d` | Form D Reg D startup funding filings | `AI startup` |
| `recent` | Latest global EDGAR feed | (leave query empty) |

### Why this actor

- **One actor instead of nine.** Most SEC scrapers do filings OR insider trades OR XBRL OR search — never all four. This one does ten.
- **MCP-ready.** Designed for AI agents — Claude/GPT/Gemini call it as one tool, get structured JSON back, pay per result.
- **Free SEC API.** No proxy, no anti-bot, no API key. Just the official rate-limited public endpoints.
- **Flat, agent-friendly schema.** Every record has the same top-level keys regardless of mode (with mode-specific fields explicit on each row).
- **Auto-detect input.** Pass a ticker, a CIK, a URL, an accession, or a keyword — the actor figures it out.

### Pricing — Premium PPE + Pay-Per-Usage

Both monetization models enabled. Pick at run time.

| Event | Price | When charged |
|---|---|---|
| `apify-actor-start` | $0.00005 | Once per GB of memory at run start |
| `result` | $0.005 | Per record written to dataset |
| `ai-summary` | $0.03 | Per AI-generated filing summary (only if `enableAiSummary=true`) |

**Typical run cost (50 filings, no AI):** ~$0.25.
**Heavy run cost (1,000 results, no AI):** ~$5.00.

Pay-Per-Usage is also enabled for massive workloads where compute-pricing beats per-record. Apify default compute + proxy passthrough rates apply.

### Output fields (dataset schema)

Every record has `_mode` and the standard filing keys; mode-specific keys appear where applicable.

```json
{
  "_mode": "company",
  "cik": "0000320193",
  "ticker": "AAPL",
  "companyName": "Apple Inc.",
  "accessionNumber": "0000320193-25-000123",
  "formType": "10-K",
  "filedAt": "2025-11-01",
  "acceptedAt": "2025-11-01T18:04:32.000Z",
  "periodOfReport": "2025-09-28",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000123/0000320193-25-000123-index.htm",
  "primaryDocUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000123/aapl-20250928.htm",
  "items": null,
  "fileNumber": "001-36743",
  "filmNumber": "251404123",
  "size": 13845678,
  "isXBRL": true
}
````

Mode-specific fields:

- **search**: `snippet`, `score`
- **insider**: `insiderName`, `insiderTitle`, `transactionDate`, `transactionCode`, `shares`, `pricePerShare`, `totalValue`, `sharesOwnedAfter`
- **holdings**: `institutionName`, `institutionCik`, `issuerName`, `issuerCusip`, `sharesHeld`, `valueHeld`
- **activist**: `ownershipPercent`
- **xbrl**: `concept`, `value`, `unit`, `fy`, `fp`, `startDate`, `endDate`
- **form-d**: `offeringAmount`, `amountSold`, `industry`, `executiveOfficers`

### Input

| Field | Type | Default | Notes |
|---|---|---|---|
| `query` | string | `AAPL` | Ticker, CIK, accession, URL, or keyword (REQUIRED) |
| `mode` | enum | `auto` | Override auto-detection (10 values) |
| `formTypes` | string\[] | `[]` | Filter to form types e.g. `["10-K", "10-Q"]` |
| `dateFrom` | string | `""` | Filing date lower bound `YYYY-MM-DD` |
| `dateTo` | string | `""` | Filing date upper bound `YYYY-MM-DD` |
| `maxResults` | int | `100` | Cap total dataset items (1-10000) |
| `includeFullText` | bool | `false` | Fetch + strip HTML to plain text per filing |
| `enableAiSummary` | bool | `false` | AI summary per filing (+$0.03 each) |
| `xbrlConcept` | string | `""` | XBRL concept tag (e.g. `Revenues`) — xbrl mode only |

### Examples

#### Get all Apple 10-K and 10-Q since 2024

```json
{
  "query": "AAPL",
  "mode": "company",
  "formTypes": ["10-K", "10-Q"],
  "dateFrom": "2024-01-01",
  "maxResults": 50
}
```

#### Full-text search every filing for "climate change risk"

```json
{
  "query": "climate change risk",
  "mode": "search",
  "formTypes": ["10-K"],
  "maxResults": 100
}
```

#### Berkshire Hathaway 13F holdings

```json
{
  "query": "0001067983",
  "mode": "holdings",
  "maxResults": 200
}
```

#### Apple revenue across all reported periods (XBRL)

```json
{
  "query": "AAPL",
  "mode": "xbrl",
  "xbrlConcept": "Revenues",
  "maxResults": 100
}
```

#### Tesla insider trades this year

```json
{
  "query": "TSLA",
  "mode": "insider",
  "dateFrom": "2026-01-01"
}
```

#### Latest 100 SEC filings (any company)

```json
{
  "query": "",
  "mode": "recent",
  "maxResults": 100
}
```

### Use cases

- **AI agents** — Drop into Claude/GPT/Gemini as one MCP tool covering every SEC endpoint.
- **Quant funds** — Pull XBRL company facts across the russell 3000 for backtests.
- **Equity analysts** — Monitor 8-K filings for material events; track Form 4 insider clusters.
- **Compliance** — Watch DEF 14A say-on-pay results; audit beneficial-ownership disclosures.
- **VCs + sales** — Mine Form D filings for fresh startup-funding leads.
- **Journalists** — Full-text search disclosures for ESG, litigation, executive comp signals.
- **Backtesters** — Survivorship-bias correction via delisted Form 25 / Form 15 (use `recent` + form filter).
- **LLM training** — Bulk download structured filings for fine-tuning finance models.

### How it works

1. Reads input. If `mode=auto`, detects shape with regex:
   - URL → `filing`
   - 18-digit or `XXXXXXXXXX-XX-XXXXXX` → `filing`
   - 1-10 digit number → `company` (treated as CIK)
   - Alphanumeric ≤ 10 chars → `company` (treated as ticker)
   - Anything else → `search`
2. Resolves ticker → CIK via the official `company_tickers.json` lookup (cached).
3. Hits the right SEC endpoint:
   - `data.sec.gov/submissions/CIK{10-digit}.json` — company filings
   - `data.sec.gov/api/xbrl/companyfacts/CIK{10-digit}.json` — XBRL facts
   - `data.sec.gov/api/xbrl/companyconcept/CIK{10-digit}/us-gaap/{concept}.json` — single concept
   - `efts.sec.gov/LATEST/search-index?q=...` — full-text search
   - `www.sec.gov/cgi-bin/browse-edgar?action=getcurrent` — recent feed
   - `www.sec.gov/Archives/edgar/data/{cik}/{accession}/index.json` — single filing
4. Rate-limits to 8 req/s (under the SEC 10 req/s fair-access cap).
5. Sends required `User-Agent: khadinakbar khadinakbaronline@gmail.com` header on every request.
6. Pushes flat records to the dataset, charges per result.

### MCP integration

Expose via Apify MCP (`mcp.apify.com`) as tool `apify--sec-edgar-all-in-one-scraper`. Agents discovery-shop on the description; the tool description is tuned to the 5-part formula (verb + object + domain → when to use → when NOT to use → return shape → pricing).

```javascript
// Claude Code example
const result = await client.callTool({
  name: 'apify--sec-edgar-all-in-one-scraper',
  arguments: { query: 'AAPL', mode: 'xbrl', xbrlConcept: 'Revenues', maxResults: 20 }
});
```

### FAQ

**Q: Why one actor for nine modes?**
A: AI agents pick one tool at a time. Bundling related verbs into one well-described tool beats forcing the agent to choose between nine micro-tools. Also: one bill, one charge envelope.

**Q: How do I get the full filing text?**
A: Set `includeFullText: true`. The actor downloads the primary document, strips HTML, and returns it under the `fullText` field (truncated at 50K chars per filing, 200K for single-filing mode).

**Q: Does it cover all 150+ SEC form types?**
A: Yes — every form in `data.sec.gov/submissions/` is fetchable. The `formTypes` filter accepts any of them.

**Q: What about non-US filings?**
A: SEC EDGAR is US-only. For non-US filings use sources like CNINFO (China), SEDAR+ (Canada), or Companies House (UK). This actor returns an error on non-US queries.

**Q: How fresh is the data?**
A: SEC publishes filings to EDGAR within minutes of acceptance. The actor hits live endpoints — no cache lag.

**Q: AI summary — what model?**
A: Placeholder for Gemini 2.5 Flash. Set `GEMINI_API_KEY` env var in your actor settings to populate (rolling out in v0.2).

**Q: What if my CIK has fewer than 10 digits?**
A: Pass it however you have it. The actor zero-pads to 10 digits automatically.

**Q: Does it monitor for new filings?**
A: Schedule the actor with `mode: recent` (or company-mode with `dateFrom: today`) for daily checks. Diff against your previous run client-side.

### Limits

- **SEC rate limit:** 10 req/s. Actor rate-limits itself to 8 req/s to stay safely under.
- **Search pagination:** SEC EDGAR full-text search caps at 10,000 hits per query. Use date narrowing to dig deeper.
- **Submissions endpoint:** Returns the 1,000 most recent filings per CIK. Older filings live in separate paginated files (planned for v0.2).
- **XBRL coverage:** Filings before 2009 mostly lack XBRL. Older companies will return fewer concepts.

### Legal

SEC EDGAR is a US Securities and Exchange Commission public dataset. All filings are public-domain disclosures filed by registrants under the Securities Act of 1933 and Exchange Act of 1934. This actor accesses official SEC.gov endpoints with the required User-Agent header per [SEC EDGAR fair-access policy](https://www.sec.gov/os/accessing-edgar-data). No personal data, no scraping prohibited, no robots.txt violation, no TOS issue. This actor is provided for informational and research purposes only and does not constitute investment advice.

### Changelog

#### 0.1 (2026-05-28)

- Initial release
- 9 modes auto-detected from query (company, filing, search, insider, holdings, activist, xbrl, form-d, recent)
- Free official SEC EDGAR API — no proxy, no key
- 8 req/s self-throttle under SEC 10 req/s cap
- ISO 8601 dates, flat per-record schema, <500 tokens/item
- Pay-per-event premium tier ($0.005/result, $0.00005 start, optional $0.03/AI summary)
- Pay-Per-Usage tier enabled in parallel

### Related actors

- [Google Finance Scraper](https://apify.com/khadinakbar/google-finance-stock-news-scraper) — stock news + sentiment to layer on top of filings-driven research.
- [Stock Price Tracker](https://apify.com/khadinakbar/stock-price-tracker) — real-time multi-asset prices (Yahoo Finance) for tickers you watch in EDGAR.
- [Yahoo Finance Scraper](https://apify.com/khadinakbar/yahoo-finance-scraper) — quotes, OHLC, financials, options & earnings to pair with 10-K/10-Q fundamentals.
- [Crypto Price Tracker](https://apify.com/khadinakbar/crypto-price-tracker) — 17K+ altcoins for digital-asset coverage alongside SEC filings.
- [Google Patents Scraper](https://apify.com/khadinakbar/google-patents-scraper) — patents + citations to map IP exposure against issuer 10-Ks.

# Actor input Schema

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

What to fetch. Accepts: stock ticker (e.g. 'AAPL', 'MSFT'), 10-digit CIK (e.g. '0000320193'), SEC accession number (e.g. '0000320193-25-000123'), full filing URL (e.g. 'https://www.sec.gov/Archives/edgar/data/320193/...'), or free-text keyword for full-text search (e.g. 'climate risk'). Defaults to 'AAPL'. NOT for non-US filings — SEC EDGAR covers US-registered issuers only.

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

Override auto-detection. 'auto' = guess from query shape (recommended). 'company' = list filings for ticker/CIK. 'filing' = fetch one filing by accession/URL. 'search' = full-text keyword search across all filings. 'insider' = Form 3/4/5 insider trades for ticker/CIK. 'holdings' = 13F institutional positions for institution CIK. 'activist' = 13D/G beneficial-ownership stakes for company CIK. 'xbrl' = XBRL company facts (revenue, assets, EPS, etc.) for ticker/CIK. 'form-d' = Form D Reg D startup funding filings. 'recent' = latest global EDGAR feed.

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

Filter results to specific SEC form types. Examples: \['10-K', '10-Q'] for annual + quarterly, \['8-K'] for current reports, \['4'] for Form 4 insider transactions. Leave empty for all forms. Applies to company, search, insider, recent modes. Ignored for other modes.

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

Lower-bound filing date in YYYY-MM-DD format (e.g. '2024-01-01'). Filters to filings on or after this date. Leave empty for no lower bound. Applies to company, search, insider, holdings, recent modes.

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

Upper-bound filing date in YYYY-MM-DD format (e.g. '2026-05-28'). Filters to filings on or before this date. Leave empty for no upper bound (defaults to today). Applies to company, search, insider, holdings, recent modes.

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

Cap on total dataset items returned across all modes. Each item is one filing, XBRL fact, insider trade, 13F position, search hit, or feed entry — charged $0.005 each. Range 1-10000. Defaults to 100.

## `includeFullText` (type: `boolean`):

If true, fetches and includes the plain-text body of filings (HTML stripped) under `fullText` field. Increases run time and bandwidth substantially. Applies to filing and company modes when filings are fetched individually. Defaults to false.

## `enableAiSummary` (type: `boolean`):

If true, generates a structured AI summary per filing (key points, risks, financial highlights) using Gemini 2.5 Flash. Charged $0.03 per summary IN ADDITION to the $0.005 result fee. Applies to filing and company modes. Defaults to false.

## `xbrlConcept` (type: `string`):

Specific XBRL concept to fetch in xbrl mode (e.g. 'Revenues', 'Assets', 'NetIncomeLoss', 'EarningsPerShareBasic'). Leave empty to fetch all available concepts for the company. Applies to xbrl mode only. Uses us-gaap taxonomy by default.

## Actor input object example

```json
{
  "query": "AAPL",
  "mode": "auto",
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "dateFrom": "2024-01-01",
  "dateTo": "2026-05-28",
  "maxResults": 100,
  "includeFullText": false,
  "enableAiSummary": false,
  "xbrlConcept": "Revenues"
}
```

# Actor output Schema

## `dataset` (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 = {
    "query": "AAPL"
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/sec-edgar-all-in-one-scraper").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 = { "query": "AAPL" }

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/sec-edgar-all-in-one-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "AAPL"
}' |
apify call khadinakbar/sec-edgar-all-in-one-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=khadinakbar/sec-edgar-all-in-one-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC EDGAR Scraper — 10-K, 8-K, Form 4 & 13F",
        "description": "Scrape SEC EDGAR — 10-K, 10-Q, 8-K, Form 4 insiders, 13F holdings, 13D/G stakes, DEF 14A, Form D, XBRL facts, full-text search. 9 modes auto-detected from ticker/CIK/accession/URL/keyword. MCP-ready, free official SEC API. $0.005/result.",
        "version": "0.2",
        "x-build-id": "fggtnvyPASR5exggH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/khadinakbar~sec-edgar-all-in-one-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-khadinakbar-sec-edgar-all-in-one-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/khadinakbar~sec-edgar-all-in-one-scraper/runs": {
            "post": {
                "operationId": "runs-sync-khadinakbar-sec-edgar-all-in-one-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/khadinakbar~sec-edgar-all-in-one-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-khadinakbar-sec-edgar-all-in-one-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Query (ticker, CIK, URL, accession, or keyword)",
                        "type": "string",
                        "description": "What to fetch. Accepts: stock ticker (e.g. 'AAPL', 'MSFT'), 10-digit CIK (e.g. '0000320193'), SEC accession number (e.g. '0000320193-25-000123'), full filing URL (e.g. 'https://www.sec.gov/Archives/edgar/data/320193/...'), or free-text keyword for full-text search (e.g. 'climate risk'). Defaults to 'AAPL'. NOT for non-US filings — SEC EDGAR covers US-registered issuers only."
                    },
                    "mode": {
                        "title": "Mode (auto-detect by default)",
                        "enum": [
                            "auto",
                            "company",
                            "filing",
                            "search",
                            "insider",
                            "holdings",
                            "activist",
                            "xbrl",
                            "form-d",
                            "recent"
                        ],
                        "type": "string",
                        "description": "Override auto-detection. 'auto' = guess from query shape (recommended). 'company' = list filings for ticker/CIK. 'filing' = fetch one filing by accession/URL. 'search' = full-text keyword search across all filings. 'insider' = Form 3/4/5 insider trades for ticker/CIK. 'holdings' = 13F institutional positions for institution CIK. 'activist' = 13D/G beneficial-ownership stakes for company CIK. 'xbrl' = XBRL company facts (revenue, assets, EPS, etc.) for ticker/CIK. 'form-d' = Form D Reg D startup funding filings. 'recent' = latest global EDGAR feed.",
                        "default": "auto"
                    },
                    "formTypes": {
                        "title": "Filter by form types",
                        "type": "array",
                        "description": "Filter results to specific SEC form types. Examples: ['10-K', '10-Q'] for annual + quarterly, ['8-K'] for current reports, ['4'] for Form 4 insider transactions. Leave empty for all forms. Applies to company, search, insider, recent modes. Ignored for other modes.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "dateFrom": {
                        "title": "Filing date from (inclusive)",
                        "type": "string",
                        "description": "Lower-bound filing date in YYYY-MM-DD format (e.g. '2024-01-01'). Filters to filings on or after this date. Leave empty for no lower bound. Applies to company, search, insider, holdings, recent modes.",
                        "default": ""
                    },
                    "dateTo": {
                        "title": "Filing date to (inclusive)",
                        "type": "string",
                        "description": "Upper-bound filing date in YYYY-MM-DD format (e.g. '2026-05-28'). Filters to filings on or before this date. Leave empty for no upper bound (defaults to today). Applies to company, search, insider, holdings, recent modes.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Cap on total dataset items returned across all modes. Each item is one filing, XBRL fact, insider trade, 13F position, search hit, or feed entry — charged $0.005 each. Range 1-10000. Defaults to 100.",
                        "default": 100
                    },
                    "includeFullText": {
                        "title": "Include full filing text",
                        "type": "boolean",
                        "description": "If true, fetches and includes the plain-text body of filings (HTML stripped) under `fullText` field. Increases run time and bandwidth substantially. Applies to filing and company modes when filings are fetched individually. Defaults to false.",
                        "default": false
                    },
                    "enableAiSummary": {
                        "title": "AI-summarize filings",
                        "type": "boolean",
                        "description": "If true, generates a structured AI summary per filing (key points, risks, financial highlights) using Gemini 2.5 Flash. Charged $0.03 per summary IN ADDITION to the $0.005 result fee. Applies to filing and company modes. Defaults to false.",
                        "default": false
                    },
                    "xbrlConcept": {
                        "title": "XBRL concept (us-gaap or dei tag)",
                        "type": "string",
                        "description": "Specific XBRL concept to fetch in xbrl mode (e.g. 'Revenues', 'Assets', 'NetIncomeLoss', 'EarningsPerShareBasic'). Leave empty to fetch all available concepts for the company. Applies to xbrl mode only. Uses us-gaap taxonomy by default.",
                        "default": ""
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
