# Put/Call Ratio & Options Sentiment API
> 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.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/putcallratio-api/..."
```

## Pricing
- **Free** (Free) — 19,000 calls/Mo, 4 req/s
- **Starter** ($9/Mo) — 225,000 calls/Mo, 12 req/s
- **Pro** ($26/Mo) — 960,000 calls/Mo, 30 req/s
- **Scale** ($60/Mo) — 3,450,000 calls/Mo, 80 req/s

## Endpoints

### Sentiment

#### `GET /v1/expiries` — Put/call ratio per expiration (term structure)

**Parameters:**
- `symbol` (query, required, string) — US ticker Example: `AAPL`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/putcallratio-api/v1/expiries?symbol=AAPL"
```

**Response:**
```json
{
    "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,
   
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/ratio` — Headline put/call ratios + sentiment

**Parameters:**
- `symbol` (query, required, string) — US ticker; index uses underscore prefix Example: `AAPL`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/putcallratio-api/v1/ratio?symbol=AAPL"
```

**Response:**
```json
{
    "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
}
```

#### `GET /v1/strikes` — Call-vs-put volume & OI across strikes

**Parameters:**
- `symbol` (query, required, string) — US ticker Example: `AAPL`
- `expiry` (query, optional, string) — Expiration YYYY-MM-DD (defaults to nearest) Example: `2026-06-19`
- `limit` (query, optional, string) — Max strikes (max 300) Example: `60`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/putcallratio-api/v1/strikes?symbol=AAPL&expiry=2026-06-19&limit=60"
```

**Response:**
```json
{
    "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
}
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/putcallratio-api/v1/meta"
```

**Response:**
```json
{
    "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, volati
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/putcallratio-api
OpenAPI spec: https://www.oanor.com/api/putcallratio-api/openapi.json
