---
title: "Get Street Consensus estimates for a company"
method: GET
path: "/v1/company/estimates/street"
tags: ["Estimates"]
---

# Get Street Consensus estimates for a company

`GET /v1/company/estimates/street`

## Request

- Base URL: `https://api.fiscal.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.fiscal.ai/v1/company/estimates/street`
- Auth: API key in query parameter `apiKey`

Returns the Wall Street analyst consensus for a company's EPS, revenue, EBITDA, EBIT, pretax income, EBITDA margin and cash flow per share, per fiscal quarter and year, from Zacks Investment Research. These are not our estimates (see `/v1/company/estimates`). Periods follow the company's own calendar, so `periodId` joins the financial statements. Reported periods are left out unless you ask for `history`. Keys without Street Consensus on their plan get the free-plan companies. Personal (non-commercial) API plans get none of it. Wherever the data is shown, credit it: "Data provided by Zacks Investment Research, Inc., www.zacksdata.com", linked to https://www.zacksdata.com.

## Query parameters

- `apiKey` string: API Key (alternatively send via X-Api-Key header)
- `ticker` string: Company ticker, use with mic or alone for US tickers
- `micCode` string: Company MIC, use with ticker
- `exchange` string: Company exchange code, use with ticker
- `companyKey` string: Company key (alternative to ticker/micCode/exchange)
- `cusip` string: Requires CUSIP/ISIN license. An alternative to ticker/micCode/exchange. Company CUSIP
- `isin` string: Requires CUSIP/ISIN license. An alternative to ticker/micCode/exchange. Company ISIN
- `figi` string: FIGI (Financial Instrument Global Identifier). An alternative to ticker/micCode/exchange.
- `cik` string: Company CIK (SEC Central Index Key). An alternative to ticker/micCode/exchange.
- `fscl` string: Fiscal.ai stable company identifier (the companyFiscalIdentifier field). An alternative to ticker/micCode/exchange.
- `currency` string: ISO 4217 code to convert the figures into (e.g. EUR, GBP). Case-insensitive. Defaults to USD, the currency Zacks reports in.
- `history` boolean: Add `history`: every day the consensus changed in the last five calendar years (the current calendar year for keys without Street Consensus on their plan).

## Response `200`

Analyst consensus estimates for the company

- object
  - `companyKey` string, required
  - `companyFiscalIdentifier` string, nullable, required: The company's stable Fiscal.ai identifier; null for a company not yet minted one.
  - `currency` string, nullable, required: USD: Zacks reports US listings in dollars, even for companies that file in another currency. With `currency`, that currency.
  - `originalCurrency` string: Only with `currency`: the currency Zacks reports the figures in, before conversion.
  - `source` 'analyst_consensus', required: Always `analyst_consensus`, never our own estimate.
  - `vendor` 'Zacks', required: Who aggregated the analyst estimates.
  - `epsBasis` 'adjusted' | 'ffo', nullable, required: What `analyst_eps` measures: `adjusted` (diluted EPS before non-recurring items; compare with `eps_adjusted`) or `ffo` (FFO per share, for an equity REIT).
  - `updatedAt` string, nullable, required
  - `data` object[], required
    - `periodId` string, nullable, required: Joins the financial statements and `/v1/company/estimates`. Null when no company period matches; the period is still served.
    - `periodType` 'Annual' | 'Quarterly', required
    - `reportDate` string, nullable, required: The company's period end; Zacks's month-end date when no company period matches.
    - `periodDuration` string, nullable, required: `3 Months` or `12 Months`. Null when `reportDate` is.
    - `calendarYear` number, nullable, required: The calendar year of the period end. Null when `reportDate` is.
    - `calendarQuarter` number, nullable, required: The calendar quarter of the period end, as on the financial statements. Null when `reportDate` is.
    - `fiscalYear` number, nullable, required: The company's fiscal year. Null when `periodId` is.
    - `fiscalQuarter` number, nullable, required: Null on an annual period, and when `periodId` is.
    - `metricsValues` object, required
      - `analyst_eps` object: One consensus figure in the response `currency`: EPS per share, revenue in units (not millions).
        - `mean` number, nullable, required
        - `median` number, nullable, required
        - `high` number, nullable, required: The highest individual analyst estimate.
        - `low` number, nullable, required: The lowest individual analyst estimate.
        - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
        - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
        - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
      - `analyst_revenue` object: One consensus figure in the response `currency`: EPS per share, revenue in units (not millions).
        - `mean` number, nullable, required
        - `median` number, nullable, required
        - `high` number, nullable, required: The highest individual analyst estimate.
        - `low` number, nullable, required: The lowest individual analyst estimate.
        - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
        - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
        - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
      - `analyst_ebitda` object: EBITDA in units, as the analysts define it. `median` is always null.
        - `mean` number, nullable, required
        - `median` number, nullable, required
        - `high` number, nullable, required: The highest individual analyst estimate.
        - `low` number, nullable, required: The lowest individual analyst estimate.
        - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
        - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
        - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
      - `analyst_ebit` object: EBIT in units, as the analysts define it. `median` is always null.
        - `mean` number, nullable, required
        - `median` number, nullable, required
        - `high` number, nullable, required: The highest individual analyst estimate.
        - `low` number, nullable, required: The lowest individual analyst estimate.
        - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
        - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
        - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
      - `analyst_pretax_income` object: Pretax income in units. `median` is always null.
        - `mean` number, nullable, required
        - `median` number, nullable, required
        - `high` number, nullable, required: The highest individual analyst estimate.
        - `low` number, nullable, required: The lowest individual analyst estimate.
        - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
        - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
        - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
      - `analyst_ebitda_margin` object: EBITDA margin as a fraction (0.35 is 35%), the analysts' own margin estimates: it need not equal `analyst_ebitda` over `analyst_revenue`, which other analysts may estimate. `median` is always null.
        - `mean` number, nullable, required
        - `median` number, nullable, required
        - `high` number, nullable, required: The highest individual analyst estimate.
        - `low` number, nullable, required: The lowest individual analyst estimate.
        - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
        - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
        - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
      - `analyst_cash_flow_per_share` object: Cash flow per share, as the analysts define it; Zacks does not say which cash flow. `median` is always null.
        - `mean` number, nullable, required
        - `median` number, nullable, required
        - `high` number, nullable, required: The highest individual analyst estimate.
        - `low` number, nullable, required: The lowest individual analyst estimate.
        - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
        - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
        - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
    - `appliedExchangeRate` number: Only with `currency`: the rate the figures were multiplied by, from `originalCurrency` to `currency`. The spot rate on `reportDate`, as the financial statements use for the same period; the newest stored rate for a date after it.
  - `history` object[], nullable, required: With `history=true`, every day the consensus changed in the last five calendar years (the current calendar year for keys without Street Consensus on their plan), oldest first, reported periods included. Null otherwise.
    - `metricId` 'analyst_eps' | 'analyst_revenue' | 'analyst_ebitda' | 'analyst_ebit' | 'analyst_pretax_income' | 'analyst_ebitda_margin' | 'analyst_cash_flow_per_share', required
    - `periodId` string, nullable, required: Joins the financial statements and `/v1/company/estimates`. Null when no company period matches; the period is still served.
    - `periodType` 'Annual' | 'Quarterly', required
    - `reportDate` string, nullable, required: The company's period end; Zacks's month-end date when no company period matches.
    - `periodDuration` string, nullable, required: `3 Months` or `12 Months`. Null when `reportDate` is.
    - `calendarYear` number, nullable, required: The calendar year of the period end. Null when `reportDate` is.
    - `calendarQuarter` number, nullable, required: The calendar quarter of the period end, as on the financial statements. Null when `reportDate` is.
    - `fiscalYear` number, nullable, required: The company's fiscal year. Null when `periodId` is.
    - `fiscalQuarter` number, nullable, required: Null on an annual period, and when `periodId` is.
    - `mean` number, nullable, required
    - `median` number, nullable, required
    - `high` number, nullable, required: The highest individual analyst estimate.
    - `low` number, nullable, required: The lowest individual analyst estimate.
    - `stdDev` number, nullable, required: Standard deviation of the individual estimates.
    - `numEstimates` number, nullable, required: How many analyst estimates the mean is over.
    - `asOf` string, nullable, required: The day the consensus last changed: the date of the first Zacks daily file that showed these figures after one that showed others. Null when the figures have not changed since the first daily file we hold for the period (for EPS and revenue our history starts on 2021-01-01), so the day they last changed is not known.
    - `appliedExchangeRate` number: Only with `currency`: the rate the figures were multiplied by, from `originalCurrency` to `currency`. The spot rate on `reportDate`, as the financial statements use for the same period; the newest stored rate for a date after it.

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-10-19** `b71c24b008ba`: 4 info
  - added the new optional `query` request parameter `currency`
  - added the optional property `data/items/appliedExchangeRate` to the response with the `200` status
  - added the optional property `history/items/appliedExchangeRate` to the response with the `200` status
  - added the optional property `originalCurrency` to the response with the `200` status
- **2026-10-15** `d582fea8f51f`: 1 breaking
  - removed the required property `attribution` from the response with the `200` status
- **2026-10-14** `dd94f0babde5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fiscal/apis/fiscal-api/changes/v1/company/estimates/street/get.md)

---

[API](https://skmtc.dev/fiscal/apis/fiscal-api.md) - [All operations](https://skmtc.dev/fiscal/apis/fiscal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fiscal/apis/fiscal-api/revisions/85026fdfc8b8?raw)
