SEC XBRL Fundamentals: Financial Statements API & Screener
Pricing
from $3.00 / 1,000 company periods
SEC XBRL Fundamentals: Financial Statements API & Screener
Official SEC XBRL financials for any US-listed company: revenue, margins, EPS, balance sheet, cash flow and FCF per year, quarter (derived Q4) or TTM, each value traced to its filing. Plus a screener across every filer. $3 per 1,000 periods.
Pricing
from $3.00 / 1,000 company periods
Rating
0.0
(0)
Developer
Connor Prussin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
SEC XBRL Fundamentals: financial statements API and screener for every US public company
SEC XBRL Fundamentals returns clean, normalized financial statements for any company that files with the SEC, read from the official XBRL data on data.sec.gov. You get one row per company and period (fiscal year, quarter or trailing twelve months) with about 35 metrics: revenue, gross profit, operating income, net income, EPS, cash, debt, assets, equity, operating cash flow, capex, free cash flow and more. Every value carries its source: the XBRL tag, the accession number, the form and the filing date.
A second screener mode lists one metric for every SEC filer in a calendar period, for example all companies with more than $1B of revenue in 2024, filtered by value and state.
- ✅ Official as-filed numbers from SEC XBRL filings (10-K, 10-Q). No login, proxy or API key needed.
- ✅ One clean schema for every company: synonym tags (
Revenues,RevenueFromContractWithCustomerExcludingAssessedTax,SalesRevenueNet…) are merged into onerevenuecolumn. - ✅ Annual, quarterly and TTM: Q4 is derived from the 10-K (FY minus nine months), cash-flow quarters from year-to-date statements, TTM from the last four quarters.
- ✅ Traceable:
sourcesnames the tag, filing and method behind each number. - ✅ Screener across every XBRL filer: one metric, one period, min/max and state filters.
- ✅ Look companies up by ticker, CIK or name.
Start in one minute
Click Start with the prefilled input:
{"mode": "company","companies": ["AAPL", "MSFT"],"periodTypes": ["annual"],"fromYear": 2022,"maxItems": 10}
You get: Apple's and Microsoft's fiscal years from 2022 on, newest first, with revenue, netIncome, epsDiluted, freeCashFlow and the rest.
Cost: up to $0.03: 10 periods × $0.003, plus the $0.00005 actor-start fee.
Use with an AI assistant
Connect the Apify MCP server to Claude, ChatGPT, Cursor or any MCP client (https://mcp.apify.com?tools=cprussin/sec-xbrl-fundamentals loads only this actor), then paste:
Use the Apify actor cprussin/sec-xbrl-fundamentals to get quarterly and TTM financials for NVDA and AMD since fiscal 2024, then compare their revenue growth, gross margin and free cash flow.
Recipes
Quarterly financials with derived Q4
{"companies": ["NVDA"],"periodTypes": ["quarterly"],"fromYear": 2024,"maxItems": 20}
TTM snapshot for a watchlist
Trailing-twelve-month revenue, earnings and cash flow at each quarter end; keep the newest per company.
{"companies": ["AAPL", "Coca-Cola Co", "789019"],"periodTypes": ["ttm"],"fromYear": 2026,"maxItems": 30}
Screener: every company with $1B+ revenue in 2024
{"mode": "screener","metric": "revenue","period": "CY2024","minValue": "1000000000","maxItems": 5000}
Screener: California companies by total assets
Balance-sheet metrics are point-in-time: CY2024 becomes CY2024Q4I (the 2024 year end).
{"mode": "screener","metric": "totalAssets","period": "CY2024","states": ["CA"],"maxItems": 100}
Screener: any us-gaap tag
{"mode": "screener","customTag": "Goodwill","customUnit": "USD","period": "CY2025Q2I","maxItems": 100}
Who uses SEC fundamentals?
- Investors and analysts pull standardized statements and TTM figures without Yahoo or paid terminals.
- Quants and data scientists build factor datasets and backtests from as-filed numbers with filing dates (no look-ahead).
- Fintech and AI agents feed company financials into apps, dashboards and LLM answers with a citation for every number.
- Researchers and journalists rank whole industries with the screener.
How does it work?
- Company mode: each ticker or name is resolved to its SEC CIK (via
company_tickers.json), then the company's XBRL facts are read fromdata.sec.gov/api/xbrl/companyfacts. - Periods come from the company's 10-K and 10-Q filings. For each metric, the first tag in its fallback list that has a value wins.
- Quarters missing from the filings are derived: Q4 = full year − nine months (or − Q1−Q3), Q2/Q3 cash flow = year-to-date − previous year-to-date. TTM sums the last four quarters; at a fiscal year end it equals the annual figure.
- Screener mode: the SEC's
framesAPI returns one value per filer for a tag and calendar period. All synonym tags of the metric are queried and merged (one row per company), then filtered and sorted.
The actor follows the SEC's fair-access policy: it sends a declared User-Agent, stays under 10 requests per second (3 in parallel) and backs off on HTTP 429/503.
Input
| Field | Mode | Description | Example |
|---|---|---|---|
mode | both | company or screener | "company" |
companies | company | Tickers, CIKs or registered names | ["AAPL", "320193"] |
periodTypes | company | annual, quarterly, ttm (default annual) | ["annual", "ttm"] |
fromYear / toYear | company | Fiscal-year range (empty = everything SEC has, from about 2009) | 2022 |
metric | screener | Metric key (see the output fields), default revenue | "netIncome" |
period | screener | CY2024, CY2024Q2 or CY2024Q4I (instant); default last year | "CY2024" |
minValue / maxValue | screener | Value range, as text | "1000000000" |
states | screener | US business-address states (excludes non-US filers when set) | ["CA", "NY"] |
sortBy | screener | valueDesc, valueAsc or name | "valueDesc" |
customTag, customUnit | screener | Any us-gaap tag instead of a metric; unit USD, USD/shares, shares, pure | "Goodwill" |
maxItems | both | Maximum records (each is billed) | 100 |
What data do you get?
Company mode, one item per company and period (shortened):
{"recordType": "company-period","cik": "320193","ticker": "AAPL","companyName": "Apple Inc.","periodType": "quarterly","fiscalYear": 2026,"fiscalPeriod": "Q4","periodStart": "2026-06-28","periodEnd": "2026-09-26","form": "10-K","accessionNumber": "0000320193-26-000026","filed": "2026-11-03","filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000026/0000320193-26-000026-index.htm","currency": "USD","revenue": 114477000000,"costOfRevenue": 59657000000,"grossProfit": 54820000000,"operatingIncome": 35631000000,"netIncome": 30711000000,"epsDiluted": 2.11,"cash": 36305000000,"totalAssets": 404548000000,"totalLiabilities": 292455000000,"stockholdersEquity": 112093000000,"totalDebt": 80111000000,"sharesOutstanding": 14532259000,"operatingCashFlow": 28101000000,"capitalExpenditures": 2242000000,"freeCashFlow": 25859000000,"sources": {"revenue": {"tag": "RevenueFromContractWithCustomerExcludingAssessedTax","accn": "0000320193-26-000026","form": "10-K","filed": "2026-11-03","method": "ytd-difference","accns": ["0000320193-26-000020", "0000320193-26-000026"]}}}
All metrics: revenue, costOfRevenue, grossProfit, researchAndDevelopment, sellingGeneralAdministrative, operatingExpenses, operatingIncome, interestExpense, pretaxIncome, incomeTaxExpense, netIncome, epsBasic, epsDiluted, weightedSharesBasic, weightedSharesDiluted, dividendsPerShare, cash, shortTermInvestments, accountsReceivable, inventory, currentAssets, totalAssets, currentLiabilities, totalLiabilities, stockholdersEquity, shortTermDebt, longTermDebt, totalDebt, sharesOutstanding, operatingCashFlow, capitalExpenditures, freeCashFlow, depreciationAmortization, stockBasedCompensation, dividendsPaid, shareRepurchases. A metric the company doesn't report is null.
Screener mode, one item per filer:
{"recordType": "frame-row","cik": "320193","ticker": "AAPL","companyName": "Apple Inc.","metric": "revenue","value": 391035000000,"unit": "USD","period": "CY2024","periodStart": "2023-10-01","periodEnd": "2024-09-28","state": "CA","country": "US","location": "US-CA","accessionNumber": "0000320193-26-000026","filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000026/0000320193-26-000026-index.htm","sources": {"value": {"tag": "RevenueFromContractWithCustomerExcludingAssessedTax","accn": "0000320193-26-000026"}}}
Field notes
sources.*.method:reported(one fact as filed),ytd-difference(year-to-date minus the previous year-to-date),fy-minus-quarters(FY − Q1 − Q2 − Q3),ttm-sum(four quarters),approximate(per-share Q4/TTM by subtraction or summing) orcomputed(e.g. free cash flow = operating cash flow − capex; total debt = short-term + long-term debt).- Amounts are as first reported; per-share values and share counts use the latest filing, so stock splits are reflected where a later filing restated them.
- Weighted-average share counts are never derived (null for derived Q4 and TTM).
fiscalYearis the company's own fiscal year label (e.g. Apple's FY2026 ends in September 2026).- Screener
periodis the SEC calendar frame: the SEC maps each company's fiscal period to the nearest calendar year or quarter. - Only
us-gaapUSD facts are used, so most foreign private issuers (IFRS) are not covered.
How much does it cost?
This actor is priced per result (pay-per-event):
| Event | Price |
|---|---|
| Company period (one company × one year, quarter or TTM) | $0.003 |
| Screener row (one filer's value) | $0.001 |
For example, ten years of annual data for 100 companies (1,000 periods) costs $3.00; a screen of 5,000 filers costs $5.00. Periods with almost no data are skipped and not billed. If you set a maximum cost per run, the actor stops cleanly at that limit.
Tips
- Combine
periodTypes: ["quarterly", "ttm"]for both views in one run. - Use
filedandaccessionNumberto build point-in-time datasets without look-ahead bias. - To identify your own organization to the SEC, set a
SEC_USER_AGENTenvironment variable (your company name and a contact email address). - Send results to Google Sheets, Slack, email or a webhook through Apify integrations.
FAQ
Is this data official? Yes. Every value comes from SEC XBRL data, and filingUrl links to the original filing.
How fresh is it? The SEC updates its XBRL APIs within minutes of a filing being accepted.
Why is a metric null? The company doesn't report a matching tag for that period (banks have no gross profit, many companies combine SG&A lines), or a quarter couldn't be derived.
Disclaimer: This actor is not affiliated with the U.S. Securities and Exchange Commission, and its output is not investment advice.
Related actors
- SEC Form D Funding: New SEC Form D filings: startup funding rounds and private placements.
- Federal Recompete Radar: US federal contracts nearing expiry, with incumbent and value, for recompete pipelines.