Skip to content
GET /v1/history

Time-series of all three cohorts and the gap

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

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

Get an API key

Code snippets

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

Example response

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

{
    "data": {
        "note": "Time-series of all three positioning cohorts and the smart-money-minus-retail long-share gap, oldest to newest. Watch long_pct_gap open and close to see smart money and the crowd diverge and re-converge.",
        "count": 48,
        "period": "1h",
        "points": [
            {
                "timestamp": 1781089200000,
                "long_pct_gap": -14.09,
                "retail_crowd_long_pct": 67.98,
                "retail_crowd_ls_ratio": 2.123,
                "top_traders_by_accounts_long_pct": 68.86,
                "top_traders_by_accounts_ls_ratio": 2.2113,
                "top_traders_by_position_long_pct": 53.89,
                "top_traders_by_position_ls_ratio": 1.1686
            },
            {
                "timestamp": 1781092800000,
                "long_pct_gap": -14.13,
                "retail_crowd_long_pct": 68.14,
                "retail_crowd_ls_ratio": 2.1387,
                "top_traders_by_accounts_long_pct": 69.08,
                "top_traders_by_accounts_ls_ratio": 2.2342,
                "top_traders_by_position_long_pct": 54.01,
                "top_traders_by_position_ls_ratio": 1.1742
            },
            {
                "timestamp": 1781096400000,
                "long_pct_gap": -14.29,
                "retail_crowd_long_pct": 67.72,
                "retail_crowd_ls_ratio": 2.0979,
                "top_traders_by_accounts_long_pct": 68.59,
                "top_traders_by_accounts_ls_ratio": 2.1837,
                "top_traders_by_position_long_pct": 53.43,
                "top_traders_by_position_ls_ratio": 1.1473
            },
            {
                "timestamp": 1781100000000,
                "long_pct_gap": -13.77,
                "retail_crowd_long_pct": 67.02,
                "retail_crowd_ls_ratio": 2.0321,
                "top_traders_by_accounts_long_pct": 67.76,
                "top_traders_by_accounts_ls_ratio": 2.1017,
                "top_traders_by_position_long_pct": 53.25,
                "top_traders_by_position_ls_ratio": 1.1391
            },
            {
                "timestamp": 1781103600000,
                "long_pct_gap": -13.65,
                "retail_crowd_long_pct": 66.85,
                "retail_crowd_ls_ratio": 2.0166,
                "top_traders_by_accounts_long_pct": 67.66,
                "top_traders_by_accounts_ls_ratio": 2.0921,
                "top_traders_by_position_long_pct": 53.2,
                "top_traders_by_position_ls_ratio": 1.1368
            },
            {
                "timestamp": 1781107200000,
                "long_pct_gap": -13.33,
                "retail_crowd_long_pct": 66.46,
                "retail_crowd_ls_ratio": 1.9815,
                "top_traders_by_accounts_long_pct": 67.18,
                "top_traders_by_accounts_ls_ratio": 2.0469,
                "top_traders_by_position_long_pct": 53.13,
                "top_traders_by_position_ls_ratio": 1.1335
            },
            {
  
…