Returns analyst ratings consensus data
curl --request GET \
--url 'https://api.benzinga.com/api/v1/consensus-ratings?token=' \
--header 'accept: <accept>'import requests
url = "https://api.benzinga.com/api/v1/consensus-ratings?token="
headers = {"accept": "<accept>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {accept: '<accept>'}};
fetch('https://api.benzinga.com/api/v1/consensus-ratings?token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.benzinga.com/api/v1/consensus-ratings?token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"accept: <accept>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.benzinga.com/api/v1/consensus-ratings?token="
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accept", "<accept>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.benzinga.com/api/v1/consensus-ratings?token=")
.header("accept", "<accept>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.benzinga.com/api/v1/consensus-ratings?token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accept"] = '<accept>'
response = http.request(request)
puts response.read_body{
"aggregate_ratings": {
"strong_buy": 7,
"buy": 12,
"hold": 5,
"sell": 2
},
"aggregate_type": "number",
"low_price_target": 200,
"high_price_target": 350,
"consensus_price_target": 293.69192307692305,
"consensus_rating_val": 3.923076923076923,
"consensus_rating": "BUY",
"updated_at": "2026-01-05T19:42:36Z",
"total_analyst_count": 50,
"unique_analyst_count": 26
}
{
"ok": false,
"errors": [
{
"code": "auth_failed",
"id": "unauthorized",
"value": "Invalid or missing authentication token"
}
]
}
{
"ok": false,
"errors": [
{
"code": "no_data_found",
"id": "not_found",
"value": "No data found for the specified parameters"
}
]
}
{
"ok": false,
"errors": [
{
"code": "internal_server_error",
"id": "server_error",
"value": "An unexpected error occurred while processing your request"
}
]
}
Calendars
Consensus Ratings
Returns aggregated consensus analyst ratings data for a given ticker symbol. This endpoint provides consensus price targets, aggregate ratings distribution, and analyst counts based on recent analyst ratings.
GET
/
api
/
v1
/
consensus-ratings
Returns analyst ratings consensus data
curl --request GET \
--url 'https://api.benzinga.com/api/v1/consensus-ratings?token=' \
--header 'accept: <accept>'import requests
url = "https://api.benzinga.com/api/v1/consensus-ratings?token="
headers = {"accept": "<accept>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {accept: '<accept>'}};
fetch('https://api.benzinga.com/api/v1/consensus-ratings?token=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.benzinga.com/api/v1/consensus-ratings?token=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"accept: <accept>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.benzinga.com/api/v1/consensus-ratings?token="
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accept", "<accept>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.benzinga.com/api/v1/consensus-ratings?token=")
.header("accept", "<accept>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.benzinga.com/api/v1/consensus-ratings?token=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accept"] = '<accept>'
response = http.request(request)
puts response.read_body{
"aggregate_ratings": {
"strong_buy": 7,
"buy": 12,
"hold": 5,
"sell": 2
},
"aggregate_type": "number",
"low_price_target": 200,
"high_price_target": 350,
"consensus_price_target": 293.69192307692305,
"consensus_rating_val": 3.923076923076923,
"consensus_rating": "BUY",
"updated_at": "2026-01-05T19:42:36Z",
"total_analyst_count": 50,
"unique_analyst_count": 26
}
{
"ok": false,
"errors": [
{
"code": "auth_failed",
"id": "unauthorized",
"value": "Invalid or missing authentication token"
}
]
}
{
"ok": false,
"errors": [
{
"code": "no_data_found",
"id": "not_found",
"value": "No data found for the specified parameters"
}
]
}
{
"ok": false,
"errors": [
{
"code": "internal_server_error",
"id": "server_error",
"value": "An unexpected error occurred while processing your request"
}
]
}
{
"aggregate_ratings": {
"strong_buy": 7,
"buy": 12,
"hold": 5,
"sell": 2
},
"aggregate_type": "number",
"low_price_target": 200,
"high_price_target": 350,
"consensus_price_target": 293.69192307692305,
"consensus_rating_val": 3.923076923076923,
"consensus_rating": "BUY",
"updated_at": "2026-01-05T19:42:36Z",
"total_analyst_count": 50,
"unique_analyst_count": 26
}
{
"ok": false,
"errors": [
{
"code": "auth_failed",
"id": "unauthorized",
"value": "Invalid or missing authentication token"
}
]
}
{
"ok": false,
"errors": [
{
"code": "no_data_found",
"id": "not_found",
"value": "No data found for the specified parameters"
}
]
}
{
"ok": false,
"errors": [
{
"code": "internal_server_error",
"id": "server_error",
"value": "An unexpected error occurred while processing your request"
}
]
}
Authorizations
Headers
Specifies return format. Query parameters work the same for both formats
Available options:
application/json Query Parameters
Number of results returned. Limit 1000
Date to query from point in time
Date to query to point in time
One ticker symbol to query the aggregate for. Maximum 1 ticker
To simplify the aggregate ratings to only BUY, SELL, HOLD, default will return all ratings (STRONG_BUY, BUY, HOLD, SELL, STRONG_SELL)
To aggregate the ratings by either number or percentage
Available options:
number, percentage Response
success
Show child attributes
Show child attributes
Example:
"90D"
Example:
195.5
Example:
"Buy"
Example:
4.2
Example:
225
Example:
150
Example:
19
Example:
15
Example:
"2024-01-09T16:00:00Z"
Was this page helpful?