Zacks Rank Scraper β€” Zacks Rank, Style Scores & industry rank avatar

Zacks Rank Scraper β€” Zacks Rank, Style Scores & industry rank

Pricing

Pay per event

Go to Apify Store
Zacks Rank Scraper β€” Zacks Rank, Style Scores & industry rank

Zacks Rank Scraper β€” Zacks Rank, Style Scores & industry rank

Scrape Zacks Rank (1 Strong Buy to 5 Strong Sell), Zacks Style Scores (Value, Growth, Momentum, VGM score), industry rank, industry and sector for any US stock or ETF ticker list. Optional quote: price, P/E, EPS, market cap, dividend yield. No API key or login.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Istmobot

Istmobot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

22 days ago

Last modified

Categories

Share

Zacks Rank Scraper β€” Zacks Rank, Style Scores, VGM Score & Industry Rank API

Scrape the Zacks Rank (1 = Strong Buy … 5 = Strong Sell), the Zacks Style Scores (Value, Growth, Momentum and VGM Score, graded A–F), the industry rank, industry and sector for any list of US stock and ETF tickers. This Zacks scraper works like an unofficial Zacks API: send tickers, get one clean JSON row per ticker, ready for your stock rating screener, spreadsheet or trading model.

What is Zacks Rank Scraper?

Zacks Rank Scraper is an Apify Actor that collects Zacks ratings and a quote snapshot from zacks.com for the tickers you give it. It needs no Zacks API key, no login and no Zacks Premium account β€” it reads Zacks' public quote feed and the public stock quote page that any visitor sees, without a browser, politely throttled.

Use it as a lightweight alternative to manually copying ranks from zacks.com or paying for a data subscription just to get ratings. Results are stored in an Apify dataset and can be downloaded as JSON, CSV, Excel, HTML or XML, or pulled through the Apify API.

  • Zacks Rank as a number and text (3 / "Hold"), exactly as shown on zacks.com.
  • Zacks Style Scores β€” Value, Growth, Momentum and VGM Score (A–F).
  • Industry rank β€” position and total (26 of 247), the original text ("Top 11% (26 out of 247)"), plus industry and sector names.
  • Quote snapshot (optional) β€” price, change, change %, P/E (F1), EPS, market cap, dividend yield, exchange, last update.
  • ETFs are supported: you get the rank and quote from Zacks' quote feed (Style Scores and industry rank don't exist for ETFs).
  • Unknown tickers produce a free error item instead of failing the run.

What data can I extract with Zacks Rank Scraper?

FieldDescription
tickerTicker symbol (upper-cased, deduplicated)
companyNameCompany or fund name
assetTypestock, etf, fund or other
zacksRankZacks Rank 1–5 (1 = Strong Buy, 5 = Strong Sell)
zacksRankTextStrong Buy, Buy, Hold, Sell or Strong Sell
valueScoreZacks Value Style Score (A–F)
growthScoreZacks Growth Style Score (A–F)
momentumScoreZacks Momentum Style Score (A–F)
vgmScoreZacks VGM Score (A–F)
industryZacks industry name
industryRank / industryRankTotalIndustry position and number of industries (e.g. 26 of 247)
industryRankTextOriginal text, e.g. Top 11% (26 out of 247)
sectorZacks sector name
price, change, changePercentDelayed quote price and daily change
peRatioP/E using the current fiscal year (F1) consensus
epsTrailing EPS from Zacks' quote feed
marketCapMarket capitalization in USD
dividendYieldDividend yield in percent
exchange, quoteUpdatedExchange and time of the quote
url, scrapedAtSource page and scrape timestamp

How can I use Zacks data?

  • Screen your watchlist β€” which of your 50 stocks are Zacks Rank #1/#2 with an A or B VGM Score?
  • Daily rank-change alerts β€” schedule the Actor and compare runs, or pipe results into Google Sheets or Slack.
  • Quant research β€” build a history of Zacks Ranks and Style Scores for backtests.
  • Portfolio reports & newsletters β€” enrich holdings with rank, industry rank and sector.
  • Stock rating screener β€” combine Zacks Rank with industry rank to find top-rated stocks in top-ranked industries.

How to scrape Zacks Rank

  1. Click Try for free on this page to open the Actor in Apify Console (create a free account if you don't have one).
  2. Enter your tickers (e.g. AAPL, MSFT, BRK.B, SPY) and choose whether to include the quote snapshot.
  3. Click Start and wait for the run to finish.
  4. Open the Output tab and download the dataset as JSON, CSV, Excel or HTML β€” or fetch it via the API.

How much does it cost?

Zacks Rank Scraper uses pay-per-event pricing β€” you only pay for results:

EventPrice
Actor start$0.005 per run
ticker-result$0.003 per ticker (= $3 per 1,000 tickers)

Example: 1 run Γ— 500 tickers = $0.005 + $1.50 = $1.505.

The Apify free plan includes $5 of monthly credit, which covers roughly 1,650 tickers a month at no cost. Error items (unknown or failed tickers) are free. You can set a maximum cost per run β€” once it is reached, the Actor stops cleanly and keeps the results it already has.

⬇️ Input

FieldTypeDefaultDescription
tickerslist of stringsβ€” (required)US stock or ETF tickers, e.g. AAPL, MSFT, BRK.B, SPY. Duplicates are removed.
includeQuotebooleantrueAdd price, change, change %, P/E, EPS, market cap, dividend yield, exchange and quote time
maxConcurrencyinteger 1–52Parallel quote-page requests (still globally throttled)
proxyConfigurationproxynoneOptional Apify Proxy (RESIDENTIAL works best if Zacks starts blocking)
{
"tickers": ["AAPL", "MSFT", "NVDA", "TSLA", "BRK.B"],
"includeQuote": true,
"maxConcurrency": 2
}

⬆️ Output

Each ticker becomes one dataset row. The Overview table view shows ticker, company, rank, Style Scores, industry, sector, price, change %, P/E, market cap and URL at a glance.

{
"ticker": "AAPL",
"companyName": "Apple Inc.",
"assetType": "stock",
"zacksRank": 3,
"zacksRankText": "Hold",
"valueScore": "F",
"growthScore": "B",
"momentumScore": "C",
"vgmScore": "D",
"industry": "Computer - Micro Computers",
"industryRank": 26,
"industryRankTotal": 247,
"industryRankText": "Top 11% (26 out of 247)",
"sector": "Computer and Technology",
"price": 333.02,
"change": 3.62,
"changePercent": 1.1,
"peRatio": 37.21,
"eps": 8.61,
"marketCap": 4860153823600,
"dividendYield": 0.33,
"exchange": "NASDAQ",
"quoteUpdated": "Sep 30, 2026 04:00 PM",
"url": "https://www.zacks.com/stock/quote/AAPL",
"scrapedAt": "2026-10-01T01:42:52.008Z"
}
  • With includeQuote: false the quote fields are omitted.
  • If the quote page could not be read but the quote feed worked, the row still has the Zacks Rank and quote, Style Scores are null, and a warning field explains why.
  • For ETFs, url points to the Zacks ETF profile page.

Error item (never charged):

{
"ticker": "ZZZZQ",
"errorType": "INVALID_TICKER",
"error": "Zacks does not know this ticker (quote feed: invalid ticker).",
"url": "https://www.zacks.com/stock/quote/ZZZZQ",
"scrapedAt": "2026-10-01T01:42:52.008Z"
}

errorType is INVALID_TICKER, NOT_FOUND, FETCH_FAILED or FAILED.

Integrations and API

Run Zacks Rank Scraper programmatically with the Apify API β€” use it as a Zacks API for your own code.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("istmobot/zacks-rank-scraper").call(
run_input={"tickers": ["AAPL", "MSFT", "NVDA"], "includeQuote": True}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["ticker"], item.get("zacksRank"), item.get("vgmScore"))

Node.js (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('istmobot/zacks-rank-scraper').call({
tickers: ['AAPL', 'MSFT', 'NVDA'],
includeQuote: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

More ways to connect:

  • Schedules β€” run daily after the market close for automatic Zacks Rank tracking.
  • Webhooks β€” get notified (or trigger your pipeline) when a run finishes.
  • Make, Zapier, n8n β€” plug results into no-code workflows.
  • Google Sheets β€” export the dataset to a sheet for a live stock rating screener.
  • AI agents β€” use it from Claude, ChatGPT and other AI agents via the Apify MCP server.

FAQ

Does it need a Zacks API key or Zacks Premium account? No. It only reads what zacks.com shows to any visitor, without logging in.

How fresh is the data? Zacks updates ranks and scores daily; the quote is Zacks' delayed quote at the time of the run (quoteUpdated).

How fast is it? How many tickers can I run? Hundreds per run. Quote data is fetched in batches of 25 tickers per request, and stock quote pages are throttled to about 1.4 requests per second with retries and exponential backoff β€” so 500 stocks take roughly 6–7 minutes.

Why are Style Scores null for some tickers? ETFs and funds have no Style Scores or industry rank. For stocks, null plus a warning means the quote page was blocked or unavailable for that run β€” re-run, or enable Apify Proxy.

Do I need a proxy? Usually not. Zacks uses an anti-bot service; if your runs start getting warning fields, enable Apify Proxy (RESIDENTIAL works best).

Can I schedule it? Yes. Create a schedule in Apify Console (e.g. every weekday evening) to track Zacks Rank and VGM Score changes over time.

Is it legal to scrape Zacks? This Actor only reads publicly available data shown to any visitor of zacks.com, without logging in, and collects no personal data. Even so, you are responsible for using it in line with applicable laws and Zacks' terms of use; if you are unsure about your use case, consult a lawyer. The data may be delayed or incomplete and is not investment advice.

This is an unofficial tool. It is not affiliated with, endorsed by or sponsored by Zacks Investment Research. "Zacks Rank" and "Style Scores" are Zacks' trademarks and proprietary ratings.

Other Actors you might like

Your feedback

Found a bug or missing a field? Open an issue in the Issues tab and we'll take a look.