# Zacks Rating Scraper (`kirill_turin/zacks-scraper`) Actor

- **URL**: https://apify.com/kirill\_turin/zacks-scraper.md
- **Developed by:** [Kirill Turin](https://apify.com/kirill_turin) (community)
- **Categories:** Other
- **Stats:** 5 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Zacks Stock Data Scraper

Extract comprehensive stock data from Zacks Investment Research including real-time prices, market cap, P/E ratios, dividends, earnings estimates, and Zacks Rank ratings. Batch process hundreds of tickers in a single run with pay-per-event pricing.

### What Data Does It Extract?

| Data Field | Description |
|------------|-------------|
| Stock Price | Current price with net/percent changes |
| Market Cap | Total market capitalization |
| P/E Ratio | Price-to-earnings ratio |
| Dividend Info | Yield percentage and amount per share |
| Earnings Estimates | Forward EPS estimates |
| Zacks Rank | Proprietary 1-5 investment rating |
| Company Name | Full company name |
| Last Updated | Timestamp of data freshness |

### How to Use

#### 1. Add Your Stock Tickers

**Option A: Text Input**

```
AAPL, MSFT, GOOGL, AMZN, TSLA
```

**Option B: CSV File Upload**

```csv
AAPL
MSFT
GOOGL
```

#### 2. Configure Proxies (Optional)

For large-scale jobs (100+ tickers) or to avoid rate limiting:

- Enable proxy rotation
- Choose proxy type: Datacenter, Residential, or Auto
- Optionally specify country

Small jobs (under 50 tickers) don't require proxies.

#### 3. Run & Export

Click "Start" and export results in JSON, CSV, Excel, HTML, or XML format.

### Pricing

Uses pay-per-event pricing. You're only charged for successfully scraped tickers.

**Note**: Apify proxy usage (if enabled) is billed separately.

### Input Options

**Ticker Symbols** (Required)

- Text input: comma or newline-separated
- CSV file upload: single column or comma-separated

**Proxy Settings** (Optional)

- Enable/disable proxy rotation
- Proxy type: Datacenter, Residential, or Auto
- Proxy country (optional)

### Output Format

```json
{
  "ticker": "AAPL",
  "name": "Apple Inc.",
  "last_price": "260.37",
  "net_change": "-.68",
  "percent_net_change": "-.26",
  "market_cap": "3815140651820",
  "pe_ratio": "32.13",
  "dividend_yield": ".4",
  "dividend_amount": ".26",
  "earnings_estimate": "7.47",
  "zacks_rank": "3",
  "zacks_rank_text": "Hold",
  "reporting_date": null,
  "updated_at": "Jan 14, 2026 03:40 PM",
  "scraped_at": "2026-01-14T20:41:29.649Z"
}
```

#### Zacks Rank Explained

- **1 - Strong Buy**: Top-tier investment opportunity
- **2 - Buy**: Above-average potential
- **3 - Hold**: Neutral stance
- **4 - Sell**: Below-average potential
- **5 - Strong Sell**: Unfavorable outlook

### FAQ

**Is web scraping Zacks legal?**
Yes. This scraper collects publicly available data. Always review Zacks' terms of service and use data responsibly for personal research and educational purposes.

**How often is data updated?**
The scraper fetches real-time data from Zacks. Data is typically updated within minutes of market changes during trading hours.

**What happens if a ticker is invalid?**
Invalid tickers are logged as errors but won't stop the scraping process. You're only charged for successfully scraped tickers.

**Can I scrape international stocks?**
This scraper covers stocks available through Zacks Investment Research, which primarily focuses on US-listed equities.

**How fast does it run?**
Processes tickers in batches of 10. Typical speed: 50-100 tickers per minute. Without proxies: ~500ms delay between batches. With proxies: faster concurrent processing.

**Can I schedule automatic runs?**
Yes. Use Apify's built-in scheduling feature for daily, weekly, or custom intervals.

**What export formats are supported?**
JSON, CSV, Excel (.xlsx), HTML, XML, and RSS.

**Do I need programming knowledge?**
No coding required. Simply add tickers, configure settings, and click "Start". Advanced users can integrate via Apify API or webhooks.

### Integration

Integrates with:

- Google Sheets
- Make (Integromat)
- Zapier
- Slack/Discord notifications
- Apify API
- Webhooks

### Disclaimers

- For personal research and educational purposes
- Respect Zacks Investment Research's terms of service
- Uses respectful rate limiting by default
- Not intended for commercial redistribution
- Financial data should not be the sole basis for investment decisions

# Actor input Schema

## `ticker` (type: `string`):

Enter stock ticker symbols, separated by commas or newlines (e.g., AAPL, MSFT). Leave empty if using CSV file upload.

## `tickersFile` (type: `string`):

Upload a CSV file containing ticker symbols (one per line or comma-separated). This is an alternative to manually entering tickers above.

## `useProxy` (type: `boolean`):

Enable Apify proxy for requests. Recommended for large-scale scraping or to avoid rate limiting.

## `proxyType` (type: `string`):

Choose the type of proxy to use. 'datacenter' is fastest, 'residential' is most reliable, 'auto' lets Apify decide.

## `proxyCountry` (type: `string`):

Target a specific country for proxy location (e.g., 'US', 'GB', 'CA'). Leave empty for automatic selection.

## Actor input object example

```json
{
  "ticker": "AAPL\nMSFT",
  "useProxy": false,
  "proxyType": "auto",
  "proxyCountry": "US"
}
```

# Actor output Schema

## `overview` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("kirill_turin/zacks-scraper").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("kirill_turin/zacks-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call kirill_turin/zacks-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=kirill_turin/zacks-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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