# SEC EDGAR Filings Scraper (`automation-lab/sec-edgar-filings-scraper`) Actor

🏛️ Extract official SEC EDGAR filing metadata by ticker or CIK, including forms, dates, accession numbers, company identity, and filing/document URLs.

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

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Filings Scraper

Extract official SEC EDGAR filing metadata for US public companies by ticker or CIK. Turn company submissions into clean, export-ready rows with forms, dates, accession numbers, filing links, document links, and company identity.

Use it for recurring filing monitors, compliance research, investment screening, historical backfills, financial datasets, and retrieval-augmented generation (RAG) pipelines. The Actor reads the SEC's public JSON data directly—no browser, proxy, SEC account, or third-party data subscription is required.

### What does SEC EDGAR Filings Scraper do?

SEC EDGAR Filings Scraper converts the SEC's aligned company-submission arrays into one normalized dataset row per filing.

It can:

- 🏢 resolve ticker symbols such as `AAPL`, `MSFT`, and `NVDA` to official CIKs;
- 🔢 accept zero-padded or numeric SEC CIKs directly;
- 📄 filter exact forms such as `10-K`, `10-Q`, `8-K`, `S-1`, `DEF 14A`, or `4`;
- 📅 filter inclusive filing-date and report-period ranges;
- 🗄️ follow historical submission shards for long-range backfills;
- 🔗 build deterministic SEC filing-detail and primary-document URLs;
- 📦 export results to JSON, CSV, Excel, XML, RSS, or the Apify API.

Version 1 focuses on reliable cross-form filing index metadata. It does not parse financial statements, XBRL facts, insider transactions, filing text, or AI summaries.

### Why use this SEC filing extractor?

The SEC submissions API is public, but its filing data is represented as multiple aligned arrays. Production pipelines must also resolve tickers, normalize CIKs, traverse older shard files, preserve array alignment, pace requests, retry transient failures, filter dates, and construct archive URLs.

This Actor handles those steps and returns stable records ready for analysis.

- ✅ Official SEC source
- ✅ No login or paid API key
- ✅ Current and historical filings
- ✅ Strict input validation
- ✅ Source provenance on every row
- ✅ Pay only for filing rows saved
- ✅ Apify scheduling, webhooks, datasets, API, and integrations

### Who is it for?

#### Investors and analysts

Track annual reports, quarterly reports, material events, proxy statements, registrations, and ownership forms across a watchlist.

#### Compliance and legal teams

Backfill filing histories by CIK, verify submission timelines, and feed internal review or retention systems.

#### Finance researchers

Create reproducible company-form-date panels without manually navigating EDGAR search pages.

#### Data vendors and engineers

Populate filing indexes, alerts, knowledge graphs, warehouses, and RAG corpora from official metadata.

#### AI agents and automation teams

Give an agent structured filing links and accession numbers before downstream document retrieval or analysis.

### Supported company identifiers

Provide one or more values in `identifiers`:

- ticker: `AAPL`
- ticker with punctuation: `BRK.B`
- numeric CIK: `320193`
- zero-padded CIK: `0000320193`

Ticker matching is case-insensitive. Numeric CIKs are padded to the SEC's ten-digit format. Unknown tickers and malformed values fail clearly rather than silently returning unrelated data.

A single run supports up to 100 unique company identifiers.

### Supported filing filters

Use `formTypes` for exact, case-insensitive SEC form matches. Common examples include:

- `10-K` — annual report
- `10-Q` — quarterly report
- `8-K` — current report
- `S-1` — registration statement
- `DEF 14A` — definitive proxy statement
- `13F-HR` — institutional holdings report
- `4` — beneficial ownership change

Leave `formTypes` empty to return every form in the company submissions feed.

Date bounds are inclusive. `filingDateFrom` and `filingDateTo` filter the SEC filing date. `reportDateFrom` and `reportDateTo` filter the filing's report period. When report-period filtering is active, filings without a report date are excluded.

### Input

A focused current-filings run:

```json
{
  "identifiers": ["AAPL", "MSFT"],
  "formTypes": ["10-K", "10-Q", "8-K"],
  "maxItems": 50
}
````

A historical backfill:

```json
{
  "identifiers": ["0000320193"],
  "formTypes": ["10-K"],
  "filingDateFrom": "2010-01-01",
  "filingDateTo": "2025-12-31",
  "includeHistorical": true,
  "maxItems": 500
}
```

| Field | Type | Required | Description |
|---|---|---:|---|
| `identifiers` | string\[] | Yes | One to 100 ticker symbols or CIKs |
| `formTypes` | string\[] | No | Exact SEC forms; empty means all forms |
| `filingDateFrom` | string | No | Inclusive filing date, `YYYY-MM-DD` |
| `filingDateTo` | string | No | Inclusive filing date, `YYYY-MM-DD` |
| `reportDateFrom` | string | No | Inclusive report-period date |
| `reportDateTo` | string | No | Inclusive report-period date |
| `includeHistorical` | boolean | No | Follow older SEC submission shards |
| `maxItems` | integer | No | Global output cap; default 100 |
| `userAgent` | string | No | Organization/contact identification for SEC requests |

### Output data

Each dataset row represents one SEC filing index record.

| Field | Meaning |
|---|---|
| `companyName` | SEC registrant name |
| `cik` | Zero-padded ten-digit CIK |
| `ticker`, `exchange` | Primary ticker and exchange when available |
| `tickers`, `exchanges` | All aliases supplied by SEC |
| `accessionNumber` | Unique SEC accession number |
| `form` | SEC form type |
| `filingDate` | Date filed with SEC |
| `reportDate` | Reporting period when present |
| `acceptanceDateTime` | SEC acceptance timestamp when present |
| `act` | Governing act code when present |
| `fileNumber`, `filmNumber` | SEC reference identifiers |
| `items` | Form item codes supplied by SEC |
| `size` | Filing size in bytes |
| `isXbrl`, `isInlineXbrl` | SEC XBRL indicators |
| `primaryDocument` | Primary filing document filename |
| `primaryDocumentDescription` | SEC document description |
| `filingDetailsUrl` | Filing index page URL |
| `primaryDocumentUrl` | Direct primary document URL |
| `sourceSubmissionsUrl` | Exact SEC JSON source URL |
| `scrapedAt` | UTC extraction timestamp |

### Output example

```json
{
  "companyName": "Apple Inc.",
  "cik": "0000320193",
  "ticker": "AAPL",
  "exchange": "Nasdaq",
  "tickers": ["AAPL"],
  "exchanges": ["Nasdaq"],
  "accessionNumber": "0000320193-24-000123",
  "form": "10-K",
  "filingDate": "2024-11-01",
  "reportDate": "2024-09-28",
  "primaryDocument": "aapl-20240928.htm",
  "primaryDocumentDescription": "10-K",
  "filingDetailsUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/0000320193-24-000123-index.html",
  "primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm",
  "sourceSubmissionsUrl": "https://data.sec.gov/submissions/CIK0000320193.json",
  "scrapedAt": "2026-07-24T00:00:00.000Z"
}
```

Optional fields are omitted when the SEC does not provide a value. This avoids ambiguous `null` values in CSV and downstream pipelines.

### Current filings versus historical backfills

The main company submissions response contains recent filing arrays and references to older JSON shards.

Keep `includeHistorical` off for:

- frequent monitoring runs;
- recently filed forms;
- quick watchlist checks;
- lower request volume and faster completion.

Enable `includeHistorical` for:

- multi-year archives;
- older annual reports;
- compliance retention projects;
- longitudinal finance research.

When filing-date bounds are present, historical shards outside the requested range are skipped before download.

### How much does it cost to extract SEC EDGAR filings?

The Actor uses pay-per-event pricing: a small run-start charge plus a charge for each filing row saved. Current Bronze pricing is **$0.005 per run plus $0.000053757 per filing**, with lower unit prices on higher plans and a Free-plan tier.

You are not charged per ticker, SEC request, retry, or historical shard. Use `maxItems` to keep test runs predictable. Final live tier prices are always displayed on the Actor's Pricing tab.

Because extraction uses official HTTP JSON at 256 MB without a browser or proxy, platform compute usage is designed to remain low.

### How to run it

1. Open the Actor input page.
2. Add at least one ticker or CIK.
3. Optionally choose form types and date ranges.
4. Enable historical shards only for older backfills.
5. Set `maxItems` to the desired global cap.
6. Click **Start**.
7. Open the Dataset tab to preview or export filing records.

For a cheap first run, keep the prefilled `AAPL` input and `maxItems: 20`.

### Tips for reliable filing workflows

- 🎯 Use CIKs when your internal system already stores them; they avoid ticker changes.
- 📅 Add filing-date bounds to historical backfills so irrelevant shards are skipped.
- 📄 Use exact SEC form names, including amendments such as `10-K/A` when needed.
- 🔁 Schedule small current-only runs for monitoring rather than repeating full history.
- 🔗 Store accession numbers as durable filing identifiers.
- 🧾 Use `sourceSubmissionsUrl` for provenance and audit trails.
- 📦 Export to a dataset or warehouse before retrieving primary filing documents at scale.

### Scheduling and filing alerts

Apify schedules can run the Actor hourly, daily, weekly, or on a custom cron expression.

A typical monitor workflow is:

1. run current submissions for a ticker watchlist;
2. filter the dataset by filing date or accession number;
3. send dataset items through a webhook;
4. deduplicate accession numbers in the destination;
5. notify Slack, email, or an internal case-management system.

The Actor itself returns filing records. Alert delivery and cross-run persistence are configured with Apify schedules, webhooks, or your integration platform.

### Integrations

#### Google Sheets

Send dataset rows to a spreadsheet for analyst review, filtering, and annotations.

#### Slack or Microsoft Teams

Trigger a webhook after the run and post newly observed accession numbers and filing links.

#### Zapier and Make

Create no-code workflows that route 8-K, 10-K, or Form 4 metadata to CRM, email, or storage systems.

#### Snowflake, BigQuery, or PostgreSQL

Load normalized rows into a warehouse and join them with issuer, market, or portfolio data.

#### RAG and document pipelines

Use `primaryDocumentUrl` as the retrieval queue, while retaining `accessionNumber`, company identity, form, and dates as document metadata.

### JavaScript API example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/sec-edgar-filings-scraper').call({
  identifiers: ['AAPL', 'MSFT'],
  formTypes: ['10-K', '10-Q'],
  maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/sec-edgar-filings-scraper").call(run_input={
    "identifiers": ["NVDA"],
    "formTypes": ["8-K"],
    "maxItems": 50,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["ticker"], item["form"], item["filingDetailsUrl"])
```

### cURL API example

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/automation-lab~sec-edgar-filings-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "identifiers": ["AAPL"],
    "formTypes": ["10-K"],
    "maxItems": 25
  }'
```

For asynchronous runs, call the `/runs` endpoint and read the resulting default dataset after completion.

### Use with Apify MCP

Connect the Actor to AI assistants through [Apify MCP](https://mcp.apify.com/?tools=automation-lab/sec-edgar-filings-scraper).

#### Claude Code

Add the hosted Apify MCP server with the exact Actor tool enabled:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=automation-lab/sec-edgar-filings-scraper"
```

Authenticate with your Apify token when prompted. Example prompts:

- "Find Apple's latest 10-K and return the SEC filing and primary-document URLs."
- "List Microsoft 8-K filings since 2025-01-01."
- "Backfill NVIDIA 10-K accession numbers from 2015 through 2025."

#### Claude Desktop setup

#### Cursor setup

#### VS Code setup

For Claude Desktop, Cursor, or VS Code, add this MCP JSON configuration in the client's MCP settings:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=automation-lab/sec-edgar-filings-scraper"
    }
  }
}
```

Authenticate with Apify, then ask the assistant to run a bounded query. Keep `maxItems` low for interactive work. MCP returns structured Actor output, making forms, dates, companies, and links available without scraping EDGAR HTML pages.

### Data source and fair access

This Actor reads public SEC endpoints:

- company ticker mapping on `www.sec.gov`;
- company submissions and historical shards on `data.sec.gov`;
- filing documents under `www.sec.gov/Archives`.

Requests include a descriptive User-Agent and are serialized with conservative pacing. Transient rate limits and server errors receive bounded exponential retries. You can provide your own organization and contact identification in `userAgent`.

Do not use the Actor to overload SEC systems. Keep schedules and company batches proportionate to your actual workflow.

### Is scraping SEC EDGAR legal?

SEC EDGAR filing data is public government information. However, users remain responsible for complying with SEC fair-access guidance, applicable laws, contractual duties, privacy requirements, and their own organization's policies.

This Actor is a technical data-access tool, not legal, investment, accounting, or compliance advice. Verify important records against the linked official filing before making decisions.

### Error handling

The Actor fails clearly when:

- no identifiers are provided;
- an identifier is malformed;
- a ticker does not exist in the current SEC mapping;
- a date is invalid or a start date follows an end date;
- SEC data cannot be fetched after bounded retries;
- no filing matches the supplied companies and filters.

A zero-match run is not reported as a misleading successful extraction. For expected sparse monitors, use a date/form combination known to include at least one filing or handle failed no-match runs in your scheduler.

### FAQ

#### Does it download complete filing documents?

No. It outputs direct filing-detail and primary-document URLs. Document or XBRL parsing is outside the v1 cross-form index scope.

#### Can I search by company name?

Use ticker symbols or CIKs. Company-name matching is ambiguous and is intentionally not guessed.

#### Why did my report-date filter return no records?

Some SEC forms have no report date. When report-date bounds are supplied, those records fail closed. Remove the report filter or filter on filing date instead.

#### Why is an older filing missing?

Enable `includeHistorical` for records moved from the recent submissions arrays into SEC historical shards. Also verify `maxItems` and date bounds.

#### Does it support amended forms?

Yes. Match the exact amended form name, such as `10-K/A`, or leave `formTypes` empty.

#### Are results deduplicated?

Yes. Accession numbers are deduplicated within each run, including across current and historical sources.

#### Does it need a proxy or SEC API key?

No. It uses official anonymous public JSON endpoints with fair-access identification and pacing.

### Related Automation Lab actors

Choose a form-specific product when you need parsed entities rather than a generic filing index:

- [SEC Form 4 Insider Trading Scraper](https://apify.com/automation-lab/sec-form-4-insider-trading-scraper)
- [SEC 8-K Filings Scraper](https://apify.com/automation-lab/sec-8-k-filings-scraper)
- [SEC Form D Filings Scraper](https://apify.com/automation-lab/sec-form-d-filings-scraper)
- [SEC Company Facts Scraper](https://apify.com/automation-lab/sec-company-facts-scraper)
- [SEC S-1 Filings Scraper](https://apify.com/automation-lab/sec-s-1-filings-scraper)

Use SEC EDGAR Filings Scraper when you need a broad, normalized, cross-form company filing index with official links and historical backfill support.

### Support

If a run fails unexpectedly, open an issue from the Actor page and include:

- the run URL;
- the input identifiers and filters;
- the expected company/form/date;
- whether historical shards were enabled.

Do not include Apify tokens or confidential downstream data. Run logs already show high-level company and CIK processing without exposing credentials.

# Actor input Schema

## `identifiers` (type: `array`):

US public-company ticker symbols (such as AAPL) or numeric SEC CIKs. Each company is resolved to its official SEC submissions feed.

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

Optional exact SEC form filters, for example 10-K, 10-Q, 8-K, S-1, DEF 14A, or 4. Leave empty to include every form.

## `filingDateFrom` (type: `string`):

Optional filing-date lower bound in YYYY-MM-DD format.

## `filingDateTo` (type: `string`):

Optional filing-date upper bound in YYYY-MM-DD format.

## `reportDateFrom` (type: `string`):

Optional report-period lower bound in YYYY-MM-DD format. Filings without a report date do not match this filter.

## `reportDateTo` (type: `string`):

Optional report-period upper bound in YYYY-MM-DD format. Filings without a report date do not match this filter.

## `includeHistorical` (type: `boolean`):

Follow SEC historical submission files for older filings. Enable this for long-range backfills; leave it off for faster monitoring runs.

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

Maximum total filing records saved across all requested companies.

## `userAgent` (type: `string`):

Optional descriptive User-Agent with organization and contact details, as requested by SEC fair-access guidance.

## Actor input object example

```json
{
  "identifiers": [
    "AAPL"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "includeHistorical": false,
  "maxItems": 20,
  "userAgent": "Automation Lab SEC EDGAR Filings Scraper contact@automation-lab.ai"
}
```

# Actor output Schema

## `overview` (type: `string`):

Open the normalized filing dataset with company identity, filing metadata, accession numbers, and official SEC links.

# 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 = {
    "identifiers": [
        "AAPL"
    ],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K"
    ],
    "includeHistorical": false,
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/sec-edgar-filings-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 = {
    "identifiers": ["AAPL"],
    "formTypes": [
        "10-K",
        "10-Q",
        "8-K",
    ],
    "includeHistorical": False,
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/sec-edgar-filings-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 '{
  "identifiers": [
    "AAPL"
  ],
  "formTypes": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "includeHistorical": false,
  "maxItems": 20
}' |
apify call automation-lab/sec-edgar-filings-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC EDGAR Filings Scraper",
        "description": "🏛️ Extract official SEC EDGAR filing metadata by ticker or CIK, including forms, dates, accession numbers, company identity, and filing/document URLs.",
        "version": "0.1",
        "x-build-id": "Xpg199gaBQTYVbQHf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~sec-edgar-filings-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-sec-edgar-filings-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/automation-lab~sec-edgar-filings-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-sec-edgar-filings-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/automation-lab~sec-edgar-filings-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-sec-edgar-filings-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": [
                    "identifiers"
                ],
                "properties": {
                    "identifiers": {
                        "title": "🏢 Company tickers or CIKs",
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "description": "US public-company ticker symbols (such as AAPL) or numeric SEC CIKs. Each company is resolved to its official SEC submissions feed.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "formTypes": {
                        "title": "📄 Filing form types",
                        "type": "array",
                        "description": "Optional exact SEC form filters, for example 10-K, 10-Q, 8-K, S-1, DEF 14A, or 4. Leave empty to include every form.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "filingDateFrom": {
                        "title": "Filed on or after",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Optional filing-date lower bound in YYYY-MM-DD format."
                    },
                    "filingDateTo": {
                        "title": "Filed on or before",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Optional filing-date upper bound in YYYY-MM-DD format."
                    },
                    "reportDateFrom": {
                        "title": "Report period on or after",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Optional report-period lower bound in YYYY-MM-DD format. Filings without a report date do not match this filter."
                    },
                    "reportDateTo": {
                        "title": "Report period on or before",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Optional report-period upper bound in YYYY-MM-DD format. Filings without a report date do not match this filter."
                    },
                    "includeHistorical": {
                        "title": "🗄️ Include historical filing shards",
                        "type": "boolean",
                        "description": "Follow SEC historical submission files for older filings. Enable this for long-range backfills; leave it off for faster monitoring runs.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Maximum filings",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum total filing records saved across all requested companies.",
                        "default": 100
                    },
                    "userAgent": {
                        "title": "SEC User-Agent identification",
                        "type": "string",
                        "description": "Optional descriptive User-Agent with organization and contact details, as requested by SEC fair-access guidance.",
                        "default": "Automation Lab SEC EDGAR Filings Scraper contact@automation-lab.ai"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
