Skip to content
GET /v1/expiries

Put/call ratio per expiration (term structure)

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

Example response

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

{
    "data": {
        "iv30": 23.027,
        "count": 26,
        "price": 295.84,
        "source": "CBOE",
        "symbol": "AAPL",
        "expiries": [
            {
                "expiry": "2026-06-12",
                "put_oi": 94218,
                "call_oi": 198258,
                "put_volume": 265645,
                "call_volume": 350307,
                "put_call_ratio_oi": 0.4752,
                "put_call_ratio_volume": 0.7583
            },
            {
                "expiry": "2026-06-15",
                "put_oi": 13472,
                "call_oi": 36124,
                "put_volume": 21767,
                "call_volume": 42909,
                "put_call_ratio_oi": 0.3729,
                "put_call_ratio_volume": 0.5073
            },
            {
                "expiry": "2026-06-17",
                "put_oi": 5998,
                "call_oi": 12156,
                "put_volume": 8984,
                "call_volume": 11985,
                "put_call_ratio_oi": 0.4934,
                "put_call_ratio_volume": 0.7496
            },
            {
                "expiry": "2026-06-18",
                "put_oi": 456205,
                "call_oi": 525609,
                "put_volume": 25728,
                "call_volume": 55464,
                "put_call_ratio_oi": 0.868,
                "put_call_ratio_volume": 0.4639
            },
            {
                "expiry": "2026-06-22",
                "put_oi": 3731,
                "call_oi": 4553,
                "put_volume": 905,
                "call_volume": 3131,
                "put_call_ratio_oi": 0.8195,
                "put_call_ratio_volume": 0.289
            },
            {
                "expiry": "2026-06-24",
                "put_oi": 1053,
                "call_oi": 2742,
                "put_volume": 1432,
                "call_volume": 1549,
                "put_call_ratio_oi": 0.384,
                "put_call_ratio_volume": 0.9245
            },
            {
                "expiry": "2026-06-26",
                "put_oi": 20112,
                "call_oi": 56175,
                "put_volume": 3898,
                "call_volume": 13514,
                "put_call_ratio_oi": 0.358,
                "put_call_ratio_volume": 0.2884
            },
            {
                "expiry": "2026-07-02",
                "put_oi": 11026,
                "call_oi": 29405,
                "put_volume": 1361,
                "call_volume": 5771,
                "put_call_ratio_oi": 0.375,
                "put_call_ratio_volume": 0.2358
            },
            {
                "expiry": "2026-07-10",
                "put_oi": 9333,
                "call_oi": 21696,
                "put_volume": 1761,
                "call_volume": 3953,
                "put_call_ratio_oi": 0.4302,
                "put_call_ratio_volume": 0.4455
            },
            {
                "expiry": "2026-07-17",
                "put_oi": 220809,
                "call_oi": 440980
…