# SEC EDGAR AI Scraper - LLM-ready filings, RAG chunks & signals (`dominvo/sec-edgar-ai-scraper`) Actor

SEC EDGAR as LLM-ready data: section-aware Markdown, RAG chunks with stable IDs + SHA-256, XBRL facts, Form 4/13F, section diff, scored signals. Multi-event PPE. Pairs with sec-edgar-mcp.

- **URL**: https://apify.com/dominvo/sec-edgar-ai-scraper.md
- **Developed by:** [Domin Vo](https://apify.com/dominvo) (community)
- **Categories:** AI, Agents, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event + usage

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

**Pull SEC filings as clean JSON or LLM-ready Markdown — without writing a single line of EDGAR code.** This Actor turns the entire [SEC EDGAR](https://www.sec.gov/edgar) corpus — 10-K, 10-Q, 8-K, **13F filings**, **Form 4** insider transactions, Form 144, XBRL facts, DEF 14A proxies, S-1 prospectuses, N-PORT mutual-fund holdings, Schedule 13D activist stakes, Form ADV, and 60+ more — into uniform rows you can pipe straight into an LLM, vector store, or notebook.

### What does SEC EDGAR AI Scraper do?

One Actor, **70 modes**, every U.S. public company. Pick a mode (e.g. `form_13f_filings`, `form_4_filings`, `xbrl_facts`), feed it a ticker (`AAPL`), CIK (`0000320193`), or company name, and get structured rows back in seconds. No User-Agent headers, no fair-use throttling, no XBRL parser to maintain.

Every row uses the same envelope — `sha256`, `mode`, `cik`, `accession`, `filing_date`, `payload` — so a 13F holding and an 8-K filing ingest the same way downstream.

Three things make this Actor different from any other **SEC EDGAR scraper**:

1. **RAG-native output.** `filing_markdown`, `filing_chunks`, and `section_diff` ship section-aware Markdown, stable chunk IDs with SHA-256 fingerprints, and year-over-year diffs — drop straight into LangChain, LlamaIndex, or your own retrieval pipeline.
2. **Hedge-fund signals.** `signal_pack`, `insider_cluster`, `lockup_expiration`, `discrete_signals`, and `activist_clustering` compute composite signals on top of raw filings. You don't get a thin wrapper around `data.sec.gov` — you get the alpha layer.
3. **Pay only for rows you keep.** 20 bundled event types, priced from $0.0001 to $0.04. The **first 20 rows of every run are free** — prototype at zero cost.

### Why use SEC EDGAR AI Scraper?

- **Quant funds & analysts** — pull **13F filings**, Form 4 insider trades, Schedule 13D activist stakes, and Form 144 planned sales into Python, R, or a warehouse with one HTTP call. Build signals without building a parser.
- **Fintech & RegTech apps** — power compliance copilots, audit tools, and disclosure-monitoring products with a real **SEC filings API**. Section diffs flag the exact paragraphs that changed between 10-Ks.
- **AI agents & RAG pipelines** — section-aware Markdown plus deterministic chunk IDs give your agent citations with provenance. Every chunk has a SHA-256 it can quote back.
- **Bloomberg Terminal alternative on a budget** — get the SEC slice of the Terminal (13F changes, insider trades, proxy fights, M&A registrations) for cents per query instead of $24K a seat.

### How to use SEC EDGAR AI Scraper

1. Click **Try for free** on the Actor page.
2. Pick a `mode` (e.g. `form_13f_filings`).
3. Enter `identifiers` — tickers (`AAPL`), CIKs (`0000320193`), names, or domains.
4. *(Optional)* Set `since` / `until` dates, a `forms` filter, or a `limit`.
5. Click **Save & Start**. Stream results to JSON, CSV, Excel, NDJSON, or Markdown.

Or call it from Python:

```python
from apify_client import ApifyClient

client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("dominvo/sec-edgar-ai-scraper").call(run_input={
    "mode": "form_13f_filings",
    "identifiers": ["BRK.A", "RENTECH"],
    "since": "2026-01-01",
    "limit": 200,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row["payload"]["issuer"], row["payload"]["value"])
````

Schedule daily runs, chain modes via [Apify integrations](https://apify.com/integrations), or trigger on a webhook — same API.

### Input — picking a mode

70 modes, one Actor. Pick the mode that matches the form or signal you need:

| Goal | Mode |
|---|---|
| Section 16 insider trades | `form_4_filings` |
| Institutional 13F holdings | `form_13f_filings` |
| Activist 5%+ stakes | `form_13d_filings`, `activist_clustering` |
| Planned insider sales (90-day early warning) | `form_144_filings`, `lockup_expiration` |
| Annual / quarterly reports | `form_10k_filings`, `form_10q_filings` |
| 8-K item alerts with severity tags | `form_8k_filings`, `discrete_signals` |
| Proxy fights, exec comp, audit fees | `form_def14a_filings`, `def14a_exec_comp` |
| IPO prospectus + lockup calendar | `form_s1_filings`, `lockup_expiration` |
| M\&A registration deals | `form_s4_filings`, `form_to_tender`, `form_14d9_recommendation` |
| Foreign issuers (FPI / ADR / Canadian) | `form_20f_filings`, `form_6k_filings`, `form_40f_filings` |
| Mutual fund / ETF holdings + proxy votes | `form_nport_filings`, `form_npx_filings` |
| US-GAAP / IFRS XBRL data | `xbrl_facts`, `xbrl_statements`, `xbrl_frames`, `xbrl_metrics` |
| Cross-cutting EDGAR search | `filings_search`, `filings_feed`, `filings_index` |
| Section-aware Markdown for RAG | `filing_markdown`, `filing_chunks` |
| Year-over-year 10-K text diff | `section_diff`, `disclosure_compare` |
| Hedge-fund composite signals | `signal_pack`, `insider_cluster` |
| Resolve ticker ↔ CIK ↔ name ↔ domain | `cik_ticker_map` |
| SEC enforcement & adviser data | `litigation_releases`, `aaer_releases`, `comment_letters`, `form_adv_filings` |

Common inputs: `identifiers` (array), `since` / `until` (ISO date), `forms` (array filter), `limit` (cap rows), `incremental` (skip unchanged rows), `output_format` (`json` / `ndjson` / `csv` / `xlsx` / `markdown`).

```json
{
  "mode": "form_4_filings",
  "identifiers": ["TSLA", "MSFT"],
  "since": "2026-01-01",
  "transaction_codes": ["S", "P"],
  "limit": 500
}
```

### Output — JSON, CSV, Excel, Markdown

Every row uses the same envelope with a mode-specific `payload`:

```json
{
  "sha256": "9f1c2a…",
  "mode": "form_4_filings",
  "cik": "0001318605",
  "accession": "0001209191-26-012345",
  "filing_date": "2026-05-12",
  "payload": {
    "issuer": "Tesla, Inc.",
    "reporter": "Elon Musk",
    "relationship": ["Director", "Officer", "10% Owner"],
    "transaction_date": "2026-05-10",
    "transaction_code": "S",
    "shares": 1500000,
    "price_per_share": 247.18,
    "total_value": 370770000,
    "shares_owned_after": 411062076
  }
}
```

Switch `output_format` per run:

- **`json`** — Apify dataset rows (default).
- **`ndjson` / `csv` / `xlsx`** — single file streamed to the key-value store at end of run.
- **`markdown`** — **LLM-ready `output.md`** bundle: one `### heading` per record, ready to paste into Claude, ChatGPT, or your RAG pipeline. The only SEC Actor that ships native Markdown output.

### Data fields by mode

| Mode | What you get | Persona |
|---|---|---|
| `form_4_filings` | Section 16 insider trades, one row per transaction | Quant / Hedge |
| `form_13f_filings` | 13F-HR institutional holdings, one row per CUSIP | Quant / Hedge |
| `form_13d_filings` | Schedule 13D activist 5%+ stakes + group filer clustering | Quant / Hedge |
| `form_144_filings` | Restricted-stock sale notices — 90-day forward signal | Quant / Hedge |
| `form_10k_filings` / `form_10q_filings` | Annual / quarterly reports with section index | Fintech / RegTech |
| `form_8k_filings` | 8-K Items with severity tags + restatement flags | Fintech / RegTech |
| `xbrl_facts` / `xbrl_statements` / `xbrl_metrics` / `xbrl_frames` | US-GAAP / IFRS XBRL data, atomic or normalized | Fintech / Quant |
| `filing_markdown` / `filing_chunks` | Section-aware Markdown + stable RAG chunk IDs | LLM / Agentic |
| `section_diff` / `disclosure_compare` | Paragraph-level YoY 10-K diff | LLM / Agentic |
| `signal_pack` / `discrete_signals` / `insider_cluster` | Hedge-fund composite signals | Quant / Hedge |
| `litigation_releases` / `aaer_releases` / `comment_letters` | SEC enforcement & restatement early-warning data | RegTech / Forensic |
| `cik_ticker_map` | Resolve ticker / CIK / name / domain | All |
| `filings_search` / `filings_feed` / `filings_index` | EDGAR full-text search + real-time + historical | All |

Full 70-mode catalog in the Input tab dropdown.

### Pricing — how much does it cost to pull SEC filings?

**Pay per row, not per second.** The **first 20 rows of every run are free**, so prototyping is free. Beyond that, only the rows you receive are charged:

| Data shape | Example modes | Price per row |
|---|---|---|
| CIK / ticker lookup | `cik_ticker_map` | $0.0001 |
| Filing index / feed / search hit | `filings_index`, `filings_search`, `filings_feed` | $0.0004 |
| Insider transaction | `form_4_filings`, `form_144_filings` | $0.0005 |
| Institutional holding | `form_13f_filings`, `form_nport_filings`, `form_npx_filings` | $0.0005 |
| XBRL atomic fact | `xbrl_facts`, `xbrl_frames`, `xbrl_metrics` | $0.0002 |
| XBRL statement row | `xbrl_statements` | $0.001 |
| Form filing record | `form_10k_filings`, `form_8k_filings`, `form_s1_filings`, etc. | $0.002 |
| 10-K section extract | `section_extract` modes (MD\&A, Risk Factors, ICFR, …) | $0.001 |
| Filing as Markdown (section-aware) | `filing_markdown` | $0.003 |
| RAG chunk | `filing_chunks` | $0.0008 |
| Year-over-year section diff op | `section_diff`, `disclosure_compare` | $0.002 |
| DEF 14A proxy row | `def14a_exec_comp`, `def14a_audit_fees`, … | $0.001 |
| Fund report (N-CSR / N-CEN) | `form_ncsr_filings`, `form_ncen_filings` | $0.001 |
| Enforcement / Form ADV record | `litigation_releases`, `aaer_releases`, `form_adv_filings` | $0.001 |
| Risk signal | `signal_pack`, `insider_cluster`, `activist_clustering` | $0.002 |
| AI brief / summary | `ai_summary`, `ai_importance` | $0.04 |
| Run started | once per run | $0.005 |
| Change detected (incremental) | only when a record's SHA-256 differs | $0.0003 |

**Worked examples:**

- Daily 13F sweep of 100 funds (~5,000 holdings) → **$2.50** (minus the first 20 free rows).
- Full 10-K of Apple as RAG chunks (~400 chunks) → **$0.32**.
- Insider trades for the FAANG 5 over 2025 (~3,000 rows) → **$1.50**.

### Tips & advanced options

- **Use `incremental: true` on schedules.** Re-run the same input and you only pay `$0.0003` per row whose SHA-256 actually changed. Most days that's a handful of rows out of thousands.
- **Start with a mid-cap** (`MDB`, `NET`, `SHOP`) when testing — Berkshire-class filings can blow past 1 GB of memory on RAG-heavy modes.
- **Chain modes via the Apify API.** Resolve identifiers with `cik_ticker_map`, then fan out to `form_4_filings` and `form_13f_filings` in parallel runs. Same dataset.
- **Pick the right output format.** `markdown` for agents and RAG, `csv` / `xlsx` for analysts, `ndjson` for warehouses, `json` for everyone else.
- **No Apify Proxy needed.** SEC fair-use requires identifying User-Agent (set automatically) and prohibits residential-proxy obfuscation — a single egress IP is fine and faster.

### FAQ, disclaimers & support

**Is this legal?** Yes. SEC EDGAR is public-domain U.S. government data. This Actor follows SEC fair-use guidelines (identifying User-Agent, ≤10 req/s) and does not scrape any restricted source.

**Is it official?** No. This is an independent third-party tool consuming the official SEC endpoints (`data.sec.gov`, `www.sec.gov`). Not affiliated with the SEC.

**Do I need to register a User-Agent or rate-limit my requests?** No. We handle SEC fair-use compliance, rate limits, retries, and pagination in the background.

**Can I use this as a Python SEC EDGAR API?** Yes. `ApifyClient("…").actor("dominvo/sec-edgar-ai-scraper").call(...)` is the one-line drop-in. Works from any language with an HTTP client.

**Does it cover foreign issuers?** Yes — `form_20f_filings` (FPIs), `form_6k_filings` (foreign current reports), and `form_40f_filings` (Canadian) cover the non-U.S. surface.

**Can I get LLM-ready output?** Yes — set `output_format: markdown` and we bundle every row into one `output.md` file ready for RAG ingestion. Or use `filing_chunks` / `filing_markdown` modes directly.

**What if I need a mode that isn't built yet?** File an issue in the Issues tab. New modes ship along the priority order in the catalog; custom modes and bespoke chunking schemas are available on request.

***

Built on the [Apify SDK](https://docs.apify.com/sdk/python/), [Crawlee for Python](https://crawlee.dev/python), and [`edgartools`](https://pypi.org/project/edgartools/) ≥ 5.31. Runs on a 2 GB memory tier with Apify Standby enabled.

# Actor input Schema

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

Which mode to run. Catalog grows as new modes ship.

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

Stock tickers to look up (e.g. MDB, NET). Auto-resolved to CIK.

## `ciks` (type: `array`):

Raw 10-digit CIKs (zero-padded or bare).

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

Fuzzy company-name lookups. Only used by cik\_ticker\_map.

## `domains` (type: `array`):

Website domains (TLD stripped, treated as name hint). Only used by cik\_ticker\_map.

## `date_from` (type: `string`):

Earliest filing date (YYYY-MM-DD). Optional. Used by filings modes.

## `date_to` (type: `string`):

Latest filing date (YYYY-MM-DD). Optional. Used by filings modes.

## `since_accession` (type: `string`):

Skip filings with accession number ≤ this value. For incremental resume.

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

Optional list of SEC form types to filter by (e.g. \['10-K', '8-K']). Used by ai\_importance; if omitted, all forms are scored.

## `output_format` (type: `string`):

json streams to the default dataset. ndjson/csv/xlsx/markdown flush to the key-value store at end of run.

## `form` (type: `string`):

SEC form type to scope filing fetches (e.g. 10-K, 10-Q, S-1). Used by Tier 2 RAG/composite modes such as filing\_chunks.

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

Section keys to extract from each filing. Used by filing\_chunks and similar Tier 2 modes. Common keys: risk\_factors, mda, business, legal\_proceedings, icfr.

## `window_tokens` (type: `integer`):

Token-window size for chunking section text. Used by filing\_chunks.

## `overlap_tokens` (type: `integer`):

Token overlap between adjacent chunks. Must be < window\_tokens. Used by filing\_chunks.

## `section` (type: `string`):

Single section key to diff. Used by section\_diff.

## `mode_shape` (type: `string`):

section\_diff: emit one record per diff op (per\_op, default) or one bundle per filing pair (per\_section).

## `max_pairs` (type: `integer`):

Cap on the number of adjacent (old, new) filing pairs diffed per issuer, newest first. Used by section\_diff.

## `model` (type: `string`):

OpenRouter model slug for primary summarization. Used by ai\_summary.

## `fallback_model` (type: `string`):

OpenRouter model slug used as a fallback if the primary call fails. Used by ai\_summary.

## `openrouter_api_key` (type: `string`):

OpenRouter API key. If omitted, the actor reads OPENROUTER\_API\_KEY from env. Required by ai\_summary.

## `max_input_chars` (type: `integer`):

Maximum character length of the combined section text passed to the LLM. Used by ai\_summary.

## `timeout` (type: `integer`):

Timeout in seconds for each OpenRouter HTTP call. Used by ai\_summary.

## `lookback_quarters` (type: `integer`):

Trailing window in quarters (90 days each). Used by disclosure\_compare (default 4 when date\_from omitted) and signal\_pack (default 8).

## `signals` (type: `array`):

Subset of signal names to score. Omit to score all 12. Used by signal\_pack.

## `metrics` (type: `array`):

Which side-by-side metrics to compute. Used by disclosure\_compare (filing\_cadence, insider\_activity, eight\_k\_severity, activist\_flag) and peer\_benchmark (gross\_margin, operating\_margin, revenue\_growth\_yoy, roe, fcf\_margin).

## `fiscal_year` (type: `integer`):

Filter facts to a single fiscal year (e.g. 2024). Used by xbrl\_facts.

## `window_days` (type: `integer`):

Rolling window (in days). Used by insider\_cluster (default 60) and activist\_clustering (default 90).

## `min_filers` (type: `integer`):

Minimum number of unique 13D filers within the rolling window to qualify as a wolf-pack cluster. Used by activist\_clustering.

## `min_insiders` (type: `integer`):

Minimum distinct insiders required to declare a cluster. Used by insider\_cluster.

## `direction` (type: `string`):

Restrict clusters by trade side: buy = non-sell codes only, sell = sell-side codes only, any = either (homogeneous per cluster). Used by insider\_cluster.

## `lookahead_days` (type: `integer`):

Optional cap on how far in the future a projected lockup expiration date may fall. Records with expiration\_date > today + lookahead\_days are skipped. Used by lockup\_expiration.

## `signal_types` (type: `array`):

Subset of discrete signal sub-types to emit. Omit (or leave empty) for all 7. Allowed values: late\_filing, going\_concern, material\_weakness, restatement, auditor\_change, cfo\_change, ceo\_change. Used by discrete\_signals.

## `variant` (type: `string`):

Which Reg A+ form variant to fetch. 'any' fetches all four. Used by form\_reg\_a\_family.

## `subtype` (type: `string`):

Which SC TO sub-type to fetch. 'any' fetches both. Used by form\_to\_tender.

## `include_amendments` (type: `boolean`):

When true, also fetch S-4/A amendment filings alongside S-4 originals. Used by form\_s4\_filings.

## `release_ids` (type: `array`):

Specific release IDs to fetch (e.g. 'AAER-4520' for aaer\_releases, 'lr-25700' for litigation\_releases). When omitted, all index rows matching the other filters are fetched.

## `respondent_name` (type: `string`):

Case-insensitive substring match against the release index title. Used by aaer\_releases and litigation\_releases.

## `year` (type: `integer`):

Calendar year for the enforcement yearly archive. Defaults to current year when omitted. Used by litigation\_releases and administrative\_proceedings.

## `pair_window_days` (type: `integer`):

Maximum number of days after an UPLOAD (staff letter) within which a CORRESP (registrant response) is paired. Used by comment\_letters.

## `firm_names` (type: `array`):

Investment-adviser firm names to look up in IAPD. Each name resolves to one or more CRD numbers via IAPD firm search. Used by form\_adv\_filings.

## `crd_numbers` (type: `array`):

Direct IAPD CRD numbers to fetch firm reports for. Bypasses firm-name search. Used by form\_adv\_filings.

## `include_disciplinary_only` (type: `boolean`):

When true, emit one record per disclosure event instead of one summary record per firm. Used by form\_adv\_filings.

## `file_numbers` (type: `array`):

Specific administrative-proceeding file numbers to fetch directly (e.g. '3-21800'). When set, the index is skipped. Used by administrative\_proceedings.

## `concepts` (type: `array`):

XBRL concept names or patterns (e.g. \['Revenues', 'NetIncomeLoss']). Used by xbrl\_facts (filter) and xbrl\_frames (axis — at least one required). Empty = no filter on xbrl\_facts.

## `periods` (type: `array`):

XBRL Frames period codes — instant ('CY2024Q1I') or duration ('CY2024Q1', 'CY2024'). At least one required by xbrl\_frames.

## `units` (type: `array`):

XBRL units of measure ('USD', 'shares', 'USD/shares'). Used by xbrl\_frames.

## `taxonomy` (type: `string`):

XBRL taxonomy ('us-gaap', 'ifrs-full', 'dei', 'srt'). Used by xbrl\_frames.

## `max_rows_per_frame` (type: `integer`):

Cap rows emitted per (concept, period, unit) frame. Used by xbrl\_frames.

## `fiscal_periods` (type: `array`):

Filter facts to specific fiscal periods (\['FY', 'Q1', 'Q2', 'Q3']). Empty = all periods. Used by xbrl\_facts.

## `statement_types` (type: `array`):

Filter facts to specific statement types (\['IncomeStatement', 'BalanceSheet', 'CashFlowStatement']). Empty = all. Used by xbrl\_facts.

## `max_facts` (type: `integer`):

Cap facts emitted per filing. Used by xbrl\_facts.

## `transaction_codes` (type: `array`):

Form 4 transaction codes to keep (P=buy, S=sell, A=grant, M=exercise, F=tax withhold, G=gift, D=disposition, plus long-tail X/C/J/V/I/U). Empty = all codes. Used by form\_4\_filings.

## `item_codes` (type: `array`):

8-K Item numbers to keep (e.g. '2.02' earnings, '4.01' auditor change, '4.02' restatement, '5.02' exec change). Empty = all items. Used by form\_8k\_filings.

## Actor input object example

```json
{
  "mode": "cik_ticker_map",
  "tickers": [
    "MDB"
  ],
  "ciks": [],
  "companies": [],
  "domains": [],
  "forms": [],
  "output_format": "json",
  "form": "10-K",
  "sections": [
    "risk_factors",
    "mda",
    "business"
  ],
  "window_tokens": 1024,
  "overlap_tokens": 256,
  "section": "risk_factors",
  "mode_shape": "per_op",
  "max_pairs": 3,
  "model": "google/gemini-2.5-flash",
  "fallback_model": "groq/llama-3.1-8b-instant",
  "max_input_chars": 80000,
  "timeout": 60,
  "lookback_quarters": 4,
  "signals": [],
  "metrics": [
    "filing_cadence",
    "insider_activity",
    "eight_k_severity",
    "activist_flag"
  ],
  "window_days": 60,
  "min_filers": 2,
  "min_insiders": 3,
  "direction": "any",
  "signal_types": [],
  "variant": "any",
  "subtype": "any",
  "include_amendments": true,
  "release_ids": [],
  "pair_window_days": 90,
  "firm_names": [],
  "crd_numbers": [],
  "include_disciplinary_only": false,
  "file_numbers": [],
  "concepts": [],
  "periods": [],
  "units": [
    "USD"
  ],
  "taxonomy": "us-gaap",
  "max_rows_per_frame": 5000,
  "fiscal_periods": [],
  "statement_types": [],
  "max_facts": 5000,
  "transaction_codes": [],
  "item_codes": []
}
```

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

// Run the Actor and wait for it to finish
const run = await client.actor("dominvo/sec-edgar-ai-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 = { "tickers": ["MDB"] }

# Run the Actor and wait for it to finish
run = client.actor("dominvo/sec-edgar-ai-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 '{
  "tickers": [
    "MDB"
  ]
}' |
apify call dominvo/sec-edgar-ai-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC EDGAR AI Scraper - LLM-ready filings, RAG chunks & signals",
        "description": "SEC EDGAR as LLM-ready data: section-aware Markdown, RAG chunks with stable IDs + SHA-256, XBRL facts, Form 4/13F, section diff, scored signals. Multi-event PPE. Pairs with sec-edgar-mcp.",
        "version": "0.0",
        "x-build-id": "nrCGQTuSU9vhRzGfB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dominvo~sec-edgar-ai-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dominvo-sec-edgar-ai-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/dominvo~sec-edgar-ai-scraper/runs": {
            "post": {
                "operationId": "runs-sync-dominvo-sec-edgar-ai-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/dominvo~sec-edgar-ai-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-dominvo-sec-edgar-ai-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "cik_ticker_map",
                            "company_filings",
                            "form_4_filings",
                            "form_13d_filings",
                            "form_13f_filings",
                            "filing_markdown",
                            "form_10q_filings",
                            "form_d_filings",
                            "form_8k_filings",
                            "form_10k_filings",
                            "xbrl_statements",
                            "xbrl_facts",
                            "xbrl_frames",
                            "form_def14a_filings",
                            "section_mda",
                            "form_3_filings",
                            "section_risk_factors",
                            "form_5_filings",
                            "form_13g_filings",
                            "filing_text",
                            "xbrl_metrics",
                            "filings_index",
                            "filings_feed",
                            "filings_search",
                            "section_icfr",
                            "form_20f_filings",
                            "form_s1_filings",
                            "form_424b_prospectus",
                            "form_s3_filings",
                            "form_144_filings",
                            "form_nport_filings",
                            "form_6k_filings",
                            "def14a_audit_fees",
                            "def14a_exec_comp",
                            "def14a_pay_vs_performance",
                            "def14a_directors",
                            "section_legal_proceedings",
                            "section_business",
                            "form_40f_filings",
                            "form_atsn_filings",
                            "section_subsidiaries",
                            "form_ncsr_filings",
                            "form_ncen_filings",
                            "def14a_beneficial_owners",
                            "form_npx_filings",
                            "form_c_filings",
                            "filing_chunks",
                            "ai_importance",
                            "section_diff",
                            "ai_summary",
                            "disclosure_compare",
                            "peer_benchmark",
                            "signal_pack",
                            "insider_cluster",
                            "lockup_expiration",
                            "discrete_signals",
                            "activist_clustering",
                            "form_sd_disclosures",
                            "form_25_notifications",
                            "form_15_terminations",
                            "form_8a_registrations",
                            "form_reg_a_family",
                            "form_14d9_recommendation",
                            "form_to_tender",
                            "form_s4_filings",
                            "aaer_releases",
                            "comment_letters",
                            "administrative_proceedings",
                            "litigation_releases",
                            "form_adv_filings"
                        ],
                        "type": "string",
                        "description": "Which mode to run. Catalog grows as new modes ship.",
                        "default": "cik_ticker_map"
                    },
                    "tickers": {
                        "title": "Tickers",
                        "type": "array",
                        "description": "Stock tickers to look up (e.g. MDB, NET). Auto-resolved to CIK.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "ciks": {
                        "title": "CIKs",
                        "type": "array",
                        "description": "Raw 10-digit CIKs (zero-padded or bare).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "companies": {
                        "title": "Company names",
                        "type": "array",
                        "description": "Fuzzy company-name lookups. Only used by cik_ticker_map.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "domains": {
                        "title": "Domains",
                        "type": "array",
                        "description": "Website domains (TLD stripped, treated as name hint). Only used by cik_ticker_map.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "date_from": {
                        "title": "From date",
                        "type": "string",
                        "description": "Earliest filing date (YYYY-MM-DD). Optional. Used by filings modes."
                    },
                    "date_to": {
                        "title": "To date",
                        "type": "string",
                        "description": "Latest filing date (YYYY-MM-DD). Optional. Used by filings modes."
                    },
                    "since_accession": {
                        "title": "Resume since accession",
                        "type": "string",
                        "description": "Skip filings with accession number ≤ this value. For incremental resume."
                    },
                    "forms": {
                        "title": "Form types",
                        "type": "array",
                        "description": "Optional list of SEC form types to filter by (e.g. ['10-K', '8-K']). Used by ai_importance; if omitted, all forms are scored.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "output_format": {
                        "title": "Output format",
                        "enum": [
                            "json",
                            "ndjson",
                            "csv",
                            "xlsx",
                            "markdown"
                        ],
                        "type": "string",
                        "description": "json streams to the default dataset. ndjson/csv/xlsx/markdown flush to the key-value store at end of run.",
                        "default": "json"
                    },
                    "form": {
                        "title": "Form type",
                        "type": "string",
                        "description": "SEC form type to scope filing fetches (e.g. 10-K, 10-Q, S-1). Used by Tier 2 RAG/composite modes such as filing_chunks.",
                        "default": "10-K"
                    },
                    "sections": {
                        "title": "Sections",
                        "type": "array",
                        "description": "Section keys to extract from each filing. Used by filing_chunks and similar Tier 2 modes. Common keys: risk_factors, mda, business, legal_proceedings, icfr.",
                        "default": [
                            "risk_factors",
                            "mda",
                            "business"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "window_tokens": {
                        "title": "Window tokens",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Token-window size for chunking section text. Used by filing_chunks.",
                        "default": 1024
                    },
                    "overlap_tokens": {
                        "title": "Overlap tokens",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Token overlap between adjacent chunks. Must be < window_tokens. Used by filing_chunks.",
                        "default": 256
                    },
                    "section": {
                        "title": "Section",
                        "enum": [
                            "risk_factors",
                            "mda",
                            "business",
                            "legal_proceedings",
                            "icfr"
                        ],
                        "type": "string",
                        "description": "Single section key to diff. Used by section_diff.",
                        "default": "risk_factors"
                    },
                    "mode_shape": {
                        "title": "Output shape (section_diff)",
                        "enum": [
                            "per_op",
                            "per_section"
                        ],
                        "type": "string",
                        "description": "section_diff: emit one record per diff op (per_op, default) or one bundle per filing pair (per_section).",
                        "default": "per_op"
                    },
                    "max_pairs": {
                        "title": "Max filing pairs (section_diff)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Cap on the number of adjacent (old, new) filing pairs diffed per issuer, newest first. Used by section_diff.",
                        "default": 3
                    },
                    "model": {
                        "title": "LLM model (ai_summary)",
                        "type": "string",
                        "description": "OpenRouter model slug for primary summarization. Used by ai_summary.",
                        "default": "google/gemini-2.5-flash"
                    },
                    "fallback_model": {
                        "title": "Fallback LLM model (ai_summary)",
                        "type": "string",
                        "description": "OpenRouter model slug used as a fallback if the primary call fails. Used by ai_summary.",
                        "default": "groq/llama-3.1-8b-instant"
                    },
                    "openrouter_api_key": {
                        "title": "OpenRouter API key (ai_summary)",
                        "type": "string",
                        "description": "OpenRouter API key. If omitted, the actor reads OPENROUTER_API_KEY from env. Required by ai_summary."
                    },
                    "max_input_chars": {
                        "title": "Max input characters (ai_summary)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum character length of the combined section text passed to the LLM. Used by ai_summary.",
                        "default": 80000
                    },
                    "timeout": {
                        "title": "LLM request timeout seconds (ai_summary)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Timeout in seconds for each OpenRouter HTTP call. Used by ai_summary.",
                        "default": 60
                    },
                    "lookback_quarters": {
                        "title": "Lookback quarters (disclosure_compare / signal_pack)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Trailing window in quarters (90 days each). Used by disclosure_compare (default 4 when date_from omitted) and signal_pack (default 8).",
                        "default": 4
                    },
                    "signals": {
                        "title": "Signal filter (signal_pack)",
                        "type": "array",
                        "description": "Subset of signal names to score. Omit to score all 12. Used by signal_pack.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "metrics": {
                        "title": "Metrics (disclosure_compare / peer_benchmark)",
                        "type": "array",
                        "description": "Which side-by-side metrics to compute. Used by disclosure_compare (filing_cadence, insider_activity, eight_k_severity, activist_flag) and peer_benchmark (gross_margin, operating_margin, revenue_growth_yoy, roe, fcf_margin).",
                        "default": [
                            "filing_cadence",
                            "insider_activity",
                            "eight_k_severity",
                            "activist_flag"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "fiscal_year": {
                        "title": "Fiscal year (xbrl_facts)",
                        "type": "integer",
                        "description": "Filter facts to a single fiscal year (e.g. 2024). Used by xbrl_facts."
                    },
                    "window_days": {
                        "title": "Window days (insider_cluster / activist_clustering)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Rolling window (in days). Used by insider_cluster (default 60) and activist_clustering (default 90).",
                        "default": 60
                    },
                    "min_filers": {
                        "title": "Min filers per cluster (activist_clustering)",
                        "minimum": 2,
                        "type": "integer",
                        "description": "Minimum number of unique 13D filers within the rolling window to qualify as a wolf-pack cluster. Used by activist_clustering.",
                        "default": 2
                    },
                    "min_insiders": {
                        "title": "Min insiders (insider_cluster)",
                        "minimum": 2,
                        "type": "integer",
                        "description": "Minimum distinct insiders required to declare a cluster. Used by insider_cluster.",
                        "default": 3
                    },
                    "direction": {
                        "title": "Direction (insider_cluster)",
                        "enum": [
                            "buy",
                            "sell",
                            "any"
                        ],
                        "type": "string",
                        "description": "Restrict clusters by trade side: buy = non-sell codes only, sell = sell-side codes only, any = either (homogeneous per cluster). Used by insider_cluster.",
                        "default": "any"
                    },
                    "lookahead_days": {
                        "title": "Lookahead days (lockup_expiration)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Optional cap on how far in the future a projected lockup expiration date may fall. Records with expiration_date > today + lookahead_days are skipped. Used by lockup_expiration."
                    },
                    "signal_types": {
                        "title": "Signal type filter (discrete_signals)",
                        "type": "array",
                        "description": "Subset of discrete signal sub-types to emit. Omit (or leave empty) for all 7. Allowed values: late_filing, going_concern, material_weakness, restatement, auditor_change, cfo_change, ceo_change. Used by discrete_signals.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "variant": {
                        "title": "Reg A+ variant (form_reg_a_family)",
                        "enum": [
                            "1-A",
                            "1-K",
                            "1-SA",
                            "1-U",
                            "any"
                        ],
                        "type": "string",
                        "description": "Which Reg A+ form variant to fetch. 'any' fetches all four. Used by form_reg_a_family.",
                        "default": "any"
                    },
                    "subtype": {
                        "title": "SC TO subtype (form_to_tender)",
                        "enum": [
                            "TO-I",
                            "TO-T",
                            "any"
                        ],
                        "type": "string",
                        "description": "Which SC TO sub-type to fetch. 'any' fetches both. Used by form_to_tender.",
                        "default": "any"
                    },
                    "include_amendments": {
                        "title": "Include amendments (form_s4_filings)",
                        "type": "boolean",
                        "description": "When true, also fetch S-4/A amendment filings alongside S-4 originals. Used by form_s4_filings.",
                        "default": true
                    },
                    "release_ids": {
                        "title": "Release IDs (aaer_releases / litigation_releases)",
                        "type": "array",
                        "description": "Specific release IDs to fetch (e.g. 'AAER-4520' for aaer_releases, 'lr-25700' for litigation_releases). When omitted, all index rows matching the other filters are fetched.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "respondent_name": {
                        "title": "Respondent name (aaer_releases / litigation_releases)",
                        "type": "string",
                        "description": "Case-insensitive substring match against the release index title. Used by aaer_releases and litigation_releases."
                    },
                    "year": {
                        "title": "Year (litigation_releases / administrative_proceedings)",
                        "minimum": 1995,
                        "type": "integer",
                        "description": "Calendar year for the enforcement yearly archive. Defaults to current year when omitted. Used by litigation_releases and administrative_proceedings."
                    },
                    "pair_window_days": {
                        "title": "Pair window days (comment_letters)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of days after an UPLOAD (staff letter) within which a CORRESP (registrant response) is paired. Used by comment_letters.",
                        "default": 90
                    },
                    "firm_names": {
                        "title": "IAPD firm names (form_adv_filings)",
                        "type": "array",
                        "description": "Investment-adviser firm names to look up in IAPD. Each name resolves to one or more CRD numbers via IAPD firm search. Used by form_adv_filings.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "crd_numbers": {
                        "title": "IAPD CRD numbers (form_adv_filings)",
                        "type": "array",
                        "description": "Direct IAPD CRD numbers to fetch firm reports for. Bypasses firm-name search. Used by form_adv_filings.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "include_disciplinary_only": {
                        "title": "Disciplinary events only (form_adv_filings)",
                        "type": "boolean",
                        "description": "When true, emit one record per disclosure event instead of one summary record per firm. Used by form_adv_filings.",
                        "default": false
                    },
                    "file_numbers": {
                        "title": "File numbers (administrative_proceedings)",
                        "type": "array",
                        "description": "Specific administrative-proceeding file numbers to fetch directly (e.g. '3-21800'). When set, the index is skipped. Used by administrative_proceedings.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "concepts": {
                        "title": "XBRL concepts",
                        "type": "array",
                        "description": "XBRL concept names or patterns (e.g. ['Revenues', 'NetIncomeLoss']). Used by xbrl_facts (filter) and xbrl_frames (axis — at least one required). Empty = no filter on xbrl_facts.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "periods": {
                        "title": "Periods (xbrl_frames)",
                        "type": "array",
                        "description": "XBRL Frames period codes — instant ('CY2024Q1I') or duration ('CY2024Q1', 'CY2024'). At least one required by xbrl_frames.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "units": {
                        "title": "Units (xbrl_frames)",
                        "type": "array",
                        "description": "XBRL units of measure ('USD', 'shares', 'USD/shares'). Used by xbrl_frames.",
                        "default": [
                            "USD"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "taxonomy": {
                        "title": "Taxonomy (xbrl_frames)",
                        "enum": [
                            "us-gaap",
                            "ifrs-full",
                            "dei",
                            "srt"
                        ],
                        "type": "string",
                        "description": "XBRL taxonomy ('us-gaap', 'ifrs-full', 'dei', 'srt'). Used by xbrl_frames.",
                        "default": "us-gaap"
                    },
                    "max_rows_per_frame": {
                        "title": "Max rows per frame (xbrl_frames)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Cap rows emitted per (concept, period, unit) frame. Used by xbrl_frames.",
                        "default": 5000
                    },
                    "fiscal_periods": {
                        "title": "Fiscal periods (xbrl_facts)",
                        "type": "array",
                        "description": "Filter facts to specific fiscal periods (['FY', 'Q1', 'Q2', 'Q3']). Empty = all periods. Used by xbrl_facts.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "statement_types": {
                        "title": "Statement types (xbrl_facts)",
                        "type": "array",
                        "description": "Filter facts to specific statement types (['IncomeStatement', 'BalanceSheet', 'CashFlowStatement']). Empty = all. Used by xbrl_facts.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_facts": {
                        "title": "Max facts per filing (xbrl_facts)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Cap facts emitted per filing. Used by xbrl_facts.",
                        "default": 5000
                    },
                    "transaction_codes": {
                        "title": "Transaction codes (form_4_filings)",
                        "type": "array",
                        "description": "Form 4 transaction codes to keep (P=buy, S=sell, A=grant, M=exercise, F=tax withhold, G=gift, D=disposition, plus long-tail X/C/J/V/I/U). Empty = all codes. Used by form_4_filings.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "item_codes": {
                        "title": "8-K item codes (form_8k_filings)",
                        "type": "array",
                        "description": "8-K Item numbers to keep (e.g. '2.02' earnings, '4.01' auditor change, '4.02' restatement, '5.02' exec change). Empty = all items. Used by form_8k_filings.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
