๐ŸŽฏ Analyst Price Targets โ€” Consensus, Upgrades, Downgrades avatar

๐ŸŽฏ Analyst Price Targets โ€” Consensus, Upgrades, Downgrades

Pricing

from $100.00 / 1,000 analyst target records

Go to Apify Store
๐ŸŽฏ Analyst Price Targets โ€” Consensus, Upgrades, Downgrades

๐ŸŽฏ Analyst Price Targets โ€” Consensus, Upgrades, Downgrades

Track sell-side analyst price targets, consensus ratings, recent upgrades/downgrades across US-listed stocks. Bloomberg-style ratings distribution with upside/downside vs current price. Pay-per-result for portfolio managers, retail smart-money followers, IR teams tracking street sentiment.

Pricing

from $100.00 / 1,000 analyst target records

Rating

0.0

(0)

Developer

NexGenData

NexGenData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

Analyst Price Targets โ€” Consensus, Upgrades & Downgrades

Track sell-side analyst price targets, consensus ratings, recent upgrades and downgrades across every US-listed stock. One pay-per-result API call returns the Bloomberg-style consensus snapshot you need to run a portfolio: mean / high / low / median price target, the analyst-count behind it, the buy / hold / sell distribution, and the firm-by-firm trail of recent rating actions from the past 90 days.

๐Ÿ“Š Sample Output

๐ŸŽฏ Analyst Price Targets โ€” Consensus, Upgrades, Downgrades sample output โ€” ๐ŸŽฏ Analyst Price Targets โ€” Consensus, Upgrades, Downgrades, premium API, JSON output, NexGenData premium dataset for analysts,

Built for portfolio managers running long/short books, retail "smart money" followers who track street consensus, and IR teams that need to know what the sell-side is actually saying about their tape before earnings, conferences, or roadshows.

What you get per record

Every record is one US-listed ticker, normalized into a clean, ready-to-merge schema. Hit it with one symbol or fan it across the S&P 500.

FieldDescription
symbolTicker (uppercase).
company_nameYahoo Finance long name.
sector / industryGICS-style sector + finer industry classification.
current_priceLatest regular-session price (USD).
consensus_target_priceMean of all contributing sell-side 12-month price targets.
target_medianMedian of contributing targets โ€” outlier-resistant alternative to mean.
target_high / target_lowHigh and low of the contributing target range. Useful for sizing dispersion.
n_analystsNumber of analysts contributing to the consensus mean.
upside_pct(consensus_target - current_price) / current_price * 100. Positive = upside.
recommendation_meanYahoo's 1.0โ€“5.0 sell-side mean (1.0 = Strong Buy, 5.0 = Sell).
consensus_ratingBucketed rating: Strong Buy / Buy / Hold / Sell / Strong Sell.
rating_strong_buy_countCount of Strong Buy ratings (current month).
rating_buy_countStrong Buy + Buy ratings combined.
rating_hold_countCount of Hold ratings.
rating_sell_countSell + Strong Sell ratings combined.
rating_strong_sell_countCount of Strong Sell ratings.
total_rated_analystsSum of all five rating buckets.
recent_actionsUp to 20 firm-level actions from the last 90 days, formatted as plain-English lines ("Morgan Stanley upgraded to Overweight from Equal-Weight, target raised to $250.00 (was $230.00) on 2026-05-08").
n_recent_actions_90dCount of analyst actions in the trailing 90 days.
last_action_dateMost recent rating or target change date (ISO yyyy-mm-dd).
market_cap_usdLatest market capitalization (USD).
yahoo_urlConvenience deep-link to Yahoo's analyst page.
stockanalysis_urlConvenience deep-link to Stockanalysis.com's forecast page.
data_sourceProvenance: yahoo_finance_quote_summary.
fetched_at_utcISO timestamp of the fetch.

Why this actor exists

Sell-side price targets and consensus ratings are the most-quoted, least-accessible number in equities. Bloomberg, FactSet, and Refinitiv ship clean consensus feeds โ€” at $24K, $18K, and $24K per terminal per year respectively. TipRanks and Zacks ship retail-grade views with anti-bot defenses and watered-down API access. For everyone in between โ€” a fund manager spinning up a quant overlay, a retail aggregator running street-consensus screens, an IR team running a quarterly tape-check โ€” there is no clean, pay-per-call option.

This actor fixes that:

  • Pay only for what you use. $0.10 per symbol record. A 500-name S&P 500 sweep costs $50.01 and returns in under a minute. Compare that to a Bloomberg seat.
  • Bloomberg-style schema. Mean / high / low / median target, ratings distribution, recent firm actions โ€” the exact fields a PM wants on their morning sheet.
  • No anti-bot wrestling. We handle Yahoo Finance's crumb/cookie dance for you, refresh tokens transparently on 401s, and ship clean JSON.
  • Pinned builds. ?build=0.0.1 keeps your prod integrations stable; we never silently swap parsing logic underneath you.

Comparison vs incumbents

CapabilityBloombergFactSetRefinitivTipRanksZacksAnalyst Price Targets
Annual minimum cost$24,000+$18,000+$24,000+$1,000+$250+$0 (pay-per-call)
Per-symbol marginal costn/an/an/an/an/a$0.10
Consensus mean targetYesYesYesYesYesYes
Target high / low / medianYesYesYesPartialPartialYes
Ratings distribution (SB/B/H/S/SS)YesYesYesYesPartialYes
Firm-by-firm recent actionsYesYesYesYesPartialYes (last 90d)
1.0โ€“5.0 numeric consensusYesYesYesNoPartialYes
Programmatic API accessYes (enterprise)Yes (enterprise)Yes (enterprise)LimitedLimitedYes (HTTP)
No-contract, no-seat licensingNoNoNoNoNoYes
Cross-language clientsYesYesYesLimitedNoYes (Apify SDKs)
Build-pinned stabilityYesYesYesNoNoYes (?build=)
Time to first recordWeeks (procurement)WeeksWeeksDaysDaysMinutes

How to call it

Apify Console (browser UI)

Open the actor, paste symbols into the Stock symbols field, hit Start. Dataset appears in a table view in seconds.

Apify API (curl)

curl -X POST \
"https://api.apify.com/v2/acts/nexgendata~analyst-price-targets/runs?token=YOUR_TOKEN&build=0.0.1" \
-H "Content-Type: application/json" \
-d '{
"symbols": ["AAPL", "NVDA", "TSLA", "MSFT", "AMZN"],
"include_recent_actions": true,
"min_n_analysts": 5
}'

The ?build=0.0.1 pin is recommended for production integrations. Without it you ride latest, which can change without notice.

Apify Python SDK

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("nexgendata/analyst-price-targets").call(
run_input={
"symbols": ["AAPL", "NVDA", "TSLA", "MSFT", "AMZN"],
"min_upside_pct": 20, # only names with 20%+ upside
"consensus_rating": "Buy", # only Buy-rated names
"include_recent_actions": True,
},
build="0.0.1",
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["symbol"], item["consensus_target_price"], item["upside_pct"])

Apify JS SDK

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('nexgendata/analyst-price-targets').call({
symbols: ['AAPL', 'NVDA', 'TSLA', 'MSFT', 'AMZN'],
min_upside_pct: 20,
include_recent_actions: true,
}, { build: '0.0.1' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Input parameters

ParameterTypeDefaultDescription
symbolsarray["AAPL","NVDA","TSLA","MSFT","AMZN"]US-listed tickers to fetch. Case-insensitive. Required.
limitint0 (all)Max records to return after filters. 0 returns everything.
min_upside_pctnumber-1000 (off)Minimum upside vs current price. 20 for high-conviction longs.
consensus_ratingenum"all"Filter to one rating bucket: Strong Buy, Buy, Hold, Sell, Strong Sell.
include_recent_actionsbooltruePopulate recent_actions with last-90-day firm actions.
min_n_analystsint0 (off)Drop names with fewer than N contributing analysts. Use 15 for widely-covered names only.

Common workflows

Morning sheet โ€” high-upside Buy-rated names

{
"symbols": ["AAPL","MSFT","NVDA","GOOGL","META","AMZN","TSLA","AVGO","ORCL","CRM"],
"min_upside_pct": 15,
"consensus_rating": "Buy",
"min_n_analysts": 10
}

Filters to widely-covered names with at least 15% implied upside and a sell-side Buy consensus. Drop the result into your morning meeting deck.

Short candidate screen โ€” Sell-rated names with downside

{
"symbols": ["...your watchlist..."],
"min_upside_pct": -1000,
"consensus_rating": "Sell"
}

Pair with nexgendata/short-interest-tracker to find names where the street and the borrow desk both flag downside.

IR street-check โ€” what is being said about us

{
"symbols": ["TICKR"],
"include_recent_actions": true
}

One call before earnings to summarize every analyst action in the last 90 days โ€” target moves, rating changes, initiations, dropped coverage. Drop straight into the prep memo.

Smart-money following โ€” newly upgraded names

Run with include_recent_actions: true, then filter results client-side for n_recent_actions_90d > 3 and parse recent_actions for the string "upgraded". Daily delta detection for newsletter writers.

Data sources & methodology

Primary source is Yahoo Finance's official quoteSummary endpoint, the same endpoint that powers finance.yahoo.com/quote/{SYMBOL}/analysis. We request six modules in a single call: financialData, recommendationTrend, upgradeDowngradeHistory, price, summaryDetail, and assetProfile. Yahoo's own consensus aggregation is itself sourced from sell-side feeds (Thomson Reuters / Refinitiv), so the targets and ratings here trace back to the same primary research desks that populate Bloomberg's consensus screen โ€” just routed through Yahoo's free consumer endpoint.

Yahoo's crumb/cookie authentication is handled transparently. We boot consent cookies from fc.yahoo.com, exchange them for a crumb at query2.finance.yahoo.com/v1/test/getcrumb, and reuse the crumb across the run. Crumb expiry mid-run is detected and refreshed on the fly.

Concurrency is capped at 5 in-flight requests to stay below Yahoo's per-IP soft limit. A 500-symbol sweep typically completes in 50โ€“90 seconds.

Pricing

EventCharge
Actor start$0.01
Per analyst-target record$0.10

A 5-symbol smoke run costs $0.51. A full S&P 500 sweep costs $50.01. A Russell 1000 sweep costs $100.01.

There is no monthly minimum, no seat license, and no contract โ€” you pay the Apify platform fee plus the per-event charges only on runs you actually execute. The 20% Apify margin is included in the prices above; we do not mark up beyond that.

Sister actors in the NexGenData fleet

Layer this actor with the rest of the fleet for a full equity-research stack:

  • nexgendata/finviz-stock-screener โ€” Finviz's full screener universe with 70+ filters. Feed its symbol list into this actor to bulk-pull consensus targets for any screen.
  • nexgendata/earnings-calendar โ€” Upcoming earnings releases with EPS estimates, fiscal period, prior-period surprises. Run this actor against the upcoming-reporters list to find names where street sentiment has shifted into the print.
  • nexgendata/short-interest-tracker โ€” Bi-monthly short-interest reports, days-to-cover, % of float short. Cross-reference Sell-rated names here with high short-interest tickers there to find consensus-confirmed shorts.
  • nexgendata/sec-form4-insider-tracker โ€” Real-time insider buys and sells from SEC Form 4 filings. Stack with this actor to find names where the street and management agree on direction.
  • nexgendata/etf-holdings-tracker โ€” Daily ETF basket exposure. Useful for tracking which thematic ETFs hold the analyst-favorite names you surface here.
  • nexgendata/finance-mcp-server โ€” Anthropic MCP server bundling the entire NexGenData equity stack into one tool surface for Claude / GPT / agentic workflows. Drop it in and let the model pull consensus targets, screens, earnings, short interest, insider activity, and ETF holdings on demand.

FAQ

Why Yahoo Finance and not Stockanalysis.com / TipRanks / MarketBeat? We tested all five. Stockanalysis.com forecast pages SSR through Svelte and hydrate from a private API that returns 404 to non-browser callers. TipRanks blocks anonymous JSON. MarketBeat returns HTML with anti-bot challenges. Zacks is rate-limited and protected by Cloudflare. Yahoo's quoteSummary endpoint is the cleanest, most-reliable surface and is itself sourced from Refinitiv's institutional feed โ€” so we get Bloomberg-quality consensus for free.

How fresh is the consensus? Yahoo's financialData snapshot refreshes intra-day. Recommendation trend buckets refresh monthly. Upgrade/downgrade history rows appear within hours of the underlying note. For event-driven workflows we recommend rerunning the actor at the close each trading day.

Can I scan the whole Russell 1000? Yes. Pass 1000 symbols, set min_n_analysts: 5 to drop thinly-covered names, and the run completes in ~3 minutes for $100.01. We've stress-tested up to 2000 symbols per run without hitting Yahoo's edge limits.

What if a symbol is an ADR / OTC / dual-listing? ADRs and major OTC names work. Pure foreign listings (e.g. ASML on AEX without an ADR) return null targets โ€” Yahoo's analyst feed only covers the US-listed share class.

Does it handle option-implied targets or buy-side targets? No. The output is pure sell-side. For option-implied moves see our forthcoming options-vol actor.

Build pinning? Pin with ?build=0.0.1. The build number (string), not the build id. Build numbers are stable; build ids rotate on every push. We bump 0.0.x for additive changes and 0.x.0 for any breaking schema change.

Support & licensing

Private actor on the NexGenData Apify fleet. Access by request โ€” contact via the Apify console or the affiliate signup below. Bulk-rate licensing, white-label deployments, and dedicated-instance options available on request.

Sign up via the NexGenData affiliate link โ€” supports the fleet at no cost to you, gives you instant access to every NexGenData actor (10+ and growing) including this one, plus first-look at upcoming releases (consensus-EPS-revisions actor, options-vol actor, transcripts-sentiment actor). Affiliate signups stay on a flat 20% rev-share for the lifetime of the account.

Built and maintained by NexGenData. We focus on the equity-research stack the institutional vendors charge $20K+ for โ€” and ship it pay-per-call.