SEC EDGAR Filings & XBRL Financials Scraper
Pricing
from $1.00 / 1,000 results
SEC EDGAR Filings & XBRL Financials Scraper
10-K, 10-Q, 8-K, DEF 14A and other SEC filings plus XBRL financials (revenue, net income, EPS, assets) from the official SEC EDGAR APIs. Tickers, CIKs or names; optional full-text search and document text. Rate-limited; failed companies never charged.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
signal clear
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
Get SEC filings (10-K, 10-Q, 8-K, DEF 14A, S-1, 13F-HR, Form 4 and any other form type) and a clean XBRL financials summary (revenue, net income, EPS, total assets, total liabilities, shares outstanding) for any US-listed company. Data comes straight from the SEC's official public EDGAR APIs. There is no HTML scraping, no API key and no login.
- Official source. It reads
data.sec.gov,efts.sec.gov(EDGAR full-text search) and the EDGAR archives. These are the same APIs the SEC publishes for developers. - Bounded and polite. All requests go through one limiter at 8 requests per second, below the SEC's limit of 10. Every request has a timeout, rate limiting gets a few short waits, and each company has a capped number of attempts.
- Failed companies are never charged. A company's rows are saved only after the whole company succeeds. If it fails (for example an unknown ticker, or the SEC stays unavailable), nothing from it reaches the dataset, and the failure is listed in the
FAILED_COMPANIESrecord. - Built for filing season. 10-K season runs January to March, and proxy season (DEF 14A) runs March to May. You can pull every new annual report or proxy statement for a watch list, or full-text search all filers for a phrase.
What you can do
| Goal | Input |
|---|---|
| Latest 10-K, 10-Q and 8-K filings for a watch list | companies: ["AAPL", "MSFT", "NVDA"] |
| This year's proxy statements | forms: ["DEF 14A"], filedSince: "2027-01-01" |
| Quarterly and annual financials for a set of tickers | includeCompanyFacts: true, maxFilingsPerCompany: 0 |
| Every 10-K that mentions a phrase | fullTextQuery: "\"tariff\"", forms: ["10-K"], no companies |
| A company's filings that mention a phrase | companies plus fullTextQuery |
| Filing text for NLP or an LLM | includeDocumentText: true |
Input
| Field | Default | Notes |
|---|---|---|
companies | Tickers (AAPL, BRK.B), CIKs (320193 or 0000320193) or company names (exact, or a unique prefix). A filer without a ticker, such as a fund or a private issuer, needs its CIK. An unknown ticker or CIK fails at once, with no retries. | |
forms | 10-K, 10-Q, 8-K | Any SEC form type. Leave it empty for every form. |
includeAmendments | true | Also return /A amendments of the chosen forms. |
filedSince / filedUntil | Filing date range, YYYY-MM-DD. | |
fullTextQuery | EDGAR full-text search (filings since 2001). Use quotes for an exact phrase. With companies, only their matching filings are returned. Without companies, the filers that match become the companies. Each filing row lists the documents that matched in fullTextHits. | |
maxFilingsPerCompany | 50 | Newest first. Set 0 to get only facts rows. |
includeCompanyFacts | false | Adds up to 4 facts rows per company, one for each of its latest fiscal periods (10-K or 10-Q). Each facts row is billed as a result. |
concepts | Extra XBRL concepts for the facts rows, such as OperatingIncomeLoss, StockholdersEquity or dei:EntityPublicFloat. Names without a prefix are us-gaap. | |
includeDocumentText | false | Downloads each filing's primary document and returns it as plain text. It costs one extra request per filing. |
maxDocumentTextChars | 200000 | Text is cut at this length. A full 10-K is often 300,000 to 600,000 characters. |
maxItems | 1000 | Total row cap (filings plus facts). |
userAgentContact | placeholder | Set this to your own name and email. See below. |
maxConcurrency | 2 | Companies processed in parallel. The limiter caps the total rate either way. |
maxAttempts | 3 (max 5) | Attempts per company on rate limiting, server errors or timeouts. Data already fetched is kept between attempts. |
requestTimeoutSecs | 30 | Timeout for each request. |
proxyConfiguration | Apify Proxy on | The SEC identifies tools by User-Agent, not by IP, so datacenter proxies work. Turn the proxy off to connect directly. |
Set your own userAgentContact
The SEC fair-access policy asks every automated tool to declare who is making the requests, with a contact email, in the User-Agent header. The Actor sends signalclear-edgar-actor/0.1 <your userAgentContact>. Put your name or company and an email there, for example Jane Doe jane@example.com. The default is a placeholder, and the run log warns you while it is still set. The value goes only to sec.gov.
Output
Each dataset row has a type: filing or facts. The dataset has two views, Filings and XBRL financials.
Filing row
{"type": "filing","cik": "0000320193","ticker": "AAPL","companyName": "Apple Inc.","accessionNumber": "0000320193-26-000020","form": "10-Q","filedAt": "2026-07-31","acceptedAt": "2026-07-31T10:01:02.000Z","reportDate": "2026-06-27","periodOfReport": "2026-06-27","primaryDocument": "aapl-20260627.htm","primaryDocDescription": "10-Q","primaryDocUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/aapl-20260627.htm","indexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/0000320193-26-000020-index.htm","items": [],"size": 5946811,"isXBRL": true,"isInlineXBRL": true,"fileNumber": "001-36743","input": "AAPL","scrapedAt": "2026-10-28T20:12:06.446342+00:00"}
itemsholds the 8-K item numbers, for example["2.02", "9.01"]for an earnings release.fullTextHitsappears only whenfullTextQueryis set.documentText,documentTextCharsanddocumentTextTruncatedappear whenincludeDocumentTextis on. If the primary document is missing or is not text (for example a PDF),documentTextisnullanddocumentTextErrorexplains why.
Facts row
{"type": "facts","cik": "0000320193","ticker": "AAPL","companyName": "Apple Inc.","fiscalYear": 2025,"fiscalPeriod": "FY","form": "10-K","accessionNumber": "0000320193-25-000079","filedAt": "2025-10-31","periodEnd": "2025-09-27","metrics": {"revenue": 416161000000,"netIncome": 112010000000,"epsBasic": 7.49,"epsDiluted": 7.46,"totalAssets": 359241000000,"totalLiabilities": 285508000000,"sharesOutstanding": 14776353000,"OperatingIncomeLoss": 133050000000},"units": { "revenue": "USD", "epsBasic": "USD/shares", "sharesOutstanding": "shares" }}
How the facts rows are built:
- Each row shows the values that one 10-K or 10-Q reported for its own period.
FYrows hold 12-month figures. Quarterly rows (Q1toQ3) hold the 3-month figures, not year-to-date. Assets and liabilities are as ofperiodEnd. revenueuses the first of these concepts that the filing reported:RevenueFromContractWithCustomerExcludingAssessedTax,Revenues,SalesRevenueNet, then the variants that include assessed tax or are net of interest expense.sharesOutstandingis the cover-page figure (dei:EntityCommonStockSharesOutstanding), which is usually dated a few weeks afterperiodEnd.- A metric the company did not report for a period is left out. Nothing is estimated.
- Values are as reported. Fiscal years follow the company's own calendar, so Microsoft's fiscal 2027 Q1 ends in September 2026.
Limits
- The SEC rate limit is 10 requests per second for each requester. The Actor stays at 8 per second, which is about 28,000 requests an hour. One company with filings and facts takes 2 to 3 requests. Document text adds one request per filing.
- XBRL facts exist only for filers that submit XBRL, which means operating companies filing 10-K and 10-Q since about 2009 to 2011. Funds, most foreign private issuers (20-F filers report in IFRS, not us-gaap) and shell or very old filers return no facts rows. The run log then notes "no XBRL financial data", and the company still succeeds.
- Full-text search covers filings since 2001. It returns at most 10,000 matching documents per query, and at most 1,000 per company.
- Name lookup uses the SEC ticker list, about 10,000 current listed filers. Delisted companies and companies without a ticker need their CIK.
- Primary documents are downloaded up to 20 MB, and their text is cut at
maxDocumentTextChars.
Pricing
The Actor is pay per result. Every saved row, whether a filing or a facts row, is one result. Failed companies, and the FAILED_COMPANIES record, cost nothing. Turning on includeDocumentText does not change the price per row, but the rows get much larger (about 50 KB at the default text cap, compared with under 1 KB without text).
Legal
The Actor returns US government public records that the SEC publishes for free public access. It collects no personal data beyond what the filings themselves publish. For example, Form 3, 4 and 5 insider filings name the reporting officers and directors, and the Actor returns those forms only when you add them to forms. You are responsible for following the SEC's fair-access policy, which is why you should set userAgentContact, and for how you use the data. This Actor is not affiliated with or endorsed by the U.S. Securities and Exchange Commission.
Failed companies
When the run ends, the default key-value store holds FAILED_COMPANIES, a list of {company, cik, error, attempts}. An attempts value of 0 means the input was never sent to the SEC, for example an unknown ticker. The run succeeds when at least one company succeeds, and it fails only when every company failed. In that case nothing was saved or charged.