TradingView screener (stocks, crypto, forex)

GET https://api.api.sh/tradingview/v1/screener
1 credit / call finance & crypto try it in the playground →

TradingView's screener for a market: rows of any columns the screener knows, filtered and sorted. Defaults per market type: stocks (price, change, volume, relative volume, market cap, P/E, EPS, dividend yield, sector, industry, performance, rating), crypto and forex. Shortcut filters (exchange, sector, industry, type, market cap, price, volume, change, P/E) and a raw filter for anything else. total is the number of matches. Pass next_page back as page; null on the last page.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
market string Market: america (default), uk, india, germany, canada, japan, hongkong, australia, brazil, any other country name the screener uses, or crypto (pairs), coin (coins), forex, futures, bond, cfd. Example: america
columns string Comma-separated columns, e.g. name,close,change,volume,market_cap_basic,price_earnings_ttm,RSI,Perf.Y (up to 80; unknown columns come back null).
sort string Column to sort by (default market_cap_basic; crypto: 24h_vol|5; coin: market_cap_calc; forex: name).
sort_dir desc | asc desc (default) or asc.
exchange string Exchange, e.g. NASDAQ (comma-separated for several).
sector string Sector, e.g. Technology Services, Finance, Health Technology. Example: Technology Services
industry string Industry, e.g. Semiconductors.
type string Instrument type, e.g. stock, fund, dr, spot, swap.
min_market_cap number Minimum market cap.
max_market_cap number Maximum market cap.
min_price number Minimum price.
max_price number Maximum price.
min_volume number Minimum volume.
min_change number Minimum change %.
max_change number Maximum change %.
min_pe number Minimum P/E.
max_pe number Maximum P/E.
filter string Extra conditions as a JSON array of {left, operation, right}, e.g. [{"left":"RSI","operation":"less","right":30}]. Operations: greater, egreater, less, eless, equal, nequal, in_range, not_in_range, match, crosses, crosses_above, crosses_below, above%, below%, has, has_none_of, empty, nempty.
primary_only boolean Stocks: primary listings only (default true).
page integer Page number (default 1).
limit integer Rows per page, 1-200 (default 50).

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/tradingview/v1/screener?market=america" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.