SEC EDGAR Filings Scraper
Fetch recent SEC EDGAR company filings or one XBRL company concept by ticker or CIK through the SEC's public JSON APIs, returning normalized company metadata, filing URLs, forms, dates, accession numbers, and fact rows.
Overview
SEC EDGAR Filings Scraper gives agents a bounded, compliant route into the SEC's public EDGAR JSON APIs. Resolve a public company ticker to CIK, return recent submissions from the SEC submissions endpoint, filter by forms such as 10-K, 10-Q, and 8-K, and build direct filing and filing-detail URLs. In company-concept mode, fetch one XBRL taxonomy concept such as us-gaap/Assets and return recent fact rows by unit, fiscal year, fiscal period, form, filing date, frame, accession number, and value. It is designed for public-company monitoring, earnings workflows, financial research, disclosure alerts, RAG ingestion, diligence packets, and agent-readable SEC filing context.
Last validated: Jul 3, 2026
Playground
Input
cikstringSEC CIK, with or without leading zeros.
mode"filings" | "company_concept"default: "filings"filings = recent EDGAR submissions; company_concept = one XBRL concept from the SEC companyconcept API.
unitstringOptional unit filter for company_concept mode, such as USD or shares.
formsstringComma-separated form filter for filings mode, such as 10-K,10-Q,8-K.
limitintegerdefault: 10Maximum filing or fact rows to return.
tickerstringTicker symbol such as AAPL. Used when cik is not supplied.
conceptstringXBRL concept tag for company_concept mode, such as Assets.
taxonomystringdefault: "us-gaap"XBRL taxonomy for company_concept mode, usually us-gaap or dei.
include_amendedbooleandefault: falseInclude amended forms ending in /A.
Output
modestringrequiredMode used for this run
unitstringXBRL unit returned
countintegerrequiredNumber of filing or fact rows returned
factsobject[]Recent XBRL concept fact rows
formsstringComma-separated form filter applied
companyobjectrequiredResolved SEC company metadata
company.cikstringTen-digit CIK
company.sicstringSIC code
company.namestringCompany name
company.tickerstringTicker used for lookup
company.entity_typestringSEC entity type
company.fiscal_year_endstringFiscal year end
company.sic_descriptionstringSIC description
company.state_of_incorporationstringState of incorporation
conceptstringXBRL concept used
filingsobject[]Recent EDGAR filing rows
taxonomystringXBRL taxonomy used
source_urlstringrequiredSEC JSON URL fetched for the primary request
Examples
apple-filings
{
"mode": "filings",
"forms": "10-K,10-Q",
"limit": 3,
"ticker": "AAPL"
}apple-assets-concept
{
"mode": "company_concept",
"unit": "USD",
"limit": 2,
"ticker": "AAPL",
"concept": "Assets",
"taxonomy": "us-gaap"
}Use cases
FAQ
Does SEC EDGAR Filings Scraper require an API key?
No. Version 0.1 uses the SEC's public JSON APIs with an identifying user agent. SEC fair-access rules still apply, including the SEC's documented request-rate expectations.
Does it parse full filing text or exhibits?
No. It returns normalized submission metadata, filing URLs, and selected XBRL concept facts. Full filing text extraction, exhibits, tables, and multi-page historical archives are future work.
Is this tool affiliated with the SEC?
No. Better Fetch is not affiliated with or endorsed by the U.S. Securities and Exchange Commission. It uses public SEC data surfaces.
Use it anywhere
MCP (Claude, Cursor, any client)
# Add the Better Fetch MCP connector (or paste the URL into # Claude → Settings → Connectors → Add custom connector): claude mcp add --transport http better-fetch https://betterfetch.co/api/mcp \ --header "Authorization: Bearer bf_your_key_here" # Then ask for the tool by name: sec_edgar_filings_scraper
REST
curl -sS -X POST "https://betterfetch.co/api/tools/sec_edgar_filings_scraper/run" \
-H "Authorization: Bearer bf_your_key_here" \
-H "Content-Type: application/json" \
-d '{"input": {"mode":"filings","forms":"10-K,10-Q","limit":3,"ticker":"AAPL"}}'Run locally
git clone https://github.com/better-fetch/tools/tree/main/tools/sec-edgar-filings-scraper && cd sec-edgar-filings-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"mode":"filings","forms":"10-K,10-Q","limit":3,"ticker":"AAPL"}'