Company Financials API: SEC EDGAR XBRL Fundamentals avatar

Company Financials API: SEC EDGAR XBRL Fundamentals

Pricing

Pay per event

Go to Apify Store
Company Financials API: SEC EDGAR XBRL Fundamentals

Company Financials API: SEC EDGAR XBRL Fundamentals

Financials of US listed companies and foreign issuers from the official SEC EDGAR XBRL API: revenue, net income, EPS, cash flow, balance sheet and margins. One row per fiscal year or quarter, Q4 computed. Also lists 10-K, 10-Q and 8-K filings. No API key.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Baptiste Bouton

Baptiste Bouton

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

One row per company and fiscal period, taken from the SEC's own EDGAR XBRL API: revenue, gross profit, operating income, net income, EPS, operating cash flow, capital expenditure, free cash flow, assets, liabilities, equity, cash, debt and margins. Annual, quarterly or both. Fourth quarters and quarterly cash flows are computed for you. A second mode lists a company's SEC filings (10-K, 10-Q, 8-K, 20-F and more) with links to the documents.

Look companies up by ticker (AAPL, BRK.B) or by SEC CIK number. The data comes from data.sec.gov, not from page scraping. No API key, no SEC account.

What it adds to the raw API

The SEC companyfacts API returns every XBRL fact a company ever filed, concept by concept, with a duplicate for each later report. The Actor turns that into a table:

  • One row per fiscal year or quarter, with 18 metrics side by side and margins computed.
  • Fourth quarters. Companies report Q4 only inside the annual 10-K. The Actor computes it as the year minus the first nine months and lists those metrics in derivedMetrics.
  • Quarterly cash flows. 10-Q reports give cash flows year to date. The Actor subtracts the previous quarter to get the quarter alone.
  • Concept changes. Revenue was SalesRevenueNet before 2018 and RevenueFromContractWithCustomerExcludingAssessedTax after, for example. The Actor picks the right concept period by period, and sourceConcepts shows which one.
  • US GAAP and IFRS. Foreign issuers filing 20-F or 40-F reports (Novo Nordisk, Canadian Natural Resources) use the same columns, in their reporting currency.
  • Restatements. When a later report restates a figure, you get the latest value.
  • Fiscal years as the company reports them to the SEC. Apple's fiscal 2025 ends in September 2025, Walmart's fiscal 2026 in January 2026, Target's fiscal 2025 in January 2026.

Use cases

  • Screening and comparisons: the last 5 years of revenue, margins and free cash flow for a list of tickers, in one table.
  • Financial models and spreadsheets: quarterly figures for a company, Q4 included, ready for Excel or Google Sheets.
  • Earnings tracking: schedule a weekly run on your watchlist and get each new quarter as it is filed.
  • Filing monitoring: new 10-K, 10-Q and 8-K filings of a list of companies, with the 8-K item numbers (2.02 results, 5.07 shareholder votes).
  • AI agents and RAG: fundamentals and document links as structured data, through the Apify MCP server.

Input

Financials, by fiscal year:

{
"companies": ["AAPL", "MSFT", "NVO"],
"mode": "financials",
"period": "annual",
"fiscalYearFrom": 2022
}

Quarters (Q4 included) and fiscal years together: "period": "both".

Filings of the last year:

{
"companies": ["AAPL", "NVDA"],
"mode": "filings",
"formTypes": ["10-K", "10-Q", "8-K"],
"filedFrom": "2025-10-01"
}
FieldDescription
companiesTickers or CIK numbers, one per line. At most 500 per run.
modefinancials (default) or filings.
periodannual (default), quarterly or both.
fiscalYearFromOldest fiscal year. Default: 5 years ago.
formTypesFilings mode: forms to return. Empty list for all company forms.
includeAmendmentsFilings mode: also return 10-K/A, 8-K/A and so on. Default true.
filedFrom, filedToFilings mode: filing date range (YYYY-MM-DD). Default: the last 365 days.
maxResultsMaximum rows for the whole run. Default 1000.
userAgentContactOptional: your organization and contact, sent to the SEC instead of the Actor's page.

Output

One financials row, from a real run on 23 October 2026 (Apple, fiscal year 2025):

{
"cik": "0000320193",
"companyName": "Apple Inc.",
"ticker": "AAPL",
"exchange": "Nasdaq",
"sic": "3571",
"sicDescription": "Electronic Computers",
"period": "annual",
"fiscalYear": 2025,
"fiscalPeriod": "FY",
"periodStart": "2024-09-29",
"periodEnd": "2025-09-27",
"form": "10-K",
"filed": "2025-10-31",
"accessionNumber": "0000320193-25-000079",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm",
"currency": "USD",
"revenue": 416161000000,
"costOfRevenue": 220960000000,
"grossProfit": 195201000000,
"researchAndDevelopment": 34550000000,
"operatingIncome": 133050000000,
"netIncome": 112010000000,
"epsBasic": 7.49,
"epsDiluted": 7.46,
"dilutedShares": 15004697000,
"operatingCashFlow": 111482000000,
"capitalExpenditure": 12715000000,
"totalAssets": 359241000000,
"currentAssets": 147957000000,
"totalLiabilities": 285508000000,
"currentLiabilities": 165631000000,
"stockholdersEquity": 73733000000,
"cashAndEquivalents": 35934000000,
"longTermDebt": 78328000000,
"freeCashFlow": 98767000000,
"grossMargin": 0.4691,
"operatingMargin": 0.3197,
"netMargin": 0.2692,
"derivedMetrics": [],
"sourceConcepts": {
"revenue": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
"netIncome": "us-gaap:NetIncomeLoss",
"operatingCashFlow": "us-gaap:NetCashProvidedByUsedInOperatingActivities",
"totalAssets": "us-gaap:Assets"
}
}

sourceConcepts lists one concept per metric; four are shown here. The fourth quarter of the same year, from the same run, has "fiscalPeriod": "Q4", "periodStart": "2025-06-29", "revenue": 102466000000, "netIncome": 27466000000, "epsDiluted": null (earnings per share do not add up across quarters) and derivedMetrics listing the computed fields.

One filings row, from a real run on the same day:

{
"cik": "0000320193",
"companyName": "Apple Inc.",
"ticker": "AAPL",
"form": "8-K/A",
"filingDate": "2026-09-01",
"reportDate": "2026-04-17",
"acceptedAt": "2026-09-02T00:30:35.000Z",
"accessionNumber": "0001140361-26-035325",
"items": ["5.02"],
"description": "8-K/A",
"isXBRL": true,
"isInlineXBRL": true,
"sizeBytes": 241262,
"documentUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126035325/ef20081427_8ka.htm",
"filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/320193/000114036126035325/0001140361-26-035325-index.htm"
}

A value is null when the company does not report it: banks have no gross profit, and some companies (Berkshire Hathaway, Visa) report earnings per share by share class only.

Speed and cost

A run on 40 large US companies, annual and quarterly from fiscal 2021, returned 1,100 rows in 49 seconds with the default 512 MB of memory. The Actor sends at most 5 requests per second to the SEC, half of the SEC's limit of 10.

Pricing

You pay per row returned, no subscription: one row is one company and fiscal period, or one filing. Companies that are not found cost nothing.

EventPricePer 1,000
financial-period (one company, one fiscal year or quarter)$0.003$3
filing (one SEC filing)$0.001$1

Example: 5 years of annual figures for 100 companies is 500 rows, about $1.50. Set maxResults to cap the bill of a run.

Each run is billed for every row it returns, even if an earlier run returned the same row: runs do not remember each other. On a schedule, keep the window short. In filings mode, set filedFrom to the date of the previous run. In financials mode, set fiscalYearFrom to the current fiscal year, so a weekly run returns at most 5 rows per company (the year to date and its quarters).

Integrations

  • Google Sheets, Excel, Airtable: run the Actor on a schedule and export the dataset as CSV or XLSX, or use the Apify integration for Google Sheets.
  • Make, Zapier, n8n: use the Apify module or node "Run Actor", then "Get dataset items", and send each new quarter to Slack, email or a database.
  • Apify MCP server: expose the Actor to Claude or another AI agent and ask "revenue and free cash flow of NVDA for the last 8 quarters".
  • API: call the Actor from Python or JavaScript with the Apify client and read the dataset as JSON.

Searches this Actor answers

Income statement, balance sheet and cash flow by ticker, annual and quarterly. Free cash flow and margins for a list of stocks. 10-K and 10-Q data as JSON or CSV. SEC XBRL companyfacts as a flat table. 8-K and 10-K filing alerts. 20-F fundamentals for foreign issuers.

Tips

  • For a 10-year history, set fiscalYearFrom to 10 years ago. XBRL data starts in 2009 for the largest companies and in 2011 for the others.
  • Share classes: BRK.B and BRK-B both work.
  • If a ticker is not found, give the CIK number from EDGAR company search.
  • After a reorganization, a ticker can move to a new holding company with a new CIK and a short history (XOM now points to ExxonMobil Holdings Corp). Give the former CIK as well to get the earlier years.
  • To follow new quarters, schedule a weekly run with period: "quarterly" and fiscalYearFrom set to the current fiscal year: each run returns the quarters of that year, the newest included, and bills them again (see Pricing).
  • To follow new filings, schedule a run in filings mode and move filedFrom to the date of the previous run, so each filing is billed once.

FAQ

Do I need an SEC account or API key? No. The SEC's EDGAR APIs are public.

Which companies are covered? Every company that files financial statements with the SEC in XBRL: US listed companies of all sizes, and foreign issuers filing 20-F or 40-F reports. Funds and trusts that do not file XBRL financial statements are reported in the log and not billed. Quarterly rows exist only for companies that file 10-Q reports: foreign issuers filing 20-F or 40-F reports publish annual figures only in XBRL, so they get fiscal-year rows.

Why does a quarter show values in derivedMetrics? Those values are computed, not reported for that quarter: Q4 is the year minus nine months, and quarterly cash flows are the year-to-date figure minus the previous quarter's. Per-share values and share counts are never computed this way and stay null when not reported.

Are the figures as originally reported or restated? Restated: each value is the latest one the company filed for that period. form, filed and accessionNumber point to the report that first gave the period. Quarters use the same XBRL concept as their fiscal year, so that they add up to it. After a spin-off or the sale of a business, a company restates its past years but not always its past quarters: the four quarters of such a year can then differ from the restated total.

Are per-share values adjusted for stock splits? No. Earnings per share are the values filed for each period, so years before a split are not comparable with years after it.

Does it return insider trades or people's names? No. The output describes companies only. Forms 3, 4 and 5 (insider trades), Form 144, Schedules 13D and 13G (large shareholders) and proxy material from dissident shareholders (DFAN14A, PREN14A, DEFN14A) are excluded, and CIK numbers of individual filers are refused. No officer, director or signatory names, and no addresses.

What does the Actor send to the SEC? The SEC asks automated tools to identify themselves. The Actor sends ApifyFactory sec-edgar-actor (contact via apify.com/boubap). Set userAgentContact if you prefer to be identified directly.

Is this investment advice? No. The data is what companies filed with the SEC. Check the filing (filingUrl) before relying on a figure.

Other Actors from the same account, also pay per result: