# GET /api/mcp/data/volume-profile/{ticker}

> Which SPY strikes are trading the most volume and holding the most open interest?

Returns the per-strike profile of call and put volume and open interest, the top strikes by each, and the aggregate put-call ratio.

- **Family:** Gamma exposure (https://apexvol.com/developers/gamma-exposure-api)
- **Plan:** Basic and above. Every call needs `Authorization: Bearer avmcp_<token>`; tokens are issued to paid and trial accounts under Account, then API Access.
- **Units:** Contracts; ratios are unitless; distance_from_spot_pct in percent.
- **Basis:** Today's cumulative volume and current open interest from the data feed.
- **MCP tools:** `get_volume_profile`
- **Background:** https://apexvol.com/learn/open-interest-volume

## Parameters

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `ticker` (required) | path |  | any covered symbol | The underlying, upper case. Use /search to check coverage. |
| `expiration` | query | nearest | YYYY-MM-DD, a listed expiration | Which expiration to use. Defaults to the nearest one. |

## Request

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/volume-profile/SPY"
```

## Response (captured 2026-09-08)

Real response, lists cut to the rows nearest the money. The envelope is `{"success": true, "data": ...}`.

```json
{
  "success": true,
  "data": {
    "expiration": "2026-09-08",
    "put_call_ratio": 1.483,
    "stock_price": 770.25,
    "success": true,
    "ticker": "SPY",
    "timestamp": "2026-09-08T08:07:22.009730",
    "top_oi_strikes": [
      {
        "call_oi": 12.0,
        "call_volume": 528.0,
        "distance_from_spot_pct": -4.3168,
        "moneyness": "ITM",
        "pcr_oi": 454.5833,
        "pcr_volume": 4.6723,
        "put_oi": 5455.0,
        "put_volume": 2467.0,
        "strike": 737.0,
        "total_oi": 5467.0,
        "total_volume": 2995.0
      },
      {
        "call_oi": 6179.0,
        "call_volume": 82391.0,
        "distance_from_spot_pct": -0.0325,
        "moneyness": "ATM",
        "pcr_oi": 0.5446,
        "pcr_volume": 1.0061,
        "put_oi": 3365.0,
        "put_volume": 82894.0,
        "strike": 770.0,
        "total_oi": 9544.0,
        "total_volume": 165285.0
      },
      {
        "call_oi": 4680.0,
        "call_volume": 13232.0,
        "distance_from_spot_pct": 1.2658,
        "moneyness": "ATM",
        "pcr_oi": 0.04,
        "pcr_volume": 0.1359,
        "put_oi": 187.0,
        "put_volume": 1798.0,
        "strike": 780.0,
        "total_oi": 4867.0,
        "total_volume": 15030.0
      }
    ],
    "top_volume_strikes": [
      {
        "call_oi": 1200.0,
        "call_volume": 25628.0,
        "distance_from_spot_pct": -0.1623,
        "moneyness": "ATM",
        "pcr_oi": 0.9767,
        "pcr_volume": 2.2318,
        "put_oi": 1172.0,
        "put_volume": 57197.0,
        "strike": 769.0,
        "total_oi": 2372.0,
        "total_volume": 82825.0
      },
      {
        "call_oi": 6179.0,
        "call_volume": 82391.0,
        "distance_from_spot_pct": -0.0325,
        "moneyness": "ATM",
        "pcr_oi": 0.5446,
        "pcr_volume": 1.0061,
        "put_oi": 3365.0,
        "put_volume": 82894.0,
        "strike": 770.0,
        "total_oi": 9544.0,
        "total_volume": 165285.0
      },
      {
        "call_oi": 1450.0,
        "call_volume": 61672.0,
        "distance_from_spot_pct": 0.0974,
        "moneyness": "ATM",
        "pcr_oi": 2.0738,
        "pcr_volume": 0.7047,
        "put_oi": 3007.0,
        "put_volume": 43463.0,
        "strike": 771.0,
        "total_oi": 4457.0,
        "total_volume": 105135.0
      }
    ],
    "total_call_volume": 424808.0,
    "total_put_volume": 629987.0,
    "volume_profile": [
      {
        "call_oi": 1200.0,
        "call_volume": 25628.0,
        "distance_from_spot_pct": -0.1623,
        "moneyness": "ATM",
        "pcr_oi": 0.9767,
        "pcr_volume": 2.2318,
        "put_oi": 1172.0,
        "put_volume": 57197.0,
        "strike": 769.0,
        "total_oi": 2372.0,
        "total_volume": 82825.0
      },
      {
        "call_oi": 6179.0,
        "call_volume": 82391.0,
        "distance_from_spot_pct": -0.0325,
        "moneyness": "ATM",
        "pcr_oi": 0.5446,
        "pcr_volume": 1.0061,
        "put_oi": 3365.0,
        "put_volume": 82894.0,
        "strike": 770.0,
        "total_oi": 9544.0,
        "total_volume": 165285.0
      },
      {
        "call_oi": 1450.0,
        "call_volume": 61672.0,
        "distance_from_spot_pct": 0.0974,
        "moneyness": "ATM",
        "pcr_oi": 2.0738,
        "pcr_volume": 0.7047,
        "put_oi": 3007.0,
        "put_volume": 43463.0,
        "strike": 771.0,
        "total_oi": 4457.0,
        "total_volume": 105135.0
      }
    ]
  }
}
```

## Fields

- `volume_profile[].strike, call_volume, put_volume, call_oi, put_oi`: The profile.
- `top_volume_strikes[], top_oi_strikes[]`: The leaders.
- `put_call_ratio, total_call_volume, total_put_volume`: The aggregates.

## Errors

- `401`: no or revoked token
- `429`: Retry-After seconds
- `424`: data feed unavailable, retry
- Full list: https://apexvol.com/developers/errors

## Ask it in an MCP client

- Which SPY strikes have the most volume today?
- Where is open interest concentrated on NVDA for October?
- What is the put-call ratio on AAPL by volume?

Conventions for units, bases and timestamps: https://apexvol.com/developers/conventions
