> ## Documentation Index
> Fetch the complete documentation index at: https://docs.benzinga.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Consensus Ratings Stream

> Real-time aggregated consensus ratings and price targets.

## Overview

Subscribe to real-time consensus ratings that aggregate multiple analyst opinions into unified ratings and price targets. Track overall market sentiment and analyst consensus changes.

### Key Features

* **Aggregated Consensus**: Combined view of all analyst ratings for a security
* **Price Target Consensus**: Average, high, and low price targets
* **Rating Distribution**: Breakdown by Strong Buy, Buy, Hold, Sell, Strong Sell
* **Analyst Count**: Track total and unique analyst coverage
* **Flexible Aggregation**: View as counts or percentages

### Use Cases

* Build consensus rating dashboards and widgets
* Track overall analyst sentiment shifts
* Compare individual ratings to consensus
* Monitor price target ranges (high, low, average)
* Identify securities with improving/declining consensus

## Quick Start

Use the interactive WebSocket tester above to connect and test the stream in real-time.

### Connection URL

```
wss://api.benzinga.com/api/v1/consensus-ratings/stream?token=YOUR_TOKEN
```

### Query Parameters

| Parameter        | Required | Description                                                |
| ---------------- | -------- | ---------------------------------------------------------- |
| `token`          | Yes      | Your Benzinga WebSocket API token (bz.production\*\*\*)    |
| `tickers`        | No       | Comma-separated list of ticker symbols (e.g., `AAPL,MSFT`) |
| `isins`          | No       | Comma-separated list of ISINs to filter                    |
| `simplify`       | No       | Simplify ratings to Buy, Hold, Sell                        |
| `aggregate_type` | No       | Aggregation type: `number` or `percentage`                 |

## Message Example

```json theme={null}
{
  "id": "e9e75b31-604e-422c-a532-362725b2d59d",
  "api_version": "websocket/v1",
  "kind": "data/v2.1/calendar/ratings",
  "data": {
    "aggregate_ratings": {
      "strong_buy": 15,
      "buy": 25,
      "hold": 8,
      "sell": 2,
      "strong_sell": 0
    },
    "aggregate_type": "number",
    "consensus_rating": "BUY",
    "consensus_rating_val": 4.2,
    "consensus_price_target": 195.50,
    "high_price_target": 225.00,
    "low_price_target": 160.00,
    "total_analyst_count": 50,
    "unique_analyst_count": 48,
    "updated_at": "2024-10-04T19:21:06Z"
  }
}
```

### Consensus Ratings

| Rating        | Numeric Value | Description            |
| ------------- | ------------- | ---------------------- |
| `STRONG_BUY`  | 5.0           | Very bullish consensus |
| `BUY`         | 4.0 - 4.9     | Bullish consensus      |
| `HOLD`        | 3.0 - 3.9     | Neutral consensus      |
| `SELL`        | 2.0 - 2.9     | Bearish consensus      |
| `STRONG_SELL` | 1.0 - 1.9     | Very bearish consensus |

### Key Metrics

| Field                    | Description                          |
| ------------------------ | ------------------------------------ |
| `consensus_rating`       | Overall rating (BUY, HOLD, SELL)     |
| `consensus_rating_val`   | Numeric rating value (1.0-5.0)       |
| `consensus_price_target` | Average price target across analysts |
| `high_price_target`      | Highest price target                 |
| `low_price_target`       | Lowest price target                  |
| `total_analyst_count`    | Total number of ratings              |
| `unique_analyst_count`   | Number of unique analysts            |

## Interactive Commands

| Command  | Description                                  |
| -------- | -------------------------------------------- |
| `ping`   | Keep connection alive (responds with `pong`) |
| `replay` | Replay up to the last 100 cached messages    |

## Best Practices

* **Consensus Shifts**: Monitor changes in `consensus_rating_val` over time
* **Price Target Range**: Compare current price to high/low targets for valuation context
* **Coverage Depth**: Higher analyst counts indicate more reliable consensus
* **Distribution Analysis**: Examine `aggregate_ratings` breakdown for sentiment nuance
* **Percentage View**: Use `aggregate_type=percentage` for normalized comparisons


## AsyncAPI

````yaml asyncapi/consensus-ratings-stream.yml consensusRatings
id: consensusRatings
title: Consensus ratings
description: Send action commands; receive real-time consensus ratings updates
servers:
  - id: production
    protocol: wss
    host: api.benzinga.com/api/v1/consensus-ratings
    bindings: []
    variables: []
address: stream
parameters: []
bindings: []
operations:
  - &ref_2
    id: consensusRatings.publish
    title: Consensus ratings.publish
    description: Send commands to the server
    type: receive
    messages:
      - &ref_4
        id: publish
        contentType: text/plain
        payload:
          - type: string
            enum: &ref_0
              - ping
              - replay
            description: Send action commands (ping, replay)
            x-parser-schema-id: <anonymous-schema-1>
            name: publish
        headers: []
        jsonPayloadSchema:
          type: string
          enum: *ref_0
          description: Action to perform (ping for heartbeat, replay for message history)
          x-parser-schema-id: <anonymous-schema-1>
        title: Publish
        description: Send action commands (ping, replay)
        example: '{}'
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: publish
          - id: x-parser-message-name
            value: ActionRequest
    bindings: []
    extensions: &ref_1
      - id: x-parser-unique-object-id
        value: consensusRatings
  - &ref_3
    id: consensusRatings.subscribe
    title: Consensus ratings.subscribe
    description: Receive real-time consensus ratings data
    type: send
    messages:
      - &ref_5
        id: subscribe
        contentType: application/json
        payload:
          - name: subscribe
            description: Consensus ratings event
            type: object
            properties:
              - name: id
                type: string
                description: Unique UUID for the websocket response
                required: true
              - name: api_version
                type: string
                description: Websocket API version
                enumValues:
                  - websocket/v1
                required: true
              - name: kind
                type: string
                description: Websocket connection stream type
                enumValues:
                  - data/v2.1/calendar/ratings
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: aggregate_ratings
                    type: object
                    description: Contains all the ratings categorized by SELL, HOLD, BUY
                    required: false
                    properties:
                      - name: strong_buy
                        type: integer
                        description: Total strong_buy count/percentage
                        required: false
                      - name: buy
                        type: integer
                        description: Total buy count/percentage
                        required: false
                      - name: hold
                        type: integer
                        description: Total hold count/percentage
                        required: false
                      - name: sell
                        type: integer
                        description: Total sell count/percentage
                        required: false
                      - name: strong_sell
                        type: integer
                        description: Total strong_sell count/percentage
                        required: false
                  - name: aggregate_type
                    type: string
                    description: Type of aggregation, Number or Percentage
                    enumValues:
                      - number
                      - percentage
                    required: false
                  - name: consensus_price_target
                    type: number
                    description: Average price target
                    required: false
                  - name: consensus_rating
                    type: string
                    description: Scale value, SELL, HOLD, BUY
                    enumValues:
                      - SELL
                      - HOLD
                      - BUY
                    required: false
                  - name: consensus_rating_val
                    type: number
                    description: Value in float
                    required: false
                  - name: high_price_target
                    type: number
                    description: Highest price target in the specific timeline
                    required: false
                  - name: low_price_target
                    type: number
                    description: Lowest price target in the specific timeline
                    required: false
                  - name: total_analyst_count
                    type: integer
                    description: Total analyst ratings in the timeline
                    required: false
                  - name: unique_analyst_count
                    type: integer
                    description: Unique analyst count in the timeline
                    required: false
                  - name: updated_at
                    type: string
                    description: Last updated timestamp in UTC
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - id
            - api_version
            - kind
            - data
          properties:
            id:
              type: string
              format: uuid
              description: Unique UUID for the websocket response
              x-parser-schema-id: <anonymous-schema-3>
            api_version:
              type: string
              enum:
                - websocket/v1
              description: Websocket API version
              x-parser-schema-id: <anonymous-schema-4>
            kind:
              type: string
              enum:
                - data/v2.1/calendar/ratings
              description: Websocket connection stream type
              x-parser-schema-id: <anonymous-schema-5>
            data:
              type: object
              required:
                - aggregate_ratings
                - aggregate_type
                - consensus_rating
              properties:
                aggregate_ratings:
                  type: object
                  description: Contains all the ratings categorized by SELL, HOLD, BUY
                  properties:
                    strong_buy:
                      type: integer
                      description: Total strong_buy count/percentage
                      x-parser-schema-id: <anonymous-schema-8>
                    buy:
                      type: integer
                      description: Total buy count/percentage
                      x-parser-schema-id: <anonymous-schema-9>
                    hold:
                      type: integer
                      description: Total hold count/percentage
                      x-parser-schema-id: <anonymous-schema-10>
                    sell:
                      type: integer
                      description: Total sell count/percentage
                      x-parser-schema-id: <anonymous-schema-11>
                    strong_sell:
                      type: integer
                      description: Total strong_sell count/percentage
                      x-parser-schema-id: <anonymous-schema-12>
                  x-parser-schema-id: <anonymous-schema-7>
                aggregate_type:
                  type: string
                  enum:
                    - number
                    - percentage
                  description: Type of aggregation, Number or Percentage
                  x-parser-schema-id: <anonymous-schema-13>
                consensus_price_target:
                  type: number
                  description: Average price target
                  x-parser-schema-id: <anonymous-schema-14>
                consensus_rating:
                  type: string
                  enum:
                    - SELL
                    - HOLD
                    - BUY
                  description: Scale value, SELL, HOLD, BUY
                  x-parser-schema-id: <anonymous-schema-15>
                consensus_rating_val:
                  type: number
                  description: Value in float
                  x-parser-schema-id: <anonymous-schema-16>
                high_price_target:
                  type: number
                  description: Highest price target in the specific timeline
                  x-parser-schema-id: <anonymous-schema-17>
                low_price_target:
                  type: number
                  description: Lowest price target in the specific timeline
                  x-parser-schema-id: <anonymous-schema-18>
                total_analyst_count:
                  type: integer
                  description: Total analyst ratings in the timeline
                  x-parser-schema-id: <anonymous-schema-19>
                unique_analyst_count:
                  type: integer
                  description: Unique analyst count in the timeline
                  x-parser-schema-id: <anonymous-schema-20>
                updated_at:
                  type: string
                  format: date-time
                  description: Last updated timestamp in UTC
                  x-parser-schema-id: <anonymous-schema-21>
              x-parser-schema-id: <anonymous-schema-6>
          x-parser-schema-id: <anonymous-schema-2>
        title: Subscribe
        description: Consensus ratings event
        example: No examples found
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: subscribe
          - id: x-parser-message-name
            value: ConsensusRatingsMessage
    bindings: []
    extensions: *ref_1
sendOperations:
  - *ref_2
receiveOperations:
  - *ref_3
sendMessages:
  - *ref_4
receiveMessages:
  - *ref_5
extensions:
  - id: x-parser-unique-object-id
    value: consensusRatings
securitySchemes:
  - id: tokenAuth
    name: token
    type: httpApiKey
    description: Benzinga WebSocket API token (bz.production***)
    in: query
    extensions: []

````