# GET /api/mcp/data/borrow-rate/{ticker}

> Is NVDA hard to borrow, and is the borrow rate spiking?

Returns the current 30-day and 2-year borrow rates, the class and percentile, a squeeze score, spike detection with severity, sector comparison and the daily series.

- **Family:** Stock analytics (https://apexvol.com/developers/stock-analytics-api)
- **Plan:** Premium and above. Every call needs `Authorization: Bearer avmcp_<token>`; tokens are issued to paid and trial accounts under Account, then API Access.
- **Units:** Borrow rates in percent per year; percentiles 0 to 100.
- **Basis:** Options-implied borrow from the data feed; spikes are z-scores against the trailing series.
- **MCP tools:** `get_ticker_analytics`
- **Background:** https://apexvol.com/learn/options-margin-requirements

## Parameters

| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| `ticker` (required) | path |  | any covered symbol | The underlying, upper case. Use /search to check coverage. |
| `days` | query | 252 | 20 to 1000 | History length. |

## Request

```bash
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/borrow-rate/NVDA"
```

## 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": {
    "current": {
      "avg_opt_volume": 3290793.0,
      "best_etf": "XLK",
      "borrow2yr": 3.5445,
      "borrow30": 3.9024,
      "borrow_class": "ELEVATED",
      "borrow_pctile": 98.8,
      "chg_1m": 5.05,
      "chg_1w": 5.86,
      "iv_percentile": 12.0,
      "market_cap": 5561054100000.0,
      "open_interest": 16025398.0,
      "options_volume": 5455875,
      "price": 230.3,
      "put_call_ratio": 0.5371,
      "residualRate": null,
      "sector": "Technology",
      "stock_loan_revenue": 898.72,
      "stock_volume": 6443150.0,
      "synthetic_short_cost": 8.68,
      "term_spread": 0.3579,
      "vrp": -11.87
    },
    "earnings_dates": [
      "2025-11-19",
      "2026-02-25",
      "2026-05-20"
    ],
    "next_earnings": null,
    "sector_comparison": {
      "sector_avg": 4.8474,
      "sector_count": 488,
      "sector_rank": 297,
      "vs_sector_ratio": 0.81
    },
    "spike_detected": false,
    "spike_ratio": 1.2836,
    "spike_severity": "MODERATE",
    "spike_z_score": 1.92,
    "squeeze_score": 26,
    "ticker": "NVDA",
    "timeseries": [
      {
        "borrow2yr": 2.8857,
        "borrow30": 3.3621,
        "borrow30_ma20": null,
        "date": "2025-09-05",
        "is_spike": false,
        "residualRate": null,
        "term_spread": 0.4764
      },
      {
        "borrow2yr": 2.7273,
        "borrow30": 3.1602,
        "borrow30_ma20": null,
        "date": "2025-09-08",
        "is_spike": false,
        "residualRate": null,
        "term_spread": 0.4329
      },
      {
        "borrow2yr": 2.655,
        "borrow30": 3.2406,
        "borrow30_ma20": null,
        "date": "2025-09-09",
        "is_spike": false,
        "residualRate": null,
        "term_spread": 0.5856
      }
    ],
    "velocity": {
      "borrow_chg_1m": 0.6,
      "borrow_chg_1w": 0.95
    }
  }
}
```

## Fields

- `current.borrow30, borrow2yr, borrow_class, borrow_pctile`: The rate now.
- `spike_detected, spike_severity, squeeze_score`: The alert.
- `sector_comparison`: Versus the sector.
- `timeseries[].date, borrow30, is_spike`: The history.

## Errors

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

## Ask it in an MCP client

- Is NVDA hard to borrow right now?
- Which of my shorts has a borrow spike?
- Show the borrow rate history for GME.

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