SEC EDGAR Company Filings Scraper

Extract SEC EDGAR filing metadata by ticker or CIK with form/date filters, accession numbers, company fields, and direct SEC document URLs.

Data fields

FieldTypeDescription
cikstringValue exported as cik.
tickerstring | nullValue exported as ticker.
companyNamestringValue exported as companyName.
sicstring | nullValue exported as sic.
sicDescriptionstring | nullValue exported as sicDescription.
formstringValue exported as form.
filingDatestringValue exported as filingDate.
reportDatestring | nullValue exported as reportDate.

Input preview

tickersOrCiksTickers or CIKs *
formsForm types
dateFromFiled on or after
dateToFiled on or before
maxFilingsPerCompanyMaximum filings per company
includeDocumentsInclude primary document URLs

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Export SEC EDGAR filing metadata by ticker or CIK, including form type, filing dates, accession numbers, company identifiers, and direct SEC filing document URLs.

Use this Actor when you need a repeatable CSV, JSON, Excel, API, or AI-agent feed of public SEC filings for investment research, compliance monitoring, competitive intelligence, or financial-data workflows.

What Does SEC EDGAR Company Filings Scraper Do?

SEC EDGAR Company Filings Scraper looks up public company submissions on SEC EDGAR and saves matching filing rows.

  • Search by ticker or CIK: use symbols such as AAPL, MSFT, or identifiers such as 0000320193.
  • Filter form types: collect 10-K, 10-Q, 8-K, Form 4, S-1, or any other SEC form values.
  • Filter by filing date: limit results with dateFrom and dateTo.
  • Export document links: include SEC filing detail URLs and primary document URLs when available.
  • Use as an API feed: run from Apify API, schedules, webhooks, or the official Apify MCP server.

Input Example

{
  "tickersOrCiks": ["AAPL", "MSFT"],
  "forms": ["10-K", "10-Q", "8-K"],
  "dateFrom": "2024-01-01",
  "maxFilingsPerCompany": 20,
  "includeDocuments": true,
  "requestDelayMs": 120
}

Output Example

{
  "cik": "0000320193",
  "ticker": "AAPL",
  "companyName": "Apple Inc.",
  "sic": "3571",
  "sicDescription": "Electronic Computers",
  "form": "10-Q",
  "filingDate": "2026-05-01",
  "reportDate": "2026-03-28",
  "accessionNumber": "0000320193-26-000000",
  "primaryDocument": "aapl-20260328.htm",
  "filingDetailUrl": "https://www.sec.gov/Archives/edgar/data/320193/...",
  "documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/.../aapl-20260328.htm",
  "isXbrl": true,
  "items": "2.02, 9.01"
}

Who Is It For?

User Use case
Investors and analysts Build a feed of 10-K, 10-Q, 8-K, S-1, or Form 4 filings.
Compliance teams Monitor filing activity for companies, issuers, or peer groups.
Market researchers Compare filing cadence across sectors, competitors, or watchlists.
Data teams Export EDGAR metadata to warehouses, notebooks, dashboards, or alerts.
AI agents Retrieve recent filings through Apify API or MCP and summarize filing activity.

Input settings

Setting JSON key Type / default Description
Tickers or CIKs tickersOrCiks array, default ["AAPL","MSFT"] Stock tickers or SEC CIK identifiers to look up. Examples: AAPL, MSFT, 0000320193.
Form types forms array, default ["10-K","10-Q","8-K"] Optional SEC form filters. Leave empty to return all recent filing types.
Filed on or after dateFrom string, default "2024-01-01" Optional filing date lower bound in YYYY-MM-DD format.
Filed on or before dateTo string Optional filing date upper bound in YYYY-MM-DD format.
Maximum filings per company maxFilingsPerCompany integer, default 20 Maximum matching filings to save for each ticker or CIK.
Include primary document URLs includeDocuments boolean, default true Add direct URLs to primary filing documents when available.
Delay between company requests (ms) requestDelayMs integer, default 120 Polite delay between SEC company requests. Keep this at 100ms or higher for larger lists.

Tips For Better Results

  • Use CIKs for precision: tickers can change, while CIKs are stable SEC identifiers.
  • Filter forms when possible: forms keeps datasets focused and reduces noise.
  • Use date windows: dateFrom and dateTo help create clean monthly, quarterly, or event-specific exports.
  • Keep polite delays: SEC requests should be paced; avoid setting requestDelayMs too low for large company lists.
  • Remember the scope: this Actor exports filing metadata and document links, not full parsed filing text.

API usage

Run SEC EDGAR Company Filings Scraper from your own code with the Apify API.

Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
  "tickersOrCiks": [
    "AAPL",
    "MSFT"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "dateFrom": "2024-01-01",
  "dateTo": "2026-07-08",
  "maxFilingsPerCompany": 20
};

const run = await client.actor('fetch_cat/sec-edgar-company-filings-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/sec-edgar-company-filings-scraper").call(run_input={
  "tickersOrCiks": [
    "AAPL",
    "MSFT"
  ],
  "forms": [
    "10-K",
    "10-Q",
    "8-K"
  ],
  "dateFrom": "2024-01-01",
  "dateTo": "2026-07-08",
  "maxFilingsPerCompany": 20
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~sec-edgar-company-filings-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tickersOrCiks":["AAPL","MSFT"],"forms":["10-K","10-Q","8-K"],"dateFrom":"2024-01-01","dateTo":"2026-07-08","maxFilingsPerCompany":20}'

Use with AI agents via MCP

SEC EDGAR Company Filings Scraper can be used by AI assistants through the hosted Apify MCP server.

Claude Code setup

claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/sec-edgar-company-filings-scraper"

Claude Desktop, Cursor, or VS Code JSON config

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/sec-edgar-company-filings-scraper"
    }
  }
}

Example prompts

  • "Run SEC EDGAR Company Filings Scraper with this input JSON and summarize the dataset."
  • "Export the latest SEC EDGAR Company Filings Scraper results to a table I can review."
  • "Schedule this Actor for monitoring and tell me what changed between runs."

Limits And Notes

  • The Actor reads public SEC EDGAR data and should be used with reasonable request pacing.
  • Ticker lookup depends on available SEC company mapping; CIK input is more precise.
  • documentUrl can be empty when a primary document is unavailable or includeDocuments is disabled.
  • Filing metadata can change when SEC updates company submissions.

Support

Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.

Common questions

Questions and answers reused from the canonical actor README.

Can I scrape full SEC filing text?

This Actor saves filing metadata and URLs to SEC documents. Use the documentUrl to fetch or process full filing documents in a separate workflow.

Can I export filings to CSV or Excel?

Yes. After the run, export the dataset from Apify as CSV, Excel, JSON, XML, or RSS.

Does this require an SEC login?

No. It uses public SEC EDGAR data.

Is this a SEC EDGAR API alternative?

It can serve as a practical API-style export for common EDGAR filing metadata workflows through Apify API, schedules, webhooks, datasets, and MCP.