# Stock Analyst Ratings and Price Target Moves from TipRanks Data (`getascraper/tipranks-market-intelligence`) Actor

Get TipRanks analyst consensus, buy, hold and sell counts, average, high and low price targets and upside for any stock watchlist. Returns every analyst rating, upgrades, downgrades and target moves, top analysts and a scheduled change feed. Filter by upside, sector and market cap. No login.

- **URL**: https://apify.com/getascraper/tipranks-market-intelligence.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** News, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.88 / 1,000 result rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 📈 Stock Analyst Ratings and Price Target Moves from TipRanks Data

<table width="100%" style="margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#EBF3FC;border:1px solid #C6DCF5;border-top:4px solid #1D6FD1;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Know the moment analysts upgrade, downgrade or move a price target</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Pull TipRanks analyst consensus, price targets, upside and every individual rating for any watchlist. Schedule it and get only what changed since the last run.</span>
</td>
</tr>
</table>
<table width="100%" style="margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C6DCF5;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#14529F">🎯 Targets and upside</span><br>
<span style="font-size:12px;color:#57534E">Average, high and low price target, with the upside to today's price on every stock.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C6DCF5;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#14529F">🧑‍💼 Every analyst rating</span><br>
<span style="font-size:12px;color:#57534E">Who rated what, with the firm, stars, past success rate and the target they set.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C6DCF5;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#14529F">🔔 What changed</span><br>
<span style="font-size:12px;color:#57534E">New upgrades, downgrades and target moves since your last run, with old and new values side by side.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C6DCF5;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#14529F">🧩 More than targets</span><br>
<span style="font-size:12px;color:#57534E">Earnings dates, insider trades, fund holdings, news mood and Smart Score when you want them.</span>
</td>
</tr>
</table>

Add your tickers and TipRanks analyst data comes back as clean rows you can export to a spreadsheet, a database or your own app. No TipRanks account, login or key is needed.

### 🔍 What does this actor do?

TipRanks tracks what Wall Street analysts say about each stock. This actor reads the public TipRanks data for the tickers you give it and returns it in four ways:

- **Stock overview.** One row per stock with the consensus (Strong Buy to Strong Sell), buy, hold and sell counts, average, high and low price target, upside, Smart Score, next earnings date and estimates, and sentiment labels.
- **Analyst ratings.** One row per analyst rating with the firm, rating, price target, upside, TipRanks stars and how often that analyst's past ratings made money.
- **Rating changes.** A feed of upgrades, downgrades, new coverage and price target raises or cuts inside the window you choose.
- **Top analysts.** The best ranked analysts on TipRanks with success rate, average return and rank movement.

Switch on extras for insider trades, hedge fund and institutional holdings, news sentiment, headlines, consensus history, earnings history and dividends. Results download as JSON, CSV or Excel.

### 💡 Who uses this?

- **I am a newsletter writer** covering stocks every morning. I need the day's upgrades, downgrades and target changes across my watchlist in one list, not 40 open tabs.
- **I am a retail investor** with a 30 stock watchlist. I want the names where at least 10 analysts see 15 percent or more upside, sorted from best to worst.
- **I am an analyst at a small fund.** I track how the consensus and the average target shift week to week, with insider and fund activity next to it.
- **I am building a finance app.** I need a steady feed of analyst ratings per stock that does not depend on a login or a paid data key.

### 🚀 How to use

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#EBF3FC;border:1px solid #C6DCF5;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D6FD1;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add your tickers</span><br>
<span style="font-size:12px;color:#57534E">Paste a watchlist and pick stock overview, analyst ratings, rating changes or top analysts.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EBF3FC;border:1px solid #C6DCF5;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D6FD1;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Filter to what matters</span><br>
<span style="font-size:12px;color:#57534E">Set a minimum upside, exchange, sector, analyst count, rating window or analyst quality.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EBF3FC;border:1px solid #C6DCF5;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D6FD1;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Schedule it</span><br>
<span style="font-size:12px;color:#57534E">Each run shows what moved since the last one, ready for a sheet, an alert or your own app.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `mode` | enum | No | Which result to build: stock overview (`stocks`), one row per analyst rating (`analystRatings`), upgrades, downgrades, new coverage and target moves (`ratingChanges`), or the best ranked analysts (`topAnalysts`). Defaults to `stocks`. |
| `tickers` | array of strings | No | Stock symbols to read, for example `AAPL` or `BRK.B`. Up to 200. Defaults to AAPL, MSFT and TSLA. Not used by `topAnalysts`. |
| `exchanges` | array of strings | No | Keep only stocks listed on these exchanges, for example `NASDAQ` or `NYSE`. Empty means all. |
| `sectors` | array of strings | No | Keep only stocks whose sector contains one of these words, for example `Technology`. Empty means all. |
| `consensusRatings` | array of enums | No | Keep only stocks whose overall analyst rating matches: Strong Buy, Moderate Buy, Hold, Moderate Sell or Strong Sell. |
| `minUpsidePercent` | number | No | Keep only stocks where the average price target is at least this many percent above the last price. |
| `minAnalystCount` | integer | No | Keep only stocks covered by at least this many analysts in the last three months. |
| `minMarketCapMillions` | number | No | Keep only stocks worth at least this many million US dollars. |
| `maxMarketCapMillions` | number | No | Keep only stocks worth at most this many million US dollars. |
| `minSmartScore` | integer | No | Keep only stocks with a TipRanks Smart Score of at least this value, from 1 to 10. |
| `lookbackDays` | integer | No | Only look at analyst ratings from the last this many days. Also sets the window for the upgrade and downgrade counts. Defaults to 30. |
| `ratingFilter` | array of enums | No | Keep only Buy, Hold or Sell ratings. Empty means all. |
| `changeTypes` | array of enums | No | For `ratingChanges`: new coverage, upgrade, downgrade, price target raised, price target lowered or reiterated rating. |
| `minTargetChangePercent` | number | No | For `ratingChanges`: ignore price target moves smaller than this many percent. Upgrades and downgrades are always kept. |
| `minAnalystStars` | number | No | Keep only ratings from analysts with at least this TipRanks star rating, from 0 to 5. |
| `minAnalystSuccessRate` | number | No | Keep only analysts whose past ratings made money at least this often, in percent. |
| `includeAiModels` | boolean | No | Also return the AI models that TipRanks lists as analysts. Defaults to false. |
| `includeCompanyProfile` | boolean | No | Add description, chief executive, employees, website and address to stock overview rows. |
| `includeInsiderActivity` | boolean | No | Add the latest insider trades with SEC filing links and a monthly buy and sell summary. |
| `includeInstitutionalHoldings` | boolean | No | Add the biggest fund holders and the quarterly net buying or selling of institutions. |
| `includeNewsSentiment` | boolean | No | Add the bullish and bearish share of news, last week volume and a weekly history. |
| `includeRecentNews` | boolean | No | Add the latest headlines with link, source and sentiment. |
| `includeConsensusHistory` | boolean | No | Add weekly points of the buy, hold and sell counts and average price target. |
| `includeEarningsHistory` | boolean | No | Add past and upcoming earnings reports with estimate, actual and surprise. |
| `includeDividendHistory` | boolean | No | Add past and upcoming dividends with ex date, pay date and amount. |
| `maxDetailRows` | integer | No | How many entries each extra block returns. Defaults to 10. |
| `trackChanges` | boolean | No | Remember each stock and show what changed since your previous run. Defaults to true. |
| `onlyChanges` | boolean | No | Return only stocks or ratings that changed since the last run. The first run for a stock returns everything. Defaults to false. |
| `monitorScope` | string | No | A short name for this watchlist. Runs with the same name share history. Defaults to `default`. |
| `maxItems` | integer | No | Most result rows to return. Defaults to 10. |
| `maxRatingsPerStock` | integer | No | For analyst results: most ratings returned per stock, newest first. Defaults to 10. |
| `sortBy` | enum | No | Order of the results: default, highest upside, most analysts, largest market cap, highest Smart Score, newest rating, biggest target move, highest analyst stars or ticker. |
| `proxyConfiguration` | proxy | No | Optional proxy settings. Normal runs need none, and the Actor switches to a proxy by itself if TipRanks refuses a request. |

### 📊 Data table

Every row has a `rowType` of `stock`, `analystRating`, `ratingChange` or `topAnalyst`. Fields with no value on TipRanks are left out of the row, never filled with a placeholder.

| Field | Type | Description |
| --- | --- | --- |
| `rowType` | string | Kind of row: stock, analystRating, ratingChange or topAnalyst. |
| `ticker` | string | Stock ticker symbol. |
| `companyName` | string | Company name as shown on TipRanks. |
| `exchange` | string | Exchange the stock is listed on. |
| `sector` | string | Company sector. |
| `industry` | string | Company industry. |
| `isin` | string | ISIN code of the stock. |
| `marketCapUsd` | number | Market value in US dollars. |
| `lastPrice` | number | Latest closing price. |
| `lastPriceDate` | string | Date of the latest closing price. |
| `dayChangePercent` | number | Price change over the last trading day, in percent. |
| `high52Week` | number | Highest price in the last 52 weeks. |
| `low52Week` | number | Lowest price in the last 52 weeks. |
| `priceChangeYtdPercent` | number | Price change since the start of the year, in percent. |
| `priceChange3MonthPercent` | number | Price change over three months, in percent. |
| `priceChange1YearPercent` | number | Price change over one year, in percent. |
| `peRatio` | number | Price to earnings ratio. |
| `dividendPerShare` | number | Dividend per share over the last year. |
| `dividendYieldPercent` | number | Dividend yield, in percent. |
| `consensus` | string | Overall analyst rating: Strong Buy, Moderate Buy, Hold, Moderate Sell or Strong Sell. |
| `consensusScore` | integer | Analyst rating on a 1 to 5 scale, where 5 is Strong Buy. |
| `buyCount` | integer | Analysts rating Buy in the last three months. |
| `holdCount` | integer | Analysts rating Hold in the last three months. |
| `sellCount` | integer | Analysts rating Sell in the last three months. |
| `analystCount` | integer | Analysts included in the consensus. |
| `buyPercent` | number | Share of analysts rating Buy, in percent. |
| `averagePriceTarget` | number | Average 12 month analyst price target. |
| `highPriceTarget` | number | Highest analyst price target. |
| `lowPriceTarget` | number | Lowest analyst price target. |
| `impliedUpsidePercent` | number | Average price target compared with the last price, in percent. Negative means downside. |
| `highTargetUpsidePercent` | number | Highest price target compared with the last price, in percent. |
| `lowTargetUpsidePercent` | number | Lowest price target compared with the last price, in percent. |
| `priceTargetCurrency` | string | Currency of the price targets. |
| `topAnalystConsensus` | string | Consensus of the best performing analysts only. |
| `topAnalystBuyCount` | integer | Top analysts rating Buy. |
| `topAnalystHoldCount` | integer | Top analysts rating Hold. |
| `topAnalystSellCount` | integer | Top analysts rating Sell. |
| `topAnalystPriceTarget` | number | Average price target of the top analysts. |
| `topAnalystUpsidePercent` | number | Top analyst average target compared with the last price, in percent. |
| `upgradesInWindow` | integer | Upgrades inside the rating window. |
| `downgradesInWindow` | integer | Downgrades inside the rating window. |
| `initiationsInWindow` | integer | New coverage starts inside the rating window. |
| `targetRaisesInWindow` | integer | Price target raises inside the rating window. |
| `targetCutsInWindow` | integer | Price target cuts inside the rating window. |
| `ratingWindowDays` | integer | Length of the rating window in days. |
| `latestRatingDate` | string | Date of the newest analyst rating. |
| `recentRatingsWithDetailsWithheld` | integer | Newest ratings that TipRanks publishes without analyst name and price target. |
| `smartScore` | integer | TipRanks Smart Score from 1 to 10. |
| `movingAverageSignal` | string | Moving average signal label. |
| `twelveMonthMomentumPercent` | number | Twelve month price momentum, in percent. |
| `returnOnEquityPercent` | number | Return on equity, in percent. |
| `bloggerSentiment` | string | Financial blogger sentiment label. |
| `bloggerBullishPercent` | number | Share of bullish blogger views, in percent. |
| `newsSentiment` | string | News sentiment label. |
| `hedgeFundTrend` | string | Hedge fund buying trend label. |
| `insiderTrend` | string | Insider trading trend label, only when TipRanks gives one. |
| `investorSentiment` | string | Investor sentiment label. |
| `nextEarningsDate` | string | Date of the next earnings report. |
| `nextEarningsPeriod` | string | Period the next report covers. |
| `nextEarningsEpsEstimate` | number | Analyst earnings per share estimate for the next report. |
| `nextEarningsSalesEstimate` | number | Analyst sales estimate for the next report. |
| `lastEarningsDate` | string | Date of the latest earnings report. |
| `lastEarningsPeriod` | string | Period the latest report covers. |
| `lastEarningsEps` | number | Reported earnings per share in the latest report. |
| `lastEarningsEpsEstimate` | number | Analyst estimate for the latest report. |
| `lastEarningsSurprisePercent` | number | Reported earnings per share compared with the estimate, in percent. |
| `lastEarningsRevenue` | number | Revenue in the latest report. |
| `tipRanksFollowers` | integer | People following the stock on TipRanks. |
| `nextExDividendDate` | string | Next ex dividend date, when the dividend history is requested. |
| `description` | string | Company description. Only with company profile. |
| `ceo` | string | Chief executive. Only with company profile. |
| `employees` | integer | Employee count. Only with company profile. |
| `website` | string | Company website. Only with company profile. |
| `address` | string | Company address. Only with company profile. |
| `insiderTransactions` | array | Latest insider trades with insider, title, transaction, shares, value, date and SEC filing link. Only with insider transactions. |
| `insiderMonthlySummary` | array | Insider buy and sell counts and values per month. Only with insider transactions. |
| `insiderCountOnTipRanks` | integer | Insiders tracked for this company. Only with insider transactions. |
| `institutionalQuarter` | string | Quarter end of the institutional figures. |
| `institutionalSharesHeld` | number | Shares held by institutions. |
| `institutionalNetSharesChange` | number | Net shares bought or sold by institutions in the quarter. |
| `institutionalSharesBought` | number | Shares bought by institutions in the quarter. |
| `institutionalSharesSold` | number | Shares sold by institutions in the quarter. |
| `topInstitutionalHolders` | array | Biggest holders with manager, fund, value, shares, change and portfolio weight. |
| `newsBuzz` | number | News volume compared with the usual level, from 0 to 1. |
| `newsArticlesLastWeek` | integer | News articles in the last week. |
| `newsWeeklyAverage` | number | Usual number of news articles per week. |
| `newsBullishPercent` | number | Share of bullish news, in percent. |
| `newsBearishPercent` | number | Share of bearish news, in percent. |
| `sectorNewsBullishPercent` | number | Average bullish news share in the sector, in percent. |
| `newsSentimentScore` | number | News sentiment score. |
| `newsWeekly` | array | Weekly news counts split into bullish, bearish and neutral. |
| `recentNews` | array | Latest headlines with link, source, sentiment and time. |
| `consensusHistory` | array | Weekly buy, hold and sell counts and average target. Only with consensus history. |
| `earningsHistory` | array | Earnings reports with estimate, actual, surprise and revenue. Only with earnings history. |
| `dividendHistory` | array | Dividends with ex date, pay date, amount and yield. Only with dividend history. |
| `firstRunForStock` | boolean | True when this is the first run that saw the stock, so there is nothing to compare yet. |
| `previousRunAt` | string | Time of the previous run that saw the stock. |
| `changedSinceLastRun` | boolean | True when anything in the consensus, targets or ratings changed since the previous run. |
| `previousConsensus` | string | Consensus at the previous run. |
| `consensusChanged` | boolean | True when the consensus label changed. |
| `previousAveragePriceTarget` | number | Average price target at the previous run. |
| `averagePriceTargetChange` | number | Change in the average price target. |
| `averagePriceTargetChangePercent` | number | Change in the average price target, in percent. |
| `previousHighPriceTarget` | number | Highest target at the previous run. |
| `previousLowPriceTarget` | number | Lowest target at the previous run. |
| `previousAnalystCount` | integer | Analyst count at the previous run. |
| `analystCountChange` | integer | Change in the analyst count. |
| `buyCountChange` | integer | Change in Buy ratings. |
| `holdCountChange` | integer | Change in Hold ratings. |
| `sellCountChange` | integer | Change in Sell ratings. |
| `previousLastPrice` | number | Last price at the previous run. |
| `newRatingsSinceLastRun` | integer | Analysts who were not in the previous run. |
| `ratingChangesSinceLastRun` | integer | Analysts whose Buy, Hold or Sell rating changed since the previous run. |
| `targetChangesSinceLastRun` | integer | Analysts whose price target changed since the previous run. |
| `analystName` | string | Analyst name. Left out when TipRanks withholds it. |
| `firm` | string | Research firm of the analyst. |
| `isAiModel` | boolean | True for the AI models TipRanks lists as analysts. |
| `analystStars` | number | TipRanks star rating of the analyst, from 0 to 5. |
| `analystGlobalRank` | integer | Overall TipRanks rank of the analyst. |
| `analystSuccessRatePercent` | number | Share of the analyst ratings on this stock that made money, in percent. |
| `analystAverageReturnPercent` | number | Average return of the analyst ratings on this stock, in percent. |
| `analystRatingsOnStock` | integer | Ratings the analyst has given on this stock. |
| `analystProfitableRatings` | integer | Ratings on this stock that made money. |
| `analystOverallSuccessRatePercent` | number | Share of all the analyst ratings that made money, in percent. |
| `analystOverallRatings` | integer | All ratings the analyst has given. |
| `rating` | string | Analyst rating: Buy, Hold or Sell. |
| `ratingDate` | string | Date of the rating. |
| `ratingAgeDays` | integer | Days since the rating. |
| `action` | string | What the analyst did: initiated, upgraded, downgraded, reiterated or targetChanged. |
| `changeType` | string | Main change: initiated, upgraded, downgraded, targetRaised, targetLowered or reiterated. |
| `changes` | array | Every change the rating represents, for example an upgrade together with a target raise. |
| `ratingText` | string | Rating wording after an upgrade or downgrade, as published. |
| `previousRatingText` | string | Rating wording before an upgrade or downgrade, as published. |
| `priceTarget` | number | Analyst price target. |
| `previousPriceTarget` | number | Analyst price target before this rating. |
| `targetChangePercent` | number | Price target move, in percent. |
| `upsidePercent` | number | Analyst target compared with the last price, in percent. |
| `headline` | string | Headline of the news item behind the rating. |
| `articleUrl` | string | Link to the news item behind the rating. |
| `countsInConsensus` | boolean | True when the rating counts in the consensus. |
| `detailsWithheldByTipRanks` | boolean | True when TipRanks keeps the analyst name and price target of this rating back. |
| `changeSinceLastRun` | string | Compared with the previous run: new, ratingChanged, targetChanged, reiterated or unchanged. |
| `lastRunRating` | string | Rating at the previous run. |
| `lastRunPriceTarget` | number | Price target at the previous run. |
| `lastRunRatingDate` | string | Rating date at the previous run. |
| `rank` | integer | Rank on the TipRanks top analyst list. |
| `successRatePercent` | number | Share of ratings that made money, in percent. |
| `averageReturnPercent` | number | Average return per rating, in percent. |
| `profitableRatings` | integer | Ratings that made money. |
| `totalRatings` | integer | Ratings given. |
| `previousRank` | integer | Rank at the previous run. |
| `rankChange` | integer | Places gained since the previous run. Positive means it moved up. |
| `isNewInTop` | boolean | True when the analyst was not on the list at the previous run. |
| `analystId` | string | TipRanks analyst identifier. |
| `sourceUrl` | string | Public TipRanks page the row relates to. |
| `scrapedAt` | string | Time the row was collected. |

You can download the dataset in JSON, HTML, CSV or Excel from the Output tab of any run. Each run also saves a `RUN_SUMMARY` record with the largest upside, the biggest average target moves, consensus shifts, recent upgrades and downgrades, and any symbol that could not be read.

### 📤 Sample output

A stock overview row for Apple:

```json
{
    "rowType": "stock",
    "ticker": "AAPL",
    "companyName": "Apple",
    "exchange": "NASDAQ",
    "sector": "Technology",
    "industry": "Consumer Electronics",
    "isin": "US0378331005",
    "marketCapUsd": 4912984863782,
    "lastPrice": 340.97,
    "lastPriceDate": "2026-10-12",
    "dayChangePercent": 1.29,
    "high52Week": 345.34,
    "low52Week": 243.42,
    "priceChangeYtdPercent": 25.76,
    "priceChange3MonthPercent": 8.39,
    "priceChange1YearPercent": 38.18,
    "peRatio": 38.43,
    "dividendPerShare": 1.06,
    "dividendYieldPercent": 0.31,
    "consensus": "Moderate Buy",
    "consensusScore": 4,
    "buyCount": 16,
    "holdCount": 11,
    "sellCount": 4,
    "analystCount": 31,
    "buyPercent": 51.6,
    "averagePriceTarget": 338.31,
    "highPriceTarget": 400,
    "lowPriceTarget": 245,
    "impliedUpsidePercent": -0.78,
    "highTargetUpsidePercent": 17.31,
    "lowTargetUpsidePercent": -28.15,
    "priceTargetCurrency": "USD",
    "topAnalystConsensus": "Moderate Buy",
    "topAnalystBuyCount": 13,
    "topAnalystHoldCount": 8,
    "topAnalystSellCount": 3,
    "topAnalystPriceTarget": 339.35,
    "topAnalystUpsidePercent": -0.48,
    "upgradesInWindow": 0,
    "downgradesInWindow": 1,
    "initiationsInWindow": 1,
    "targetRaisesInWindow": 1,
    "targetCutsInWindow": 0,
    "ratingWindowDays": 30,
    "latestRatingDate": "2026-10-12",
    "recentRatingsWithDetailsWithheld": 4,
    "smartScore": 7,
    "movingAverageSignal": "Positive",
    "twelveMonthMomentumPercent": 33,
    "returnOnEquityPercent": 137.18,
    "bloggerSentiment": "Bullish",
    "bloggerBullishPercent": 60.6,
    "newsSentiment": "Bullish",
    "hedgeFundTrend": "Decreased",
    "investorSentiment": "Very Negative",
    "nextEarningsDate": "2026-11-02",
    "nextEarningsPeriod": "Sep 2026",
    "nextEarningsEpsEstimate": 1.986,
    "nextEarningsSalesEstimate": 113364670000,
    "lastEarningsDate": "2026-07-30",
    "lastEarningsPeriod": "Jun 2026",
    "lastEarningsEps": 2.02,
    "lastEarningsEpsEstimate": 1.892,
    "lastEarningsSurprisePercent": 6.77,
    "lastEarningsRevenue": 109417000000,
    "tipRanksFollowers": 351729,
    "sourceUrl": "https://www.tipranks.com/stocks/aapl/forecast",
    "scrapedAt": "2026-10-13T05:57:29.544Z"
}
```

A rating change row, an upgrade that also raised the target:

```json
{
    "rowType": "ratingChange",
    "ticker": "AAPL",
    "companyName": "Apple",
    "exchange": "NASDAQ",
    "sector": "Technology",
    "analystName": "Timm Schulze-Melander",
    "firm": "Rothschild & Co Redburn",
    "analystStars": 3.3,
    "analystGlobalRank": 8560,
    "analystSuccessRatePercent": 100,
    "analystAverageReturnPercent": 10.1,
    "analystRatingsOnStock": 1,
    "analystProfitableRatings": 1,
    "analystOverallSuccessRatePercent": 81.8,
    "analystOverallRatings": 11,
    "rating": "Buy",
    "ratingDate": "2026-08-17",
    "ratingAgeDays": 57,
    "action": "upgraded",
    "changeType": "upgraded",
    "changes": [
        "upgraded",
        "targetRaised"
    ],
    "ratingText": "Buy",
    "previousRatingText": "Neutral",
    "priceTarget": 400,
    "previousPriceTarget": 260,
    "targetChangePercent": 53.85,
    "upsidePercent": 17.31,
    "lastPrice": 340.97,
    "priceTargetCurrency": "USD",
    "headline": "Apple upgraded to Buy from Neutral at Rothschild & Co Redburn",
    "articleUrl": "https://www.tipranks.com/news/the-fly/apple-upgraded-to-buy-from-neutral-at-rothschild-co-redburn-thefly-news",
    "countsInConsensus": true,
    "sourceUrl": "https://www.tipranks.com/stocks/aapl/forecast",
    "scrapedAt": "2026-10-13T05:57:30.981Z"
}

```

### 💰 Pricing

Pricing is pay per result. You are charged only for rows written to your dataset, so empty runs cost nothing. Stock rows that include the optional deep blocks (insider trades, fund holdings, news or history) carry a small extra charge, and only the rows that include them. A default run has no extras. There are no monthly subscriptions or minimum commitments. If you set a maximum cost per run, the run stops at that limit.

### ⭐ Enjoying Stock Analyst Ratings and Price Target Moves from TipRanks Data?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#EBF3FC;border:1px solid #C6DCF5;border-left:5px solid #1D6FD1;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One scheduled run just told you which analysts changed their minds, so you did not have to look.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other investors and newsletter writers find this actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#1D6FD1;border:1px solid #C6DCF5;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/tipranks-market-intelligence/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ✨ Tips

- **Find the best ideas fast.** Use `minUpsidePercent` with `minAnalystCount` and set `sortBy` to highest upside. A target backed by many analysts means more than one backed by two.
- **Watch the movers.** Choose `ratingChanges`, set `lookbackDays` to 7 and schedule the run each morning for a short list of upgrades and downgrades.
- **Ignore small target tweaks.** Set `minTargetChangePercent` to 10 to keep only the large moves. Upgrades and downgrades always stay in.
- **Follow the best analysts.** Set `minAnalystStars` to 4 or `minAnalystSuccessRate` to 70 to hear only from analysts with a good record on that stock.
- **Keep watchlists apart.** Give each schedule its own `monitorScope` so their history never mixes.

### ❓ FAQ

##### Do I need a TipRanks account, and is everything included?

No account, login or key is needed. The actor reads data that TipRanks makes public. TipRanks keeps some details back from its public data: the analyst name and price target of the newest ratings, and its Premium only tools. Those rows come back with the rating, firm and date, and the missing fields are left out. They fill in as newer ratings arrive.

##### How does the change feed work?

Run the actor on a schedule with `trackChanges` on. Each run remembers every stock and analyst it saw under your `monitorScope`. The next run adds the previous consensus, previous average target, count changes, and for each rating whether it is new, changed rating, changed target or unchanged. Turn on `onlyChanges` to return only what moved. The first run for a stock only records the starting point.

##### How fresh is the data?

Every run reads TipRanks live, so prices, targets and ratings are as current as the TipRanks pages at the time of the run. New analyst ratings show up as TipRanks adds them to the stock page.

##### Is this affiliated with TipRanks?

No. This is an independent tool that reads public TipRanks data. TipRanks and its logos belong to their owners, and nothing here is endorsed by them.

##### Is this investment advice?

No. This is public market data collected for research, and it can be late, incomplete or wrong. Analyst ratings and price targets are opinions, not guarantees. Check any figure at the source and speak to a licensed adviser before you make an investment decision. You are responsible for following TipRanks terms of service and the laws that apply to you. For questions or custom fields, contact the author at <devanshtiwari365@gmail.com>.

### 🔗 Other actors

- [Simply Wall St Scraper: Snowflake Scores and Precise Fair Value](https://apify.com/getascraper/simply-wall-street-scraper) ↗ - Snowflake scores and fair value estimates to set beside analyst targets.
- [Capitol Trades Scraper: Congress Stock Trades and Monitor Mode](https://apify.com/getascraper/capitol-trades-scraper) ↗ - stock trades reported by members of Congress, with change monitoring.
- [SEC Form 4 Insider Monitor: Filing Changes](https://apify.com/getascraper/sec-form4-insider-monitor) ↗ - insider buy and sell filings straight from the SEC.
- [Motley Fool Earnings Call Transcripts Scraper: KPIs, Risks, Q\&A](https://apify.com/getascraper/motley-fool-earnings-transcripts-scraper) ↗ - earnings call transcripts with key figures and risks.
- [SEC EDGAR Scraper for RAG: 10-K/10-Q/8-K as JSON](https://apify.com/getascraper/sec-edgar-rag-extractor) ↗ - company filings turned into clean text for research and AI tools.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/tipranks-market-intelligence/changelog.md

# Actor input Schema

## `mode` (type: `string`):

Choose the result type. Stock overview gives one row per stock. Analyst ratings gives one row per analyst. Rating changes lists recent upgrades, downgrades, new coverage and price target moves. Top analysts lists the best ranked analysts on TipRanks.

## `tickers` (type: `array`):

Stock symbols to read, one per line, for example AAPL or BRK.B. Up to 200. Not used by the top analysts list.

## `exchanges` (type: `array`):

Keep only stocks listed on these exchanges, for example NASDAQ or NYSE. Leave empty for all exchanges.

## `sectors` (type: `array`):

Keep only stocks whose sector contains one of these words, for example Technology or Healthcare. Leave empty for all sectors.

## `consensusRatings` (type: `array`):

Keep only stocks whose overall analyst rating is one of the selected labels. Leave empty to keep every rating.

## `minUpsidePercent` (type: `number`):

Keep only stocks where the average analyst price target is at least this many percent above the last price. Use a negative number to allow downside. Leave empty for no limit.

## `minAnalystCount` (type: `integer`):

Keep only stocks covered by at least this many analysts in the last three months. Leave empty for no limit.

## `minMarketCapMillions` (type: `number`):

Keep only stocks worth at least this many million US dollars. For example 10000 means 10 billion. Leave empty for no limit.

## `maxMarketCapMillions` (type: `number`):

Keep only stocks worth at most this many million US dollars. Leave empty for no limit.

## `minSmartScore` (type: `integer`):

Keep only stocks with a TipRanks Smart Score of at least this value, from 1 to 10. Leave empty for no limit.

## `lookbackDays` (type: `integer`):

Only look at analyst ratings dated within this many days. Also sets the window for the upgrade and downgrade counts on stock overview rows.

## `ratingFilter` (type: `array`):

Keep only ratings that are Buy, Hold or Sell. Leave empty to keep all ratings.

## `changeTypes` (type: `array`):

For the rating changes result: which events to include. Reiterated adds analysts who repeated an unchanged rating.

## `minTargetChangePercent` (type: `number`):

For the rating changes result: ignore price target moves smaller than this many percent. Upgrades and downgrades are always kept. Leave empty for no limit.

## `minAnalystStars` (type: `number`):

Keep only ratings from analysts with at least this TipRanks star rating, from 0 to 5. Leave empty for no limit.

## `minAnalystSuccessRate` (type: `number`):

Keep only analysts whose past ratings on that stock made money at least this often. For the top analysts list it uses the overall success rate. Leave empty for no limit.

## `includeAiModels` (type: `boolean`):

Also return the ratings from the AI models that TipRanks lists as analysts. Off by default so results show human analysts only.

## `includeCompanyProfile` (type: `boolean`):

Add the company description, CEO, employee count, website and address to each stock overview row.

## `includeInsiderActivity` (type: `boolean`):

Add the latest insider trades with the SEC filing link and a month by month buy and sell summary.

## `includeInstitutionalHoldings` (type: `boolean`):

Add the biggest funds that hold the stock, their latest change, and the quarterly net buying or selling of all institutions.

## `includeNewsSentiment` (type: `boolean`):

Add the share of bullish and bearish news, how much news there was last week, and a weekly history.

## `includeRecentNews` (type: `boolean`):

Add the latest news headlines about the stock with their link, source and sentiment.

## `includeConsensusHistory` (type: `boolean`):

Add weekly points showing how the buy, hold and sell counts and the average price target moved over time.

## `includeEarningsHistory` (type: `boolean`):

Add past and upcoming earnings reports with estimate, actual result and surprise.

## `includeDividendHistory` (type: `boolean`):

Add past and upcoming dividends with ex dividend date, pay date and amount.

## `maxDetailRows` (type: `integer`):

How many entries each extra block returns, for example insider trades, news headlines or history points.

## `trackChanges` (type: `boolean`):

Remember what each stock looked like and show what changed since your previous run: consensus, price target, analyst counts and new or changed ratings. Works best on a schedule.

## `onlyChanges` (type: `boolean`):

Return only stocks or ratings that changed since the last run. The first run for a stock still returns everything.

## `monitorScope` (type: `string`):

A short name for this watchlist. Runs with the same name share history, so use a different name for each separate schedule.

## `maxItems` (type: `integer`):

Stop after this many result rows. Each row is one stock, one analyst rating or one top analyst.

## `maxRatingsPerStock` (type: `integer`):

For the analyst ratings and rating changes results: the most ratings returned for each stock, newest first.

## `sortBy` (type: `string`):

Order of the results. Default keeps your ticker order for stock overviews and puts the newest rating first for analyst results.

## `proxyConfiguration` (type: `object`):

Optional. TipRanks data is public and normal runs need no proxy. If TipRanks ever refuses your requests, the Actor retries through Apify datacenter proxy by itself.

## Actor input object example

```json
{
  "mode": "stocks",
  "tickers": [
    "AAPL",
    "MSFT",
    "TSLA"
  ],
  "exchanges": [],
  "sectors": [],
  "consensusRatings": [],
  "lookbackDays": 30,
  "ratingFilter": [],
  "changeTypes": [
    "initiated",
    "upgraded",
    "downgraded",
    "targetRaised",
    "targetLowered"
  ],
  "includeAiModels": false,
  "includeCompanyProfile": false,
  "includeInsiderActivity": false,
  "includeInstitutionalHoldings": false,
  "includeNewsSentiment": false,
  "includeRecentNews": false,
  "includeConsensusHistory": false,
  "includeEarningsHistory": false,
  "includeDividendHistory": false,
  "maxDetailRows": 10,
  "trackChanges": true,
  "onlyChanges": false,
  "monitorScope": "default",
  "maxItems": 10,
  "maxRatingsPerStock": 10,
  "sortBy": "default"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "stocks",
    "tickers": [
        "AAPL",
        "MSFT",
        "TSLA"
    ],
    "exchanges": [],
    "sectors": [],
    "consensusRatings": [],
    "lookbackDays": 30,
    "ratingFilter": [],
    "changeTypes": [
        "initiated",
        "upgraded",
        "downgraded",
        "targetRaised",
        "targetLowered"
    ],
    "includeAiModels": false,
    "includeCompanyProfile": false,
    "includeInsiderActivity": false,
    "includeInstitutionalHoldings": false,
    "includeNewsSentiment": false,
    "includeRecentNews": false,
    "includeConsensusHistory": false,
    "includeEarningsHistory": false,
    "includeDividendHistory": false,
    "maxDetailRows": 10,
    "trackChanges": true,
    "onlyChanges": false,
    "monitorScope": "default",
    "maxItems": 10,
    "maxRatingsPerStock": 10,
    "sortBy": "default"
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/tipranks-market-intelligence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "stocks",
    "tickers": [
        "AAPL",
        "MSFT",
        "TSLA",
    ],
    "exchanges": [],
    "sectors": [],
    "consensusRatings": [],
    "lookbackDays": 30,
    "ratingFilter": [],
    "changeTypes": [
        "initiated",
        "upgraded",
        "downgraded",
        "targetRaised",
        "targetLowered",
    ],
    "includeAiModels": False,
    "includeCompanyProfile": False,
    "includeInsiderActivity": False,
    "includeInstitutionalHoldings": False,
    "includeNewsSentiment": False,
    "includeRecentNews": False,
    "includeConsensusHistory": False,
    "includeEarningsHistory": False,
    "includeDividendHistory": False,
    "maxDetailRows": 10,
    "trackChanges": True,
    "onlyChanges": False,
    "monitorScope": "default",
    "maxItems": 10,
    "maxRatingsPerStock": 10,
    "sortBy": "default",
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/tipranks-market-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "stocks",
  "tickers": [
    "AAPL",
    "MSFT",
    "TSLA"
  ],
  "exchanges": [],
  "sectors": [],
  "consensusRatings": [],
  "lookbackDays": 30,
  "ratingFilter": [],
  "changeTypes": [
    "initiated",
    "upgraded",
    "downgraded",
    "targetRaised",
    "targetLowered"
  ],
  "includeAiModels": false,
  "includeCompanyProfile": false,
  "includeInsiderActivity": false,
  "includeInstitutionalHoldings": false,
  "includeNewsSentiment": false,
  "includeRecentNews": false,
  "includeConsensusHistory": false,
  "includeEarningsHistory": false,
  "includeDividendHistory": false,
  "maxDetailRows": 10,
  "trackChanges": true,
  "onlyChanges": false,
  "monitorScope": "default",
  "maxItems": 10,
  "maxRatingsPerStock": 10,
  "sortBy": "default"
}' |
apify call getascraper/tipranks-market-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/tipranks-market-intelligence"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/zWXVm54QaDydyslNS/builds/YVP7L9UrS9dUIHewo/openapi.json
