---
title: "Get Instrument Analyst Consensus"
method: GET
path: "/v1/instruments/{instrument_id}/analyst-reporting"
tags: ["Instrument Data"]
---

# Get Instrument Analyst Consensus

`GET /v1/instruments/{instrument_id}/analyst-reporting`

## Request

- Base URL: `https://api.clearstreet.com`
- URL: `https://api.clearstreet.com/v1/instruments/{instrument_id}/analyst-reporting`
- Auth: HTTP bearer

Retrieves analyst ratings and price targets for an instrument.

## Path parameters

- `instrument_id` string, required: Instrument identifier: either an instrument UUID or a symbol (symbol for equities, OSI for options). Non-UUID inputs are resolved server-side.

## Query parameters

- `from` string, date
- `to` string, date

## Response `200`

Analyst consensus data

- object
  - `error` ApiError: A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required: The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required: A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required: Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `page_number` integer, nullable: Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `request_id` string, required: A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable: Total number of items available (not just in this page).
    - `total_pages` integer, nullable: Total number of pages available.
  - `data` InstrumentAnalystConsensus, required: Aggregated analyst consensus metrics
    - `date` string, date, required: The date the consensus snapshot was generated
    - `distribution` AnalystDistribution: Analyst recommendation distribution
      - `buy` integer, required: Number of buy recommendations
      - `hold` integer, required: Number of hold recommendations
      - `sell` integer, required: Number of sell recommendations
      - `strong_buy` integer, required: Number of strong buy recommendations
      - `strong_sell` integer, required: Number of strong sell recommendations
    - `price_target` PriceTarget: Analyst price target statistics
      - `average` string, required: Average analyst price target
      - `currency` string, required: ISO 4217 currency code of the price targets
      - `high` string, required: Highest analyst price target
      - `low` string, required: Lowest analyst price target
    - `rating` 'STRONG_BUY' | 'BUY' | 'HOLD' | 'SELL' | 'STRONG_SELL': Analyst rating category

## Other responses

- `404`: Instrument not found
- `500`: Internal server error

## Changes

- **2026-10-16** `1bd9eddeffc8`: 1 breaking, 1 info
  - for the `path` request parameter `instrument_id`, the minLength was increased from `0` to `1`
  - for the `path` request parameter `instrument_id`, the type was generalized from no type to `string`

[Operation history](https://skmtc.dev/clear-street/apis/clear-street-trading-api/changes/v1/instruments/:instrument_id/analyst-reporting/get.md)

---

[API](https://skmtc.dev/clear-street/apis/clear-street-trading-api.md) - [All operations](https://skmtc.dev/clear-street/apis/clear-street-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/clear-street/apis/clear-street-trading-api/revisions/52e77ea7d731?raw)
