# TradingView Stock Screener & Market Data Scraper (`zhorex/tradingview-scraper`) Actor

Screen stocks, forex, crypto and commodities across 11 markets and pull the market data behind them: price, volume, fundamentals and technical indicators (RSI, MACD, EMA and SMA 20/50/200, Bollinger Bands, Stoch RSI, volatility) plus buy/sell signals. No API key, no browser needed.

- **URL**: https://apify.com/zhorex/tradingview-scraper.md
- **Developed by:** [Sami](https://apify.com/zhorex) (community)
- **Categories:** Other, Lead generation, Developer tools
- **Features:** Limited permissions
- **Stats:** 182 total users, 12 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 data point scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## TradingView Multi-Market Scraper

Screen 11+ markets with 40+ technical indicators — no API key, no browser. Covers US, Europe, UK, forex, crypto and commodities.

### How to scrape TradingView data in 3 easy steps

1. **Go to the [TradingView Multi-Market Scraper](https://apify.com/zhorex/tradingview-scraper) page** on Apify and click **"Try for free"**
2. **Configure your input** — choose a mode (`screener`, `search`, `market_overview`, or `technical_analysis`), select a market, and set your filters
3. **Click "Run"**, wait for results, and **download your data** in JSON, CSV, or Excel

No coding required. Works with Apify's free plan.

### Markets covered

This scraper covers **11 markets** with full technical analysis:

| Market | Code | Examples |
|--------|------|----------|
| US Stocks | `america` | AAPL, TSLA, MSFT |
| European Stocks | `europe` | All EU exchanges |
| UK Stocks | `uk` | LSE-listed stocks |
| German Stocks | `germany` | XETR-listed stocks |
| Spanish Stocks | `spain` | BME-listed stocks |
| Japanese Stocks | `japan` | TSE-listed stocks |
| Australian Stocks | `australia` | ASX-listed stocks |
| Indian Stocks | `india` | NSE/BSE-listed stocks |
| Forex | `forex` | EUR/USD, GBP/JPY |
| Crypto | `crypto` | BTC, ETH, SOL |
| Commodities/CFDs | `cfd` | Gold, Oil, Silver |

### TradingView API alternative

TradingView does not offer a free public API for market data. This scraper is a **TradingView API alternative** — it provides structured access to screener results, technical indicators, and market overviews across 11+ global markets. Get the same data you see on TradingView's screener as clean JSON, ready for algorithmic trading, portfolio dashboards, or research pipelines.

### 4 Operation Modes

#### 1. Screener (`mode: "screener"`)

Scan any market with optional filters. Returns price data, fundamentals, and technical indicators for all matching assets.

#### 2. Search (`mode: "search"`)

Find symbols by name or ticker. Input a query like "Apple", "Bitcoin", or "EUR/USD" and get matching symbols with their exchange and type.

#### 3. Market Overview (`mode: "market_overview"`)

Get top movers in any market, sorted by volume, price change, or market cap.

#### 4. Technical Analysis (`mode: "technical_analysis"`)

Get detailed technical indicators for specific symbols. Input symbols like `NASDAQ:AAPL`, `BINANCE:BTCUSDT`, `FX:EURUSD`.

### Data Points Available

**Price & Volume:** close, open, high, low, volume, average volume (10d/30d)

**Fundamentals:** market cap, P/E ratio, EPS, sector, industry, currency

**Performance:** weekly, monthly, 3-month, 6-month, YTD, yearly returns

**Technical Indicators:**

- RSI (current + previous)
- Stochastic RSI
- MACD (signal + histogram)
- Bollinger Bands (upper + lower)
- EMA 20 / 50 / 200
- SMA 20 / 50 / 200
- Daily / Weekly / Monthly volatility
- Overall recommendation (Strong Buy → Strong Sell)
- Moving Average recommendation
- Oscillator recommendation

### Example Output

```json
{
    "symbol": "NASDAQ:AAPL",
    "name": "AAPL",
    "description": "Apple Inc.",
    "exchange": "NASDAQ",
    "type": "stock",
    "currency": "USD",
    "close": 178.52,
    "change": 1.25,
    "changeAbs": 2.20,
    "volume": 65432100,
    "marketCap": 2780000000000,
    "pe": 28.5,
    "eps": 6.26,
    "sector": "Technology",
    "industry": "Consumer Electronics",
    "high": 179.80,
    "low": 176.30,
    "open": 176.90,
    "perfWeek": 2.1,
    "perfMonth": -1.5,
    "perf3Month": 8.3,
    "perfYTD": 12.7,
    "rsi": 58.3,
    "macd": 1.45,
    "ema20": 175.20,
    "ema50": 172.80,
    "sma200": 168.50,
    "recommendation": "Buy",
    "recommendMA": "Strong Buy",
    "scrapedAt": "2026-04-09T15:00:00Z"
}
```

### Input Examples

#### Screen US stocks by volume

```json
{
    "mode": "screener",
    "market": "america",
    "sortBy": "volume",
    "maxResults": 100,
    "includeIndicators": true
}
```

#### Search for a symbol

```json
{
    "mode": "search",
    "searchQuery": "Tesla"
}
```

#### Top crypto movers

```json
{
    "mode": "market_overview",
    "market": "crypto",
    "sortBy": "change",
    "sortOrder": "desc",
    "maxResults": 50
}
```

#### Technical analysis for specific assets

```json
{
    "mode": "technical_analysis",
    "symbols": ["NASDAQ:AAPL", "NASDAQ:MSFT", "BINANCE:BTCUSDT", "FX:EURUSD"],
    "includeIndicators": true
}
```

### Use Cases

- **Algorithmic trading**: Screen for stocks matching your strategy criteria across global markets
- **Portfolio monitoring**: Track technical indicators across all your holdings in one call
- **Market research**: Compare performance and technicals across US, EU, crypto, and forex
- **Crypto analysis**: Screen top cryptocurrencies with RSI, MACD, and moving averages
- **Forex trading**: Monitor currency pair technicals, trends, and recommendations
- **Commodity tracking**: Follow gold, oil, silver prices with technical overlays

### Use with Python, JavaScript, or no code

You can call this scraper programmatically using the Apify API client.

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("zhorex/tradingview-scraper").call(run_input={
    "mode": "screener",
    "market": "america",
    "sortBy": "volume",
    "maxResults": 100,
    "includeIndicators": True
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### JavaScript

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('zhorex/tradingview-scraper').call({
    mode: 'screener',
    market: 'america',
    sortBy: 'volume',
    maxResults: 100,
    includeIndicators: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Or skip coding entirely and use the [web interface](https://apify.com/zhorex/tradingview-scraper) with no-code tools like Zapier, Make, or n8n.

### Pricing

Pay-per-event: **$10 per 1,000 data points**.

### Technical Details

- Pure HTTP requests — no browser, no Playwright
- 256MB RAM footprint
- Automatic retry with exponential backoff (3s → 10s → 30s)
- Rate-limited to respect TradingView servers
- Null-safe: missing fields return `null`, never crash

### FAQ

**Does this scraper need a TradingView account?**
No. The scraper uses TradingView's public screener endpoints. No login, no API key, no subscription required.

**How much does it cost to scrape TradingView?**
$10 per 1,000 data points. Apify's free plan includes $5/month in credits, enough for 500 results.

**Can I use this TradingView scraper in Python?**
Yes. Install the Apify Python client (`pip install apify-client`) and call the Actor with a few lines of code. See the Python example above.

**Is scraping TradingView legal?**
This scraper accesses publicly available data through TradingView's public endpoints. It does not bypass authentication or violate access controls. Always review TradingView's Terms of Service and applicable laws in your jurisdiction.

**What does this TradingView scraper cover?**
This Actor (`zhorex/tradingview-scraper`) covers 11+ global markets with 40+ technical indicators across 4 operation modes.

**Can I get real-time stock prices?**
The scraper returns the latest data available on TradingView's screener at the time of the run. It is not a real-time streaming feed, but you can schedule runs at regular intervals for near-real-time monitoring.

### Integrations & data export

This Actor integrates with the full Apify ecosystem:

- **Google Sheets** — Automatically push market data to a spreadsheet for tracking
- **Zapier / Make / n8n** — Connect TradingView data to 5,000+ apps with no-code automation
- **REST API** — Start runs, fetch results, and manage datasets programmatically
- **Webhooks** — Get notified when a scrape finishes and trigger downstream workflows
- **Amazon S3 / Google Cloud Storage** — Export datasets directly to cloud storage
- **Slack / Email** — Receive alerts with market data after each run

### More Scrapers by Zhorex

**Finance & Market Data**

- [TradingView Scraper](https://apify.com/zhorex/tradingview-scraper) — This Actor

**Social & Entertainment**

- [Telegram Channel Scraper](https://apify.com/zhorex/telegram-channel-scraper) — Scrape messages, media, and metadata from public Telegram channels
- [Letterboxd Scraper](https://apify.com/zhorex/letterboxd-scraper) — Scrape film details, reviews, and profiles from Letterboxd
- [RedNote Xiaohongshu Scraper All-in-One](https://apify.com/zhorex/rednote-xiaohongshu-scraper) — Scrape posts, comments, and profiles from Xiaohongshu

**Business & Reviews**

- [G2 Reviews Scraper](https://apify.com/zhorex/g2-reviews-scraper) — Extract software reviews and ratings from G2.com

**SEO & Data Tools**

- [Domain Authority Checker](https://apify.com/zhorex/domain-authority-checker) — Bulk check domain authority for SEO analysis
- [Phone Number Validator](https://apify.com/zhorex/phone-number-validator) — Validate and format international phone numbers

Not affiliated with, endorsed by or sponsored by TradingView. Names are used only to describe the data source.

***

**Used this Actor?** Please [leave a star rating](https://apify.com/zhorex/tradingview-scraper), good or bad — it helps other users judge this tool.

# Actor input Schema

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

Operation mode: screener (scan markets), search (find symbols), market_overview (top movers), technical_analysis (indicators for specific symbols)

## `market` (type: `string`):

Market to scan (used in screener and market_overview modes)

## `symbols` (type: `array`):

Specific symbols to analyze, e.g. NASDAQ:AAPL, BINANCE:BTCUSDT, FX:EURUSD

## `searchQuery` (type: `string`):

Symbol or company name to search for (used in search mode)

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

Field to sort results by

## `sortOrder` (type: `string`):

Sort direction

## `maxResults` (type: `integer`):

Maximum number of results to return

## `includeIndicators` (type: `boolean`):

Include RSI, MACD, Bollinger Bands, EMAs, SMAs, and recommendations

## `filters` (type: `array`):

Custom TradingView screener filters (advanced). Each filter is an object with left, operation, right fields.

## Actor input object example

```json
{
  "mode": "screener",
  "market": "america",
  "symbols": [
    "NASDAQ:AAPL",
    "BINANCE:BTCUSDT",
    "FX:EURUSD"
  ],
  "sortBy": "market_cap_basic",
  "sortOrder": "desc",
  "maxResults": 50,
  "includeIndicators": true
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset with all rows this run produced

# 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": "screener",
    "market": "america",
    "symbols": [
        "NASDAQ:AAPL",
        "BINANCE:BTCUSDT",
        "FX:EURUSD"
    ],
    "sortBy": "market_cap_basic",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("zhorex/tradingview-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 = {
    "mode": "screener",
    "market": "america",
    "symbols": [
        "NASDAQ:AAPL",
        "BINANCE:BTCUSDT",
        "FX:EURUSD",
    ],
    "sortBy": "market_cap_basic",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("zhorex/tradingview-scraper").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": "screener",
  "market": "america",
  "symbols": [
    "NASDAQ:AAPL",
    "BINANCE:BTCUSDT",
    "FX:EURUSD"
  ],
  "sortBy": "market_cap_basic",
  "maxResults": 50
}' |
apify call zhorex/tradingview-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zhorex/tradingview-scraper"
        }
    }
}
```

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/uyifqrhzBjf2EyMAW/builds/HPl7cnAt47gxSWrlT/openapi.json
