{"openapi":"3.1.0","info":{"title":"Put/Call Ratio & Options Sentiment API","version":"1.0.0","description":"Live (15-minute delayed) options put/call sentiment analytics for US stocks and indices, computed from CBOE's public delayed-quotes feed. The ratio endpoint aggregates the entire option chain into the headline sentiment gauges — the put/call ratio by volume and by open interest, the total put and call volume and open interest, the contract counts, and the underlying price with its 30-day implied volatility (IV30) — plus a plain-language sentiment lean. The expiries endpoint breaks the put/call ratio down by expiration date, giving the term structure of sentiment. The strikes endpoint maps call-versus-put volume and open interest across strikes for an expiration, showing where positioning sits. This is the computed options-sentiment and positioning view — ratios and skew, not a contract dump — distinct from the raw options-chain, the volatility-index and the options-pricing calculators in the catalogue. US index options use an underscore-prefixed symbol (_SPX, _VIX); a ratio above 1 means more puts than calls (defensive/bearish lean). Live, no key on the upstream, nothing stored.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/putcallratio-api","description":"oanor gateway"}],"tags":[{"name":"Sentiment"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/expiries":{"get":{"operationId":"get_v1_expiries","tags":["Sentiment"],"summary":"Put/call ratio per expiration (term structure)","description":"","parameters":[{"name":"symbol","in":"query","required":true,"description":"US ticker","schema":{"type":"string"},"example":"AAPL"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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,"put_volume":13821,"call_volume":30709,"put_call_ratio_oi":0.5007,"put_call_ratio_volume":0.4501},{"expiry":"2026-07-24","put_oi":3560,"call_oi":8763,"put_volume":777,"call_volume":2848,"put_call_ratio_oi":0.4063,"put_call_ratio_volume":0.2728},{"expiry":"2026-07-31","put_oi":0,"call_oi":0,"put_volume":254,"call_volume":478,"put_call_ratio_volume":0.5314},{"expiry":"2026-08-21","put_oi":163638,"call_oi":274468,"put_volume":4211,"call_volume":10024,"put_call_ratio_oi":0.5962,"put_call_ratio_volume":0.4201},{"expiry":"2026-09-18","put_oi":198364,"call_oi":296073,"put_volume":9314,"call_volume":27174,"put_call_ratio_oi":0.67,"put_call_ratio_volume":0.3428},{"expiry":"2026-10-16","put_oi":68609,"call_oi":70351,"put_volume":1334,"call_volume":3189,"put_call_ratio_oi":0.9752,"put_call_ratio_volume":0.4183},{"expiry":"2026-11-20","put_oi":63711,"call_oi":63076,"put_volume":1371,"call_volume":1999,"put_call_ratio_oi":1.0101,"put_call_ratio_volume":0.6858},{"expiry":"2026-12-18","put_oi":211159,"call_oi":232236,"put_volume":3044,"call_volume":1828,"put_call_ratio_oi":0.9092,"put_call_ratio_volume":1.6652},{"expiry":"2027-01-15","put_oi":352431,"call_oi":419523,"put_volume":2585,"call_volume":5529,"put_call_ratio_oi":0.8401,"put_call_ratio_volume":0.4675},{"expiry":"2027-02-19","put_oi":14311,"call_oi":9832,"put_volume":428,"call_volume":910,"put_call_ratio_oi":1.4556,"put_call_ratio_volume":0.4703},{"expiry":"2027-03-19","put_oi":30702,"call_oi":38115,"put_volume":250,"call_volume":1942,"put_call_ratio_oi":0.8055,"put_call_ratio_volume":0.1287},{"expiry":"2027-06-17","put_oi":83170,"call_oi":117877,"put_volume":756,"call_volume":1994,"put_call_ratio_oi":0.7056,"put_call_ratio_volume":0.3791},{"expiry":"2027-09-17","put_oi":5939,"call_oi":10812,"put_volume":96,"call_volume":562,"put_call_ratio_oi":0.5493,"put_call_ratio_volume":0.1708},{"expiry":"2027-12-17","put_oi":72133,"call_oi":86603,"put_volume":129,"call_volume":1220,"put_call_ratio_oi":0.8329,"put_call_ratio_volume":0.1057},{"expiry":"2028-01-21","put_oi":54798,"call_oi":88356,"put_volume":82,"call_volume":600,"put_call_ratio_oi":0.6202,"put_call_ratio_volume":0.1367},{"expiry":"2028-03-17","put_oi":13275,"call_oi":18850,"put_volume":103,"call_volume":370,"put_call_ratio_oi":0.7042,"put_call_ratio_volume":0.2784},{"expiry":"2028-12-15","put_oi":29679,"call_oi":57765,"put_volume":166,"call_volume":576,"put_call_ratio_oi":0.5138,"put_call_ratio_volume":0.2882}],"change_pct":1.389,"security_type":"stock"},"meta":{"timestamp":"2026-06-12T01:41:35.666Z","request_id":"33c89bb4-dc15-40b2-a9b6-2039fafe21da"},"status":"ok","message":"Expiry breakdown retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/ratio":{"get":{"operationId":"get_v1_ratio","tags":["Sentiment"],"summary":"Headline put/call ratios + sentiment","description":"","parameters":[{"name":"symbol","in":"query","required":true,"description":"US ticker; index uses underscore prefix","schema":{"type":"string"},"example":"AAPL"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"iv30":23.027,"price":295.84,"source":"CBOE","symbol":"AAPL","sentiment":"neutral to bullish","change_pct":1.389,"total_put_oi":2201436,"put_contracts":1852,"security_type":"stock","total_call_oi":3120398,"call_contracts":1852,"total_put_volume":370202,"put_call_ratio_oi":0.7055,"total_call_volume":580535,"put_call_ratio_volume":0.6377},"meta":{"timestamp":"2026-06-12T01:41:36.048Z","request_id":"4385a06f-d495-41a3-8a7b-90c21b1bf3bd"},"status":"ok","message":"Put/call ratio retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/strikes":{"get":{"operationId":"get_v1_strikes","tags":["Sentiment"],"summary":"Call-vs-put volume & OI across strikes","description":"","parameters":[{"name":"symbol","in":"query","required":true,"description":"US ticker","schema":{"type":"string"},"example":"AAPL"},{"name":"expiry","in":"query","required":false,"description":"Expiration YYYY-MM-DD (defaults to nearest)","schema":{"type":"string"},"example":"2026-06-19"},{"name":"limit","in":"query","required":false,"description":"Max strikes (max 300)","schema":{"type":"string"},"example":"60"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"iv30":23.027,"count":0,"price":295.84,"expiry":"2026-06-19","source":"CBOE","symbol":"AAPL","strikes":[],"change_pct":1.389,"security_type":"stock"},"meta":{"timestamp":"2026-06-12T01:41:36.619Z","request_id":"0c832500-1701-45f3-9852-037e86c92619"},"status":"ok","message":"Strike positioning retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"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}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":19000,"rps_limit":4,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":910,"monthly_call_quota":225000,"rps_limit":12,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2580,"monthly_call_quota":960000,"rps_limit":30,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":5980,"monthly_call_quota":3450000,"rps_limit":80,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/putcallratio-api"}