Skip to content
GET /v1/meta

Spec

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

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

Get an API key

Code snippets

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

Example response

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

{
    "data": {
        "note": "symbol is a US ticker (AAPL, MSFT); index options use an underscore prefix (_SPX, _VIX). A put/call ratio above 1 means more puts than calls (defensive/bearish lean); below ~0.7 calls dominate (bullish lean). strikes defaults to the nearest expiration; pass expiry=YYYY-MM-DD to choose another.",
        "source": "CBOE delayed quotes (cdn.cboe.com, ~15-min delayed)",
        "service": "putcallratio-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/ratio": "Headline put/call ratios (volume & OI) + totals + sentiment for a symbol (symbol=AAPL).",
            "GET /v1/strikes": "Call-vs-put volume & OI across strikes for an expiration (symbol=AAPL, expiry=2026-06-19).",
            "GET /v1/expiries": "Put/call ratio per expiration date — term structure of sentiment (symbol=AAPL)."
        },
        "description": "Live (15-min delayed) options put/call sentiment analytics for US stocks and indices, computed from CBOE. ratio aggregates the whole chain into the headline gauges (put/call ratio by volume and open interest, total put/call volume & OI, contract counts, underlying price + IV30); expiries breaks the ratio down by expiration (term structure of sentiment); strikes maps call-vs-put volume and OI across strikes (positioning). Live, no key, nothing stored. The computed options-sentiment / positioning view — ratios and skew, not a contract dump — distinct from the raw options-chain, volatility-index and options-pricing APIs.",
        "aapl_pc_volume": 0.6377,
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-12T01:41:37.063Z",
        "request_id": "313f0543-1a2c-4e31-b08d-80dea6c0d2db"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}