Skip to content
GET /v1/rrg

The full sector rotation map: every sector RS-Ratio, RS-Momentum and quadrant

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/rrg-api

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

Get an API key

Code snippets

curl "https://api.oanor.com/rrg-api/v1/rrg" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/rrg-api/v1/rrg", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/rrg-api/v1/rrg");
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/rrg-api/v1/rrg",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

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

{
    "data": {
        "note": "Each sector's position on the Relative Rotation Graph versus the S&P 500. rs_ratio > 100 = outperforming; rs_momentum > 100 = that outperformance is improving. Quadrants rotate clockwise: improving -> leading -> weakening -> lagging. Leading = strong and strengthening; Improving = early turnaround candidates. Not financial advice.",
        "source": "Yahoo Finance",
        "scanned": 11,
        "sectors": [
            {
                "key": "health_care",
                "name": "Health Care",
                "quadrant": "leading",
                "rs_ratio": 104.23,
                "rs_momentum": 102.17
            },
            {
                "key": "financials",
                "name": "Financials",
                "quadrant": "leading",
                "rs_ratio": 102.84,
                "rs_momentum": 102.42
            },
            {
                "key": "real_estate",
                "name": "Real Estate",
                "quadrant": "leading",
                "rs_ratio": 102.6,
                "rs_momentum": 102.84
            },
            {
                "key": "consumer_staples",
                "name": "Consumer Staples",
                "quadrant": "leading",
                "rs_ratio": 102.38,
                "rs_momentum": 103.8
            },
            {
                "key": "industrials",
                "name": "Industrials",
                "quadrant": "leading",
                "rs_ratio": 102.27,
                "rs_momentum": 102.14
            },
            {
                "key": "materials",
                "name": "Materials",
                "quadrant": "leading",
                "rs_ratio": 101.94,
                "rs_momentum": 102.46
            },
            {
                "key": "technology",
                "name": "Technology",
                "quadrant": "weakening",
                "rs_ratio": 100.91,
                "rs_momentum": 97.35
            },
            {
                "key": "utilities",
                "name": "Utilities",
                "quadrant": "leading",
                "rs_ratio": 100.39,
                "rs_momentum": 102.41
            },
            {
                "key": "consumer_discretionary",
                "name": "Consumer Discretionary",
                "quadrant": "improving",
                "rs_ratio": 99.85,
                "rs_momentum": 101.69
            },
            {
                "key": "energy",
                "name": "Energy",
                "quadrant": "lagging",
                "rs_ratio": 98.89,
                "rs_momentum": 99.97
            },
            {
                "key": "communication",
                "name": "Communication Services",
                "quadrant": "improving",
                "rs_ratio": 98.83,
                "rs_momentum": 101.65
            }
        ],
        "benchmark": "S&P 500",
        "quadrants": {
            "lagging": [
                "energy"
       
…