Skip to content
GET /v1/screener

Rank the universe by RVOL, volume percentile or dollar volume

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/rvol-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/rvol-api/v1/screener" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/rvol-api/v1/screener", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/rvol-api/v1/screener");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/rvol-api/v1/screener",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "note": "Ranked by rvol over window_days of daily volume. RVOL is today's volume divided by the prior 20- (or 50-) day average: 1.0 normal, 2.0 double, 3.0+ extreme. volume_percentile places today's volume in the window. dollar_volume is volume x close. Read fresh per call, nothing cached.",
        "class": "all",
        "count": 22,
        "metric": "rvol",
        "source": "Yahoo Finance",
        "results": [
            {
                "name": "Gold ETF",
                "rank": 1,
                "read": "elevated volume",
                "class": "commodity",
                "symbol": "GLD",
                "rvol_20": 1.87,
                "rvol_50": 1.77,
                "available": true,
                "volume_trend": "falling",
                "dollar_volume": 4852372452,
                "volume_percentile": 73.3
            },
            {
                "name": "Crude Oil ETF",
                "rank": 2,
                "read": "elevated volume",
                "class": "commodity",
                "symbol": "USO",
                "rvol_20": 1.7,
                "rvol_50": 0.74,
                "available": true,
                "volume_trend": "falling",
                "dollar_volume": 1557528956,
                "volume_percentile": 48.9
            },
            {
                "name": "S&P 500 ETF",
                "rank": 3,
                "read": "elevated volume",
                "class": "index",
                "symbol": "SPY",
                "rvol_20": 1.67,
                "rvol_50": 1.56,
                "available": true,
                "volume_trend": "falling",
                "dollar_volume": 63577723034,
                "volume_percentile": 67.8
            },
            {
                "name": "High-Yield Credit ETF",
                "rank": 4,
                "read": "elevated volume",
                "class": "bond",
                "symbol": "HYG",
                "rvol_20": 1.61,
                "rvol_50": 1.37,
                "available": true,
                "volume_trend": "falling",
                "dollar_volume": 4403151292,
                "volume_percentile": 70
            },
            {
                "name": "Nasdaq 100 ETF",
                "rank": 5,
                "read": "elevated volume",
                "class": "index",
                "symbol": "QQQ",
                "rvol_20": 1.56,
                "rvol_50": 1.59,
                "available": true,
                "volume_trend": "flat",
                "dollar_volume": 51253354883,
                "volume_percentile": 75.6
            },
            {
                "name": "Russell 2000 ETF",
                "rank": 6,
                "read": "normal volume",
                "class": "index",
                "symbol": "IWM",
                "rvol_20": 1.48,
                "rvol_50": 1.44,
                "available": true,
                "volume_trend": "flat",
                "dollar_vol
…