MASSARIdocsRequest access

Forward estimates

GET/v1/earnings/{symbol}/forward-estimatesWhole, less the withheld

Forward estimates for one issuer.

Parameters

  • symbolpathrequired

    Ticker symbol, case-insensitive.

Response contract

Everything except the fields named as withheld, which are ours and not yours.

Withheld

model_version

These are ours: ingest bookkeeping and internal build stamps. They are removed at every level of the response, including inside arrays.

Response fields

The top level keys a live response actually returned, read off the API rather than written down here.

symbolas_ofhistory_yearshistoryprojectionsourcesguidance_applied

How this was verified

Called against 3 different subjects on the live API. Every field it returned, at every level, was compared with the contract above. Last checked August 18, 2026.

Request

curl "https://api.massari.ai/v1/earnings/AAPL/forward-estimates" \
  -H "Authorization: Bearer $MASSARI_TOKEN"

Example response

{
  "symbol": "AAPL",
  "as_of": "2026-08-17T18:13:09.123Z",
  "history_years": [
    2007,
    2008
  ],
  "history": [
    {
      "year": 2023,
      "basis": "actual",
      "period_end": null,
      "revenue": 383285000000,
      "revenue_growth": null,
      "operating_margin": 0.2982141226502472,
      "operating_income": 114301000000,
      "net_income": 96995000000,
      "shares_out": 15550061000,
      "eps": 6.237596109751595,
      "ocf": 110543000000,
      "capex": -10959000000,
      "fcf": 99584000000
    },
    {
      "year": 2024,
      "basis": "actual",
      "period_end": null,
      "revenue": 391035000000,
      "revenue_growth": 0.02021994077514111,
      "operating_margin": 0.31510222870075566,
      "operating_income": 123216000000,
      "net_income": 93736000000,
      "shares_out": 15116786000,
      "eps": 6.200788977233652,
      "ocf": 118254000000,
      "capex": -9447000000,
      "fcf": 108807000000
    }
  ],
  "projection": {
    "regime": "stable",
    "cagr": 0.05786815328894934,
    "confidence": {
      "tier": "high",
      "score": 5,
      "metrics": {
        "clean_years": 19,
        "last_revenue": 466823000000,
        "revenue_growth_volatility": 0.13244371378249195
      },
      "reasons": []
    },
    "base": {
      "last_year": 2025,
      "last_revenue": 466823000000,
      "base_growth": 0.0989794725311366,
      "base_operating_margin": 0.3150153120752614,
      "base_net_margin": 0.25632031648158793,
      "base_ocf_margin": 0.3017085051562847,
      "capex_intensity": 0.024753495500927408,
      "capex_inflecting": false,
      "share_growth": -0.03091052068363376
    },
    "assumptions": {
      "terminal_growth": 0.03,
      "fade": 0.75,
      "leverage": 0.12,
      "horizon": 3
    },
    "fy": [
      {
        "fy_label": "FY1",
        "year": 2026,
        "revenue": 499576780699.3756,
        "revenue_growth": 0.07016316826586433,
        "operating_margin": 0.3198348922671651,
        "operating_income": 159782085834.16196,
        "net_income": 129737103785.3324,
        "shares_out": 14143066297.249329,
        "eps": 9.173194911103886,
        "ocf": 151930438893.89456,
        "capex": -12366271593.409792,
        "fcf": 139564167300.48477,
        "drivers": [
          "revenue:in_progress_seasonal_blend(w=0.25)",
          "capex:model"
        ]
      },
      {
        "fy_label": "FY2",
        "year": 2027,
        "revenue": 533948139457.4204,
        "revenue_growth": 0.06880095329876434,
        "operating_margin": 0.31967142647111313,
        "operating_income": 170687963401.95044,
        "net_income": 138602042623.6172,
        "shares_out": 13705896753.938198,
        "eps": 10.112584759095885,
        "ocf": 162339756796.06073,
        "capex": -13217082867.787815,
        "fcf": 149122673928.27292,
        "drivers": [
          "revenue_growth:model",
          "capex:model"
        ]
      }
    ],
    "warnings": []
  },
  "sources": {
    "statement_history": "sec_filings",
    "series_decision": "first_party_primary",
    "provenance": {
      "statement_history_source": "sec_filings",
      "base_period": {
        "year": 2025,
        "basis": "LTM_sec"
      },
      "fields": {
        "revenue": "sec",
        "operating_income": "sec",
        "net_income": "sec",
        "cfo": "sec",
        "capex": "sec",
        "shares": "sec"
      },
      "sec_period_end": "2026-06-27",
      "sec_accessions": [
        "0000320193-26-000020",
        "0000320193-25-000079"
      ]
    },
    "gap_filled_from_vendor": [],
    "derived_first_party": [],
    "cross_source_check": {
      "base_year": 2025,
      "revenue_rel_diff": 0,
      "divergent": false
    },
    "base_period_filing": {
      "accession": "0000320193-25-000079",
      "filing_type": "10-K",
      "filing_date": "2025-10-31"
    },
    "sec_overlay": {
      "period_end": "2026-06-27",
      "accessions": [
        "0000320193-26-000020",
        "0000320193-25-000079"
      ]
    }
  },
  "guidance_applied": null
}

A real response from the live API, captured August 18, 2026. This one is CUT: long arrays, wide objects and long strings were trimmed to keep it readable, so treat it as a sample of the shape rather than all of it. Either way it is valid JSON.

Book a meeting