Screener
Screener is the flexible scan API. Use it when you want custom filters, sorting, field selection, or symbol sets.
Quick Use
Basic market scan
from tv_scraper import Screener
scraper = Screener()
result = scraper.get_screener(
market="america",
filters=[{"left": "close", "operation": "greater", "right": 100}],
fields=["name", "close", "volume", "market_cap_basic"],
sort_by="market_cap_basic",
sort_order="desc",
limit=25,
)
Output structure:
{
"status": "success",
"data": [
{
"symbol": "NASDAQ:AAPL",
"name": "Apple Inc.",
"close": 187.21,
"volume": 51234567,
"market_cap_basic": 2800000000000.0,
},
...
],
"metadata": {
"market": "america",
"total": 25,
"total_available": 10342,
...
},
"warnings": [],
"error": None,
}
Restrict to a symbol set
result = scraper.get_screener(
market="america",
symbols={"tickers": ["NASDAQ:AAPL", "NYSE:JPM"]},
fields=["name", "close", "change"],
)
Output structure:
{
"status": "success",
"data": [
{
"symbol": "NASDAQ:AAPL",
"name": "Apple Inc.",
"close": 187.21,
"change": 1.1,
},
...
],
"metadata": {
"market": "america",
"symbols": {"tickers": ["NASDAQ:AAPL", "NYSE:JPM"]},
"total": 2,
"total_available": 2,
...
},
"warnings": [],
"error": None,
}
Inputs
| Parameter | Accepted values |
|---|---|
market |
america, australia, canada, germany, india, israel, italy, luxembourg, mexico, spain, turkey, uk, crypto, forex, cfd, futures, bonds, global |
sort_order |
asc, desc |
limit |
1 to 10000 |
filters |
list of filter dicts |
filter2 |
advanced expression dict with operator |
symbols |
optional symbol restriction object |
Supported filter operations:
greater, less, egreater, eless, equal, nequal, in_range, not_in_range, above, below, crosses, crosses_above, crosses_below, has, has_none_of
wrong input
This fails because sort_order must be asc or desc.
Notes
- If no rows match,
Screenerreturns success withdata=[]. fields,sort_by, andsymbolsare passed through with minimal schema checking, so typoed field names usually become empty orNonevalues rather than validation errors.