drillr.ai
API keys →

Analyst · US only

Rating events

GET/api/v2/analyst-ratingsUS only
Coverage
US
Billing
20 cr / thousand calls

Returns individual analyst rating and price target changes: which firm upgraded, downgraded or maintained a rating on which day, and what the price target moved from and to, one row per event, ordered by date desc, published_at desc. Sourced from news reports; every row carries the firm name firm and a link to the source article source_url, and events missing either are not exposed. Firm level only, with no individual analyst names.

  • The rating action and the price target action are two separate columns, each of which can be null: when the news mentions only a price target, rating_action is null; when it mentions only a rating, price_target_action is null.
  • rating_current is the firm's own wording (for example overweight); for cross-firm comparison, use the five-tier rating_current_normalized. That value is meaningful only for rows where rating_current is non-null; filter on rating_current first to drop rows where the news mentions only a price target, then aggregate.

Query parameters

ParameterTypeRequiredDescription
tickerstringrequiredA single ticker.
fromdateoptionalStart of the rating event date (date) window, inclusive of that day; to query a single day, set from = to.
todateoptionalEnd of the rating event date window, inclusive of that day.
limitintoptionalMaximum 500. Default: 50.
pageintoptionalStarts at 1. Default: 1.

Sort order: date desc, published_at desc. Paged with limit and page (pages start at 1); fewer rows than limit means the last page.

Response fields

FieldTypeDescription
tickerstringCanonical ticker; this endpoint is US-only, so there is no market suffix (e.g. AAPL)
datedateRating event date (the date stated in the news article)
firmstringFirm name, non-null
rating_actionstringenumRating action: initiate / upgrade / downgrade / maintain / reiterate; null when the news reports only a price target change
price_target_actionstringenumPrice target action: raise / lower / maintain / announce (first time a target is given); null when the news does not mention a price target
rating_currentstringThe firm's own rating wording (overweight / outperform …)
rating_priorstringThe firm's own rating wording before the change; null for initiate
rating_current_normalizedstring | nullenumThe firm's original wording normalized to five tiers: strong_buy / buy / hold / sell / strong_sell; uses the same basis as consensus_rating in /analyst-consensus. Null when rating_current is null.
price_target_currentnumberCurrent price target
price_target_priornumberPrice target before the change
source_namestringSource channel identifier (yahoo_analyst / marketbeat / tickerreport …), not a media brand name
source_urlstringDeep link to the source article
published_atdatetimeNews publication time (UTC)

No key yet? Create one under API Keys — it is shown once, so store it where your shell can read it. Connecting an agent over MCP instead? That signs in through the browser and needs no key at all.

Authentication, conventions, rate limits and error shapes are the same for every endpoint — they live on REST API.