SEC EDGAR Filings & XBRL Financials Scraper avatar

SEC EDGAR Filings & XBRL Financials Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
SEC EDGAR Filings & XBRL Financials Scraper

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

signal clear

Maintained by Community

Actor 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_COMPANIES record.
  • 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

GoalInput
Latest 10-K, 10-Q and 8-K filings for a watch listcompanies: ["AAPL", "MSFT", "NVDA"]
This year's proxy statementsforms: ["DEF 14A"], filedSince: "2027-01-01"
Quarterly and annual financials for a set of tickersincludeCompanyFacts: true, maxFilingsPerCompany: 0
Every 10-K that mentions a phrasefullTextQuery: "\"tariff\"", forms: ["10-K"], no companies
A company's filings that mention a phrasecompanies plus fullTextQuery
Filing text for NLP or an LLMincludeDocumentText: true

Input

FieldDefaultNotes
companiesTickers (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.
forms10-K, 10-Q, 8-KAny SEC form type. Leave it empty for every form.
includeAmendmentstrueAlso return /A amendments of the chosen forms.
filedSince / filedUntilFiling date range, YYYY-MM-DD.
fullTextQueryEDGAR 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.
maxFilingsPerCompany50Newest first. Set 0 to get only facts rows.
includeCompanyFactsfalseAdds 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.
conceptsExtra XBRL concepts for the facts rows, such as OperatingIncomeLoss, StockholdersEquity or dei:EntityPublicFloat. Names without a prefix are us-gaap.
includeDocumentTextfalseDownloads each filing's primary document and returns it as plain text. It costs one extra request per filing.
maxDocumentTextChars200000Text is cut at this length. A full 10-K is often 300,000 to 600,000 characters.
maxItems1000Total row cap (filings plus facts).
userAgentContactplaceholderSet this to your own name and email. See below.
maxConcurrency2Companies processed in parallel. The limiter caps the total rate either way.
maxAttempts3 (max 5)Attempts per company on rate limiting, server errors or timeouts. Data already fetched is kept between attempts.
requestTimeoutSecs30Timeout for each request.
proxyConfigurationApify Proxy onThe 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"
}
  • items holds the 8-K item numbers, for example ["2.02", "9.01"] for an earnings release.
  • fullTextHits appears only when fullTextQuery is set.
  • documentText, documentTextChars and documentTextTruncated appear when includeDocumentText is on. If the primary document is missing or is not text (for example a PDF), documentText is null and documentTextError explains 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. FY rows hold 12-month figures. Quarterly rows (Q1 to Q3) hold the 3-month figures, not year-to-date. Assets and liabilities are as of periodEnd.
  • revenue uses 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.
  • sharesOutstanding is the cover-page figure (dei:EntityCommonStockSharesOutstanding), which is usually dated a few weeks after periodEnd.
  • 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).

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.