SEC EDGAR Filings & Financials
Pricing
Pay per event
SEC EDGAR Filings & Financials
SEC EDGAR scraper for filing and financial-data research. Export filing records and normalized financial period rows as JSON with company identifiers and source references.
SEC EDGAR scraper returns public filing records and normalized financial period rows. SEC EDGAR API results include company identifiers, filing links, reported metrics, and source references where available.
Input example
{"userAgentEmail": "you@yourcompany.com","mode": "filings","companies": ["AAPL"],"forms": ["10-K"],"maxItems": 20}
The input keys and allowed values follow .actor/input_schema.json.
Output fields
| Field | Type | Example or excerpt from sample |
|---|---|---|
record_type | string | "filing" |
ticker | string | "AAPL" |
cik | string | "0000320193" |
company_name | string | "Apple Inc." |
form | string | "8-K" |
filing_date | string | "2026-07-30" |
report_date | string | "2026-07-30" |
accepted_at | string | "2026-07-30T20:30:28.000Z" |
accession_number | string | "0000320193-26-000018" |
primary_document | string | "aapl-20260730.htm" |
primary_doc_url | string | "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm" |
filing_index_url | string | "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/0000320193-26-0000… |
description | string | "8-K" |
items | array | ["2.02", "9.01"] |
item_descriptions | array | ["Results of Operations and Financial Condition", "Financial Statements and Exhibits"] |
size_bytes | integer | 417360 |
is_xbrl | boolean | true |
is_inline_xbrl | boolean | true |
file_number | string | "001-36743" |
sic | string | "3571" |
sic_description | string | "Electronic Computers" |
source | string | "submissions" |
period_type | string | "annual" |
fiscal_year | integer | 2025 |
fiscal_period | string | "FY" |
period_start | string | "2024-09-29" |
period_end | string | "2025-09-27" |
currency | string | "USD" |
filed_date | string | "2025-10-31" |
revenue | integer | 416161000000 |
gross_profit | integer | 195201000000 |
operating_income | integer | 133050000000 |
net_income | integer | 112010000000 |
eps_basic | number | 7.49 |
eps_diluted | number | 7.46 |
operating_cash_flow | integer | 111482000000 |
total_assets | integer | 359241000000 |
total_liabilities | integer | 285508000000 |
stockholders_equity | integer | 73733000000 |
cash | integer | 35934000000 |
shares_outstanding | integer | 14773260000 |
extra | object | {} |
derived_metrics | array | [] |
xbrl_tags | object | {"revenue": "RevenueFromContractWithCustomerExcludingAssessedTax", "gross_profit": "G… |
source_url | string | "https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json" |
Output example
Trimmed from sample_output.json; omitted fields remain available in the dataset.
{"record_type": "filing","ticker": "AAPL","cik": "0000320193","company_name": "Apple Inc.","form": "8-K","filing_date": "2026-07-30","report_date": "2026-07-30"}
Contact email for SEC fair access
The SEC requires every automated client to identify itself with a contact in the User-Agent header and caps traffic at 10 requests per second. This actor sends "<name> <email>" as its User-Agent using your userAgentEmail input (there is deliberately no default, so SEC can reach the person who runs the job) and paces itself to about 5 requests per second across the whole run, with retries and backoff on 403/429/5xx. Use a real address you control. The email is only sent to the SEC and is not written to the results.
Limits
- Data is exactly what the SEC publishes; this actor does not interpret or audit it. Financial rows exist only for filers with XBRL data; filings without it are listed but produce no
factrows. - Financial metrics are read in US dollars (and USD per share, shares). Filers that report in another currency return
nullfor those metrics. - Full-text search is the endpoint behind the sec.gov search page. The SEC does not publish documentation or a service-level promise for it, so treat it as best effort. It returns at most 10,000 hits per query (narrow with dates, forms or companies) and does not return highlighted snippets.
- Form 4
primary_doc_urlpoints to the SEC rendered view (xslF345X..) of the XML. - Only public SEC data is accessed. The actor does not log in, solve CAPTCHAs or use proxies.
Disclaimer
Not affiliated with the U.S. Securities and Exchange Commission. Data is provided as published by the SEC and is not investment advice.
FAQ
What are the output limits? maxItems caps output; XBRL financial rows exist only where the filer reports usable data. Full-text search is best effort.
Do I need a proxy or login? Public SEC endpoints need no login or proxy. Supply a real userAgentEmail for the SEC User-Agent; replace the placeholder in the example.
How is this priced? Proposed pay per event: $0.0003 per filing row and $0.0006 per fact financial-period row. Error rows are uncharged. These are proposals in PRICING.md; the owner must configure Store billing.
How are rate limits handled? The code shares a limiter across requests at about 5 requests per second and backs off on SEC errors and Retry-After.
How fresh is the data? SEC records can be amended after a run. Use filing dates and source links to verify current data. This actor is not affiliated with the SEC and does not provide investment advice.
Use with AI agents / MCP
After the actor is published, connect your agent to the Apify MCP server with an Apify API token. Use call-actor with the published actor identifier and the JSON input shown above. Read the returned dataset with get-dataset-items; the run response itself contains status and storage IDs, not the result rows. Alternatively, use the Apify API to start a run and read its default dataset. Keep the actor input bounded with maxItems, and inspect source links and any error fields before using results in an answer.