Scan Every Symbol in One Call
Stop looping through 50 symbols one by one. Our /v1/screener
endpoint scans the entire market against your technical conditions and returns only the
symbols that match -- sorted and ranked, in a single request.
50+
Symbols Scanned
42
Indicators to Filter
1
API Call
3x
Endpoint Weight
The Problem with Manual Scanning
Without the Screener
# Checking 50 symbols: 50 API calls
for symbol in symbols:
rsi = get_indicator(symbol, "RSI", "H1")
macd = get_indicator(symbol, "MACD", "H1")
adx = get_indicator(symbol, "ADX", "H1")
if rsi < 30 and macd["histogram"] > 0:
if adx > 25:
matches.append(symbol)
# 150 API calls. 150 x latency.
# 150 requests from your quota. With the Screener
# Same scan: 1 API call
matches = screener(
timeframe="H1",
filters={
"rsi_14": {"lt": 30},
"macd_histogram": {"gt": 0},
"adx": {"gt": 25}
},
sort_by="rsi_14",
sort_order="asc"
)
# 1 API call (counts as 3).
# 1 x latency. Done. Real Screener Query and Response
Find all oversold symbols with trend confirmation
GET /v1/screener?timeframe=H1&rsi_14_lt=30&adx_gt=25&sort=rsi_14&order=asc&offset=0&limit=50 {
"success": true,
"data": {
"timeframe": "H1",
"filters_applied": {
"rsi_14": {
"lt": 30
},
"adx": {
"gt": 25
}
},
"sort": {
"field": "rsi_14",
"order": "asc"
},
"results": [
{
"symbol": "AUDUSD",
"rsi_14": 22.4,
"adx": 31.2,
"macd_histogram": 0.00008,
"current_price": 0.6421,
"change_24h": -0.82,
"bias": "BEARISH"
},
{
"symbol": "NZDUSD",
"rsi_14": 25.1,
"adx": 28.7,
"macd_histogram": -0.00003,
"current_price": 0.57832,
"change_24h": -0.64,
"bias": "BEARISH"
},
{
"symbol": "EURJPY",
"rsi_14": 28.9,
"adx": 26.1,
"macd_histogram": -0.042,
"current_price": 161.45,
"change_24h": -0.45,
"bias": "BEARISH"
}
],
"total_scanned": 52,
"total_matched": 3,
"timestamp": "2026-03-27T14:00:00Z",
"pagination": {
"offset": 0,
"limit": 50,
"total": 3,
"has_more": false
}
}
} Available Filters
Filter by any of the 42 indicators plus price metrics
-
Oscillators
- rsi_14 (gt, lt, eq)
- stochastic_k (gt, lt)
- cci_14 (gt, lt)
- williams_r (gt, lt)
- mfi_14 (gt, lt)
- demarker (gt, lt)
-
Trend
- adx (gt, lt)
- macd_histogram (gt, lt)
- sma_cross (golden, death)
- price_vs_sma200 (above, below)
- parabolic_sar (buy, sell)
-
Volatility
- atr_14 (gt, lt)
- bb_width (gt, lt)
- bb_position (above, below, inside)
- stddev_20 (gt, lt)
-
Price / Volume
- change_24h (gt, lt)
- spread (gt, lt)
- volume (gt, lt)
- obv_trend (up, down)
- bias (bullish, bearish, neutral)
Use Cases
-
Oversold Pair Finder
Scan for RSI below 30 with ADX above 25. Find pairs that are oversold but in a trending market -- prime reversal candidates.
rsi_14_lt=30 & adx_gt=25
-
Momentum Scanner
Find symbols where MACD histogram is positive and RSI is above 50 but not overbought. Strong momentum without being overextended.
macd_histogram_gt=0 & rsi_14_gt=50 & rsi_14_lt=70
-
Volatility Breakout
Screen for Bollinger Band width compression (low volatility) which often precedes explosive moves. Catch breakouts before they happen.
bb_width_lt=0.005 & adx_lt=20
-
Alert Generation
Run the screener every 15 minutes. When a symbol first appears in your results (new match), fire a notification. Automated opportunity detection.
-
Portfolio Monitoring
Screen your held positions against exit conditions. If RSI on any position crosses above 80, flag it for review. Systematic risk management.
-
Strategy Pre-Filter
Use the screener as a first pass, then run detailed analysis (via /v1/summary or /v1/indicators) only on the matching symbols. Massively reduce API calls.
Integration Example
import requests
resp = requests.get(
"https://tickatlas.com/v1/screener",
headers={"X-API-Key": "YOUR_API_KEY"},
params={
"timeframe": "H1",
"rsi_14_lt": 30,
"adx_gt": 25,
"sort": "rsi_14",
"order": "asc"
}
)
data = resp.json()["data"]
print(f"Scanned {data['total_scanned']} symbols")
print(f"Found {data['total_matched']} matches:")
for result in data["results"]:
print(f" {result['symbol']}: "
f"RSI={result['rsi_14']:.1f}, "
f"ADX={result['adx']:.1f}, "
f"Bias={result['bias']}") const res = await fetch(
"https://tickatlas.com/v1/screener" +
"?timeframe=H4" +
"&macd_histogram_gt=0" +
"&rsi_14_gt=50&rsi_14_lt=70" +
"&sort=change_24h&order=desc",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const { data } = await res.json();
console.log(`${data.total_matched} momentum symbols:`);
data.results.forEach(r => {
console.log(
` ${r.symbol}: +${r.change_24h}% | `
+ `RSI: ${r.rsi_14}`
);
}); Pro Plan and Above
The screener endpoint is available on Pro ($79/mo) and Enterprise ($349/mo) plans. Each screener call counts as 3 requests toward your quota because it evaluates all 50+ symbols internally. Still vastly cheaper than scanning individually.
Frequently Asked Questions
Can I combine multiple filters?
Yes. Add as many filter parameters as you need. All filters are combined with AND logic -- a symbol must match every condition to appear in results.
Which symbols are scanned?
The screener scans all 50+ symbols in our database, including all major and minor forex pairs, gold (XAUUSD), silver (XAGUSD), and major crypto pairs (BTCUSD, ETHUSD).
Can I limit the scan to specific symbols?
Yes. Use the optional symbols parameter with a comma-separated list to scan only specific symbols instead of the full market.
How often should I run the screener?
It depends on your timeframe. For H4 strategies, every 4 hours is sufficient. For H1, every hour. For M15 scalping scans, every 15 minutes. Match your scan frequency to your analysis timeframe.
Find Opportunities Across the Entire Market. Instantly.
Stop scanning symbols one at a time. Let the screener do it in one call.
14-day free trial / Screener on Pro+ plans / 3x endpoint weight / Cancel anytime