Skip to main content
GET
/
api
/
v2.1
/
calendar
/
ratings
Returns analyst ratings data
curl --request GET \
  --url 'https://api.benzinga.com/api/v2.1/calendar/ratings?token=' \
  --header 'accept: <accept>'
import requests

url = "https://api.benzinga.com/api/v2.1/calendar/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/v2.1/calendar/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/v2.1/calendar/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/v2.1/calendar/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/v2.1/calendar/ratings?token=")
.header("accept", "<accept>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.benzinga.com/api/v2.1/calendar/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
{
  "ratings": [
    {
      "action_company": "Maintains",
      "action_pt": "Lowers",
      "adjusted_pt_current": "260.00",
      "adjusted_pt_prior": "300.00",
      "analyst": "Jefferies",
      "analyst_id": "57fe0358ac6af40001334e62",
      "analyst_name": "Brent Thill",
      "currency": "USD",
      "cusip": "001176213",
      "date": "2026-01-05",
      "exchange": "NASDAQ",
      "id": "695c16678f047b0001fee512",
      "importance": 3,
      "isin": "IL0011762130",
      "name": "Monday.Com",
      "notes": "",
      "pt_current": "260.0000",
      "pt_pct_change": "-13.33",
      "pt_prior": "300.00",
      "rating_current": "Buy",
      "rating_prior": "Buy",
      "ticker": "MNDY",
      "time": "14:52:07",
      "updated": 1767642765,
      "url": "https://www.benzinga.com/quote/MNDY/analyst-ratings",
      "url_calendar": "https://www.benzinga.com/quote/MNDY/analyst-ratings",
      "url_news": "https://www.benzinga.com/stock-articles/MNDY/analyst-ratings"
    }
  ]
}
{
  "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"
    }
  ]
}
{
  "ratings": [
    {
      "action_company": "Maintains",
      "action_pt": "Lowers",
      "adjusted_pt_current": "260.00",
      "adjusted_pt_prior": "300.00",
      "analyst": "Jefferies",
      "analyst_id": "57fe0358ac6af40001334e62",
      "analyst_name": "Brent Thill",
      "currency": "USD",
      "cusip": "001176213",
      "date": "2026-01-05",
      "exchange": "NASDAQ",
      "id": "695c16678f047b0001fee512",
      "importance": 3,
      "isin": "IL0011762130",
      "name": "Monday.Com",
      "notes": "",
      "pt_current": "260.0000",
      "pt_pct_change": "-13.33",
      "pt_prior": "300.00",
      "rating_current": "Buy",
      "rating_prior": "Buy",
      "ticker": "MNDY",
      "time": "14:52:07",
      "updated": 1767642765,
      "url": "https://www.benzinga.com/quote/MNDY/analyst-ratings",
      "url_calendar": "https://www.benzinga.com/quote/MNDY/analyst-ratings",
      "url_news": "https://www.benzinga.com/stock-articles/MNDY/analyst-ratings"
    }
  ]
}
{
  "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

token
string
query
required

Headers

accept
enum<string>
default:application/json
required

Specifies return format. Query parameters work the same for both formats

Available options:
application/json

Query Parameters

fields
string<csv>

Comma-separated list of fields to return. Available fields: id, date, time, ticker, exchange, name, currency, action_pt, action_company, rating_current, pt_current, rating_prior, pt_prior, pt_pct_change, url, url_calendar, url_news, analyst, analyst_id, analyst_name, ratings_accuracy, importance, notes, updated. Use * for all fields including ratings_accuracy

page
integer
default:0

Page offset. For optimization, performance and technical reasons, page offsets are limited from 0 - 100000. Limit the query results by other parameters such as date

pagesize
integer

Number of results returned. Limit 1000

parameters[date]
string<YYYY-MM-DD>

Date to query for calendar data. Shorthand for date_from and date_to if they are the same. Defaults for latest

parameters[date_from]
string<YYYY-MM-DD>

Date to query from point in time

parameters[date_to]
string<YYYY-MM-DD>

Date to query to point in time

parameters[importance]
enum<integer>

The importance level to filter by. Uses Greater Than or Equal To the importance indicated

Available options:
0,
1,
2,
3,
4,
5
parameters[tickers]
string<csv>

One or more ticker symbols separated by a comma. Maximum 50 tickers

parameters[updated]
integer

Records last Updated Unix timestamp (UTC). This will force the sort order to be Greater Than or Equal to the timestamp indicated

parameters[analyst_id]
string<csv>

One or more analyst ids (analyst_id) separated by a comma

parameters[firm_id]
string<csv>

One or more firm ids (firm_id) separated by a comma

parameters[action]
enum<string>

Filter by a specific action_company (action for rating). Note that all of these terms are precisely defined

Available options:
Downgrades,
Maintains,
Reinstates,
Reiterates,
Upgrades,
Assumes,
Initiates Coverage On,
Terminates Coverage On,
Removes,
Suspends,
Firm Dissolved
analyst
string<csv>

A comma separated list of analyst (person) ID's to bring back. Omitting will bring back all available analysts

firm
string<csv>

A comma separated list of analyst firm ID's to bring back. Omitting will bring back all available firms

simplify
boolean
default:false

Simplify the ratings to standardized categories

Response

success

API response containing an array of analyst ratings

ratings
object[]