Run it yourself

Every response carries the filing it came from.

Revenue, expenses, and net income

Pick an endpoint and hit Run to see live SEC data.

No Lookahead-Bias

  • Point-in-time accurate
  • Per value amendment/restatement trails
  • Numbers link to SEC filings and timestamps
  • Data updated daily
per-fact amendments/restatements
// what the value is now, and what it was before
{
  "period": "2024-12-31",
  "facts": {
    "revenue": 3224058000,
    // ...
  },
  "sources": {
    "0001751008-26-000010": {
      "type": "10-K",
      "dateFiled": "2026-02-19",
      "facts": {
        "revenue": {
          "before": 4709248000
        },
        // ...
      }
    }
  }
}

No Survivorship-Bias

  • All US equities and ETFs, including delisted
  • Also Point-in-Time accurate
  • Resolvable via CIK/CUSIP/FIGI/Ticker
income-statement?symbol=BBBY
// BBBY today: Beyond, Inc. (ex Overstock.com)
{
  "fiscalYear": 2025,
  "period": "2025-12-31",
  "facts": {
    "revenue": 1044616000,
    // ...
  },
  "sources": {
    "0001130713-26-000018": { "type": "10-K" }
  }
}
income-statement?cik=886158
// the Bed Bath & Beyond that died in 2023
{
  "fiscalYear": 2023,
  "period": "2023-02-28",
  "facts": {
    "revenue": 5344685000,
    "netIncome": -3498801000,
    // ...
  },
  "sources": {
    "0000886158-23-000059": { "type": "10-K" }
  }
}

Only sourced from SEC EDGAR

  • Raw XBRL filings
  • Audit trail for every number
  • Includes company specific KPIs and footnotes
  • 10-Ks, 10-Qs, 20-Fs, 8-Ks and more
  • Updated Daily
Featured on
StockFit API - Structured SEC Data API for Developers | Product HuntStockFit API - Featured on Startup FameStockFit API - Featured on PeerPushListed on BacklinkLog

Everything your algorithm needs

Comprehensive coverage of all US equities, dead or alive, sourced from official SEC filings.

Point-in-Time Financials

Income statement, balance sheet, and cash flow normalized from raw XBRL. Every value carries its source filing, filing date, and prior-value trail, so any as-of date is reconstructable.

Survivorship-Free Universe

Resolve by ticker, CIK, CUSIP, or FIGI, including companies that were delisted, renamed, or had their ticker reassigned. Batch lookups and former-name search keep entities stable across time.

Factor Inputs & Scores

Sector-aware ratios, per-share metrics, and growth rates ready to feed a cross-sectional model. Composite quality scores include Altman-Z and Piotroski-F.

Ownership & Insider Flow

Positioning and crowding from the source: 13F institutional holders, Schedule 13D/13G beneficial owners, and Form 3/4/5 insider transactions, each with history.

Earnings Events

Predicted and historical earnings dates for event studies and PEAD work, with consensus EPS and analyst count for the upcoming report, plus full EPS and dividend history and earnings-quality scoring.

Filing Text & Sections

Full 10-K, 10-Q, and 8-K documents with extracted sections and categorized 8-K items, ready as an NLP corpus. Predicted filing calendar for timing the next release.

Point-in-time fundamentals API for backtesting and factor research: income statement, balance sheet, and cash flow with a per-value audit trail. Survivorship-bias-free universe resolvable by CIK, CUSIP, and FIGI. 13F, Schedule 13D/13G, and Form 3/4/5 ownership flows. All normalized from SEC XBRL.

Updated Daily

Fresh data from SEC EDGAR every trading day

Official Source

Parsed directly from XBRL filings — fully traceable

Developer First

Simple REST API with clear JSON responses

Frequently asked questions

Every endpoint mentioned links to its full Swagger documentation.

Is the data point-in-time?+
Yes. Every period carries a sources block keyed by SEC accession number, each with the dateFiled of the filing the value came from. When a later filing restates a value, the superseded number is preserved under before, so a figure can be reconstructed as it stood on any date. Available on GET /api/financials/income-statement, /api/financials/balance-sheet, and /api/financials/cash-flow-statement.
How do I build a backtest with no lookahead bias?+
Key on dateFiled, not the period end date. A fiscal-2024 figure first filed in February 2026 was not knowable in January 2025, and the sources block tells you exactly when each value became public. Where a value was later restated, the before entry gives you the number the market actually saw. For the untouched XBRL facts behind the normalized line items, use GET /api/financials/as-reported.
Is Q4 available, given that 10-K filers never file a standalone Q4?+
Yes, and it is labeled rather than silently inferred. Q4 is reconstructed as the fiscal year minus the first three quarters, and the sources block carries an entry such as Q4-Recon-FY-9M with "type": "Q4-Recon" next to the 10-K accession, so a derived quarter is never mistaken for a filed one. Request it via period=quarter on GET /api/financials/income-statement.
Do you cover delisted companies?+
Yes. A company keeps its full filing history after its ticker stops trading, and it stays queryable by CIK. GET /api/company/delisted returns a paginated list of fully delisted companies with delistedAt and the tickers they last traded under.
What happens when a ticker is reassigned to a different company?+
Querying by symbol returns whoever holds the ticker today; querying by cik pins the entity. BBBY is the clean example: today it resolves to CIK 1130713, which is Beyond, Inc., formerly Overstock.com. The Bed Bath & Beyond that wound down in 2023 is CIK 886158, and its last annual report is still there. A universe keyed on tickers splices the two together. Resolve identifiers with GET /api/lookup/cik, /api/lookup/cusip, /api/lookup/figi, or /api/lookup/batch in bulk.
How far back does the history go?+
Coverage follows each filer's own XBRL history on EDGAR. Large filers generally start around fiscal 2009, when XBRL tagging was phased in, and individual series reach further back where an early filing carried comparative periods: Apple's annual EPS series, for example, starts at fiscal 2007. Depth is capped at 80 periods per call and may be clamped further by plan.
Are EPS and share counts split-adjusted?+
By default yes. splitAdjust normalizes EPS and weighted-average share counts onto the current split basis so a series stays continuous, and each adjusted period carries its splitFactor. Periods a later filing already restated are left alone, so there is no double adjustment, and absolute dollar amounts are never touched. Pass splitAdjust=false for the values exactly as originally filed. Either way the audit trail stays as-filed. Split events themselves are at GET /api/company/stock-splits.
Normalized line items or as-reported facts?+
Both, from the same underlying data. The curated endpoints map raw XBRL onto standardized line items so companies are comparable cross-sectionally, and GET /api/financials/as-reported returns the XBRL facts exactly as the company tagged them, including company-specific concepts a normalized schema has to drop.
How are non-calendar fiscal years handled?+
Each period carries its real end date in period alongside fiscalYear and fiscalPeriod, so 52/53-week and non-December calendars are not snapped to month ends. Apple's fiscal 2026 Q3, for instance, ends 2026-06-26. Aligning on period keeps cross-sectional comparisons honest for filers whose quarters do not line up.
Can I get every value in a single currency?+
Pass currency with any ISO 4217 code. Flow items convert at the period-average rate and balance-sheet items at the period-end spot rate, and a per-period fx block records the exact rates applied so each conversion is reproducible. Values already in the target currency pass through untouched, anything that cannot be priced for a period is left in its native currency and flagged under fx.unconverted, and currency=original disables conversion entirely.
What ownership and positioning data is available?+
13F institutional holders at GET /api/ownership/institutional-holders with an institution's full portfolio at /api/ownership/portfolio, Schedule 13D/13G beneficial owners at /api/ownership/beneficial-owners, and Form 3/4/5 insider transactions at /api/insider-transactions. Each has a history endpoint, so positions can be tracked quarter over quarter rather than read as a snapshot.
Are there analyst estimates or consensus figures?+
Yes, for the upcoming report. GET /api/earnings/upcoming, /api/earnings/calendar for up to 50 symbols in one call, and /api/earnings/date for a single ticker all return epsEstimate together with numEstimates, the analyst count behind it, alongside the predicted earnings date and expected report time. Both fields are omitted when no estimate is available, and coverage thins on small caps. Note that this is forward-looking only: there is no historical consensus archive, so a surprise series has to be accumulated by capturing the estimate before each print and pairing it with reported EPS from /api/earnings/eps-history.
Is there a free tier?+
Yes, and it needs no credit card. It covers company details, financial statements, and filings. Paid plans raise the daily quota and unlock insider transactions, institutional ownership, executive compensation, and the ETF endpoints.

Start building today

Get your free API key in seconds. No credit card required.