Get started
Research

Analyst ratings API,
consensus and price targets.

Wall Street consensus for U.S.-listed stocks as dated snapshots: a 1-to-5 consensus score, the count of strong buy through strong sell recommendations and the consensus price target. Consensus EPS, revenue and EBITDA estimates come from /v1/estimates.

Consensus score

consensus_score runs from 1 (strong sell) to 5 (strong buy), kept as the source publishes it with no rounding to a category.

Recommendation counts

rating_counts gives the number of strong_buy, buy, hold, sell and strong_sell recommendations.

Consensus price target

target_price is a money object with amount and currency_code.

Dated snapshots

observed_on records the UTC date each snapshot was taken, so a series shows how the consensus moved.

Consensus records and individual actions

The analyst ratings schema holds two kinds of records, told apart by rating_type. A consensus record is an aggregate snapshot: the score, the recommendation counts and the consensus target price. An individual record is one analyst's action, with the firm, the analyst, the rating and target and their previous values.

Consensus records leave the individual fields empty, because they do not apply: firm, analyst, previous_rating and previous_target_price are null. rating repeats the numeric score as a decimal string, and normalized_rating is unrated, because a score such as 4.0417 is not mapped to a buy or hold label. Bucket it yourself if you need categories. When the source gives no publication time, published_at is the time OHLC fetched the snapshot.

In the data checked on October 3, 2026, published records were consensus snapshots. Don't build on firm-level upgrades and downgrades being present.

FieldConsensus recordIndividual record
consensus_score1 to 5, as publishedNull
rating_countsStrong buy through strong sellNot applicable
target_priceConsensus targetThe analyst's target
firm, analystNullResearch firm and analyst
normalized_ratingunratedstrong_buy through strong_sell
observed_onDate the snapshot was takenDate observed

Consensus estimates alongside ratings

/v1/estimates carries the numbers behind the opinions: consensus EPS, revenue and EBITDA per fiscal quarter or year, with mean, median, high, low, analyst_count, and up and down revision counts. Together with ratings it gives a complete sell-side view for a stock page or a model. effective_date returns the latest snapshot on or before a date, and median or the revision fields are null when the source does not report them. Earnings dates and EPS surprises are in earnings.

Use cases

  • Consensus panels on a stock page: score, distribution of recommendations and target.
  • Price target upside: target_price against the latest end-of-day close.
  • Features for models: score level, share of buy recommendations, and changes between snapshots as the series grows.
  • Coverage checks: the sum of rating_counts approximates how many analysts follow a company.
  • Screens across the market: omit symbols to read the latest consensus for every covered stock, then rank by score or by target upside.

Point in time and history

Each snapshot is dated by observed_on, and as_of limits results to snapshots OHLC had recorded by the end of that UTC day. OHLC began recording consensus snapshots in late September 2026, so history builds forward from there. On October 3, 2026, Apple's first snapshot was dated September 28, 2026. Plan for a short history now and a longer one over time.

Plans and credits

Analyst ratings and estimates are included on Pro, Commercial and Scale. Each costs 50 credits per symbol, or 500 credits for a page across the whole market. Showing ratings to your own users needs Commercial's display rights. See pricing.

Analyst consensus for Apple

RequestcURL
curl 'https://api.ohlc.io/v1/analyst-ratings?symbols=XNAS:AAPL&order=desc&limit=1' \
  -H "Authorization: Bearer $OHLC_API_KEY"
Response · Illustrative sampleJSON
{
  "data": [
    {
      "id": "record_9bd36026b0e7de900542",
      "company_id": "01M35H2KDW9VT69S5ZCEGMCPAX",
      "instrument_id": "01M35H2KE2ZJHXFY5C3E7FPC66",
      "published_at": "2026-09-28T02:46:49Z",
      "firm": null,
      "analyst": null,
      "rating": "4.0417",
      "previous_rating": null,
      "normalized_rating": "unrated",
      "target_price": { "amount": "328.2221", "currency_code": "USD" },
      "previous_target_price": null,
      "rating_type": "consensus",
      "observed_on": "2026-09-28",
      "consensus_score": "4.0417",
      "rating_counts": { "strong_buy": 23, "buy": 7, "hold": 16, "sell": 1, "strong_sell": 1 }
    }
  ],
  "meta": {
    "timezone": "UTC",
    "as_of": "2026-10-03T15:04:28Z",
    "next_cursor": null,
    "coverage": { "status": "partial", "reason": "Coverage is partial for the entitled query scope." }
  }
}

Prices delayed 15 minutes · Illustrative sample data

Questions, answered.

What is an analyst consensus rating?

It summarizes the recommendations of every analyst covering a stock into one score. OHLC's score runs from 1 (strong sell) to 5 (strong buy) and comes with the count of each recommendation.

How is the consensus score calculated?

It is the source's published score. OHLC passes it through unrounded and alongside the recommendation counts, so you can compute your own measure.

Does the API include individual analyst upgrades and downgrades?

The schema supports them as individual records. As of October 3, 2026, the published data consisted of consensus snapshots.

How do I calculate price target upside?

Divide target_price.amount by the latest daily close from /v1/eod and subtract one.

Which plan includes analyst ratings?

Pro ($149/month), Commercial and Scale.

A little JSON.
A lot of possibility.

Explore the API