# TradingView Symbol Detail Scraper - Full Page (`ryyos/tv-symbol-detail`) Actor

\[$5/1000] Scrape every section of a TradingView symbol page (chart bars, key stats, technicals, derivatives, seasonals, news, ideas, ETFs, markets) into one combined JSON per symbol.

- **URL**: https://apify.com/ryyos/tv-symbol-detail.md
- **Developed by:** [Rio Dwi Saputra](https://apify.com/ryyos) (community)
- **Categories:** AI, News, Other
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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.

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

## TradingView Symbol Detail Scraper - Full Page Data

Turn **any TradingView symbol page** into **one complete JSON object** -
price chart candles, key stats, full technicals (oscillators, moving
averages, pivots), derivatives (open interest, funding rate, liquidations
charts), seasonality, news, community trading ideas, related ETFs and every
exchange the symbol trades on. Everything a human would have to click
through eight separate tabs to see, delivered in a single fast, fully
automated run - no browser, no login required. **\[$8/1000]**

Pairs perfectly with the companion **TradingView Crypto Screener** Actor:
feed its `url` output straight into this Actor's `symbols` input to go from
"every coin ranked by market cap" to "full deep-dive per coin" in two runs.

### Features

- One JSON object per symbol combining **every tab** of the TradingView
  symbol page: Overview, Technicals, Derivatives, Seasonals, News,
  Community, ETFs and Markets.
- Real OHLCV price history at any resolution (1 minute up to 1 week),
  fetched from TradingView's own live chart data feed.
- Full technicals: RSI, Stochastic, MACD, ADX, Awesome Oscillator, moving
  averages (EMA/SMA 10-200), Ichimoku, VWMA, Hull MA, and all 5 pivot point
  systems (Classic, Fibonacci, Camarilla, Woodie, Demark) - 100+ indicator
  fields in one call.
- Crypto derivatives: open interest, funding rate, and historical
  open-interest / long-liquidation / short-liquidation charts.
- Seasonality: yearly performance breakdown and seasonal price curve.
- News, community trading ideas, related ETFs and cross-exchange market
  listings, each individually toggleable to control cost and run time.
- No `null` fields, ever - every missing value is filled with a safe
  default (`0`, `"N/A"`, `[]` or `{}`) so the JSON shape is always reliable.
- Works on stocks, forex and crypto - sections that don't apply to a given
  asset type (e.g. derivatives on a stock) are simply returned empty
  instead of failing the run.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `symbols` | array | `["https://www.tradingview.com/symbols/ETHUSD/?exchange=CRYPTO"]` | Full page URLs, `EXCHANGE:TICKER` pairs, or bare tickers to scrape |
| `chartResolution` | string | `1D` | Candle size: `1`, `5`, `15`, `60` (minutes/hour), `1D`, `1W` |
| `chartBars` | integer | `300` | Number of historical candles to fetch |
| `includeDerivatives` | boolean | `true` | Fetch open interest / liquidations charts (crypto only) |
| `includeSeasonals` | boolean | `true` | Fetch the Seasonals tab |
| `includeNews` | boolean | `true` | Fetch news headlines |
| `maxNews` | integer | `20` | Max news items |
| `includeIdeas` | boolean | `true` | Fetch community trading ideas |
| `maxIdeas` | integer | `10` | Max ideas |
| `includeEtfs` | boolean | `true` | Fetch the ETFs tab |
| `maxEtfs` | integer | `25` | Max ETF rows |
| `includeMarkets` | boolean | `true` | Fetch the Markets (exchanges) tab |
| `maxMarkets` | integer | `25` | Max market rows |

See `.actor/input_schema.json` for the full schema.

### Output

One dataset item per symbol. Simplified example for `CRYPTO:ETHUSD`:

```json
{
  "symbol": "ETHUSD",
  "exchange": "CRYPTO",
  "full_symbol": "CRYPTO:ETHUSD",
  "url": "https://www.tradingview.com/symbols/ETHUSD/?exchange=CRYPTO",
  "name": "Ethereum",
  "description": "Ethereum - the world's second most famous blockchain network...",
  "stats": { "market_cap_calc": 225067596057.7, "rsi": 51.1, "macd_macd": 28.5, "...": "100+ more fields" },
  "details": { "Category": "Smart contract platforms", "Website": { "value": "ethereum.org", "url": "https://www.ethereum.org/" } },
  "faq": [{ "question": "What is Ethereum price today?", "answer": "..." }],
  "news": [{ "title": "...", "published": 1785542633, "link": "...", "provider": "Binance News" }],
  "ideas": [{ "title": "...", "author": "Xau_Insightss", "published": "2026-07-25T22:33:12.000Z", "comments": 11, "boosts": 47, "link": "..." }],
  "etfs": [{ "ticker": "NASDAQ:ETHA", "symbol": "ETHA iShares Ethereum Trust ETF", "aum": "5.58 B USD", "...": "..." }],
  "markets": [{ "ticker": "BINANCE:ETHUSDT.P", "exchange": "Binance", "price": "1,865.96 USDT", "...": "..." }],
  "chart": { "resolution": "1D", "bars": [{ "time": 1785542400, "open": 1860.92, "high": 1870.06, "low": 1860.66, "close": 1864.95, "volume": 0 }] },
  "derivatives_charts": { "open_interest": [ "... OHLCV bars ..." ], "long_liquidations": [], "short_liquidations": [] },
  "seasonals": { "performance": { "2026": { "months": ["..."], "summary": ["..."] } }, "seasonals": { "2024": ["..."] } }
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or
Excel. A curated table view is also available in the Apify Console Output
tab (`.actor/dataset_schema.json`).

### Environment variables

None. Every endpoint used here - the REST field API, the news feed, and the
live chart websocket - is the same public, unauthenticated infrastructure
TradingView's own website uses for anonymous visitors.

### Tips

- Turn off sections you don't need (`includeNews`, `includeIdeas`,
  `includeEtfs`, `includeMarkets`, `includeSeasonals`, `includeDerivatives`)
  to speed up runs and reduce cost when you only care about price/technicals.
- `chartBars` up to `5000` is supported, but very large values increase run
  time - 300 daily bars (about a year of history) is a good default.
- The `symbols` field accepts the exact `url` field produced by the
  companion **TradingView Crypto Screener** Actor, so the two chain together
  with no extra parsing needed.

### FAQ & support

This Actor only reads TradingView's own public page content and the same
endpoints your browser uses when you open a symbol page - it does not bypass
any login wall or paywall. The `Markets` and `ETFs` sections are empty for
symbols where TradingView itself doesn't show that tab (e.g. single-listing
stocks) - this is expected, not an error. Found a bug or want a new field
added? Use the Issues tab on this Actor's Apify Store page.

### Development

```bash
pytest tests/
apify validate-schema
apify run --purge
```

# Actor input Schema

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

TradingView symbols to scrape. Accepts a full page URL (e.g. `https://www.tradingview.com/symbols/ETHUSD/?exchange=CRYPTO`), an `EXCHANGE:TICKER` pair (e.g. `CRYPTO:ETHUSD`), or a bare ticker (e.g. `ETHUSD`, defaults to the CRYPTO exchange). This is exactly the format used in the `url` field output by the TradingView Crypto Screener Actor.

## `chartResolution` (type: `string`):

Candle size for the main price chart.

## `chartBars` (type: `integer`):

Number of historical candles to fetch for the main price chart.

## `includeDerivatives` (type: `boolean`):

Fetch historical Open Interest and Long/Short Liquidations charts (crypto symbols only, skipped automatically for other asset types).

## `includeSeasonals` (type: `boolean`):

Fetch the Seasonals tab data (yearly monthly-performance breakdown and seasonal price curve).

## `includeNews` (type: `boolean`):

Fetch the latest news headlines related to the symbol.

## `maxNews` (type: `integer`):

Maximum number of news headlines to include.

## `includeIdeas` (type: `boolean`):

Fetch community trading ideas (the Community tab) for the symbol.

## `maxIdeas` (type: `integer`):

Maximum number of community ideas to include.

## `includeEtfs` (type: `boolean`):

Fetch the ETFs tab (funds that hold or track this asset), when TradingView shows one for this symbol.

## `maxEtfs` (type: `integer`):

Maximum number of ETF rows to include.

## `includeMarkets` (type: `boolean`):

Fetch the Markets tab (every exchange this symbol trades on).

## `maxMarkets` (type: `integer`):

Maximum number of market/exchange rows to include.

## Actor input object example

```json
{
  "symbols": [
    "https://www.tradingview.com/symbols/ETHUSD/?exchange=CRYPTO"
  ],
  "chartResolution": "1D",
  "chartBars": 300,
  "includeDerivatives": true,
  "includeSeasonals": true,
  "includeNews": true,
  "maxNews": 20,
  "includeIdeas": true,
  "maxIdeas": 10,
  "includeEtfs": true,
  "maxEtfs": 25,
  "includeMarkets": true,
  "maxMarkets": 25
}
```

# Actor output Schema

## `symbolResults` (type: `string`):

No description

## `runInfo` (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 = {
    "symbols": [
        "https://www.tradingview.com/symbols/ETHUSD/?exchange=CRYPTO"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ryyos/tv-symbol-detail").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 = { "symbols": ["https://www.tradingview.com/symbols/ETHUSD/?exchange=CRYPTO"] }

# Run the Actor and wait for it to finish
run = client.actor("ryyos/tv-symbol-detail").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 '{
  "symbols": [
    "https://www.tradingview.com/symbols/ETHUSD/?exchange=CRYPTO"
  ]
}' |
apify call ryyos/tv-symbol-detail --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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