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 as0000320193. - 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
dateFromanddateTo. - 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:
formskeeps datasets focused and reduces noise. - Use date windows:
dateFromanddateTohelp create clean monthly, quarterly, or event-specific exports. - Keep polite delays: SEC requests should be paced; avoid setting
requestDelayMstoo 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.
documentUrlcan be empty when a primary document is unavailable orincludeDocumentsis 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.