TradingView Scraper avatar

TradingView Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
TradingView Scraper

TradingView Scraper

Scrape TradingView's public scanner & symbol APIs with screen stocks / crypto / forex / futures, fetch ticker overviews, and run preset top-gainer / top-loser / most-active screens. Pure HTTP, no auth, no proxy.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(16)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

16

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pull live market data from TradingView — screen stocks, crypto, forex, futures, commodities, ETFs, bonds, and indices; fetch quotes for specific tickers; or run preset top-gainer / top-loser / most-active screens. Pure HTTP via TradingView's public scanner & symbol-search APIs. No auth, no proxy, no Playwright.

What this actor does

  • Hits the same scanner.tradingview.com/{market}/scan POST endpoint TradingView's screener UI uses — direct, deterministic, fast.
  • 14 modes covering every reliable scanner axis + symbol search + URL-routing.
  • 47 country / market codes for stock screening (america, uk, germany, japan, india, brazil, australia, …).
  • Filter by market cap, daily volume, price range, sector, plus client-side keyword filtering.
  • Symbol search via the typeahead endpoint — returns ISIN / CUSIP / CIK / exchange / type.
  • Pagination handled automatically; up to 2000 records per run.

Modes

ModeEndpointWhat you get
screenStocks/{market}/scan POSTStock screener — every fundamental & technical TradingView surfaces.
screenCrypto/crypto/scan POSTCryptocurrency pairs across major exchanges.
screenForex/forex/scan POSTCurrency pairs (G10 + emerging markets).
screenFutures/futures/scan POSTFutures contracts globally.
screenCommodities/futures/scan POST + subtype filterEnergy / metals / softs futures.
screenETFs/{market}/scan POST + subtype filterETF rows from the stock scanner.
screenBonds/bonds/scan POSTBond instruments.
screenIndices/global/scan POSTWorld indices.
byTicker/{market}/scan POST + symbols.tickersSpecific symbols (NASDAQ:AAPL, NYSE:JPM, …).
searchSymbolsymbol-search.tradingview.com/v3/Typeahead search — returns symbol metadata, ISIN/CUSIP.
topGainers / topLosers / mostActive/{market}/scan POST + preset filtersCurated screens with liquidity floors.
byUrlanyPaste a tradingview.com URL; auto-routes.

Output

Each row is a flat omit-empty record with recordType tagging the row.

Common fields:

  • symbol (NASDAQ:AAPL), ticker (AAPL), exchange (NASDAQ), name, description
  • close, changePercent, changeAbsolute, volume
  • marketCap, peRatio, epsTtm, dividendYield
  • sector, industry, country, currency
  • rsi, weeklyVolatility, perfWeek, perfMonth, perf3Month, perfYtd, perfYear
  • high52Week, low52Week
  • employeeCount, recommendAll, logoId
  • urlhttps://www.tradingview.com/symbols/EXCH-TICKER/
  • Crypto: rank, marketCap, volume24h, changePercent24h, circulatingSupply, totalSupply
  • Search: isin, cusip, cikCode, typespecs[]

Input

FieldTypeDefaultDescription
modeenumscreenStocksOne of the 14 modes above.
marketenum (47 countries)americaCountry code for stock-scanner modes.
tickersarrayList of EXCHANGE:TICKER strings (mode=byTicker).
searchQuerystringAAPLFree-text query (mode=searchSymbol).
urlstringtradingview.com URL (mode=byUrl).
sortByenum (22 options)market_cap_basic_descColumn + direction for the screener sort.
minMarketCap / maxMarketCapintUSD market cap bounds.
minVolumeintDaily volume floor.
minPrice / maxPricenumberLast-price bounds.
sectorsarrayRestrict to specific sectors.
containsKeywordstringClient-side substring filter on symbol/name.
maxItemsint50Hard cap (1-2000).

Examples

Top 20 US stocks by market cap

{
"mode": "screenStocks",
"market": "america",
"sortBy": "market_cap_basic_desc",
"maxItems": 20
}

Today's biggest US gainers (liquid stocks only)

{
"mode": "topGainers",
"market": "america",
"maxItems": 50
}

Quotes for specific tickers

{
"mode": "byTicker",
"tickers": ["NASDAQ:AAPL", "NASDAQ:MSFT", "NYSE:JPM", "NYSE:BRK.B"]
}

Indian stocks above 1B market cap, sorted by RSI (overbought)

{
"mode": "screenStocks",
"market": "india",
"sortBy": "RSI_desc",
"minMarketCap": 1000000000,
"maxItems": 100
}

Top 50 cryptocurrencies by market cap

{ "mode": "screenCrypto", "maxItems": 50 }

Symbol search

{ "mode": "searchSymbol", "searchQuery": "Tesla" }

FAQ

Where does the data come from? The same JSON the TradingView screener UI hits. Snapshot at request time, ~real-time for major exchanges, 15-min delayed for some.

Why are my results cut at 150 / 300 / etc.? The actor paginates in 150-row batches; raise maxItems (up to 2000) to get more. TradingView's screener returns up to ~5000 per market.

Does it support all 47 markets? Yes — every market in the dropdown is a valid scanner.tradingview.com/{market}/scan host.

Can I get the symbol's price history / OHLC bars? No — that requires WebSocket auth. This actor sticks to the snapshot scanner + symbol-search endpoints; both are anonymous and stable.

Why is sortBy an enum and not a free-form column name? A finite list of well-known sortable columns is more reliable. If you need a column that isn't in the dropdown, file a request.

Limitations

  • Real-time bid/ask, time-series OHLC, and watchlist sync require TradingView account auth — out of scope.
  • Some markets (e.g. bonds, global indices) have a sparser column set; expect fewer fields per record.
  • The searchSymbol endpoint returns up to ~150 results per query (TradingView's limit), regardless of maxItems.
  • The actor calls scanner.tradingview.com/{market}/scan — the same JSON endpoints that power TradingView's own screener UI. These are public, anonymous, snapshot-only and rate-limited per IP; please respect TradingView's terms of service and avoid hammering the API at high concurrency.