# Crypto Options Gamma Exposure (GEX) API
> Where option-dealer hedging flows concentrate, and whether they damp or amplify price moves — computed live from Deribit's public option book, no key, nothing stored. Each open option carries gamma; when dealers are net long gamma they hedge against the move (buy dips, sell rips) and volatility is suppressed, and when they are net short gamma they hedge with the move and volatility is amplified. The gex endpoint aggregates Black-Scholes gamma across every listed expiry, weighted by open interest, into the net dealer gamma exposure (in dollars per 1% move), the call and put gamma split, the zero-gamma flip level — the spot price at which net GEX crosses zero, the boundary between the mean-reverting (positive-gamma) and trending (negative-gamma) regimes — where spot sits relative to it, and the strikes holding the most gamma (the pinning magnets and acceleration zones). The profile endpoint returns GEX by strike, across all expiries or one. The expiries endpoint returns net GEX per listed expiry. This is the dealer-gamma / GEX analytics cut for crypto — distinct from the max-pain / open-interest positioning view, the implied-vol skew surface, the raw option chain and the single-option Black-Scholes pricer in the catalogue. GEX uses the SpotGamma convention (dealers long calls / short puts, r=0) and Black-Scholes gamma from mark IV — a model estimate of positioning, documented as such, not exchange-reported dealer inventory. Currency is BTC, ETH, SOL or XRP.

## 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/gex-api/..."
```

## Pricing
- **Free** (Free) — 300 calls/Mo, 2 req/s
- **Starter** ($14/Mo) — 9,800 calls/Mo, 6 req/s
- **Pro** ($40/Mo) — 57,000 calls/Mo, 16 req/s
- **Business** ($91/Mo) — 320,000 calls/Mo, 40 req/s

## Endpoints

### Gamma Exposure

#### `GET /v1/expiries` — Net GEX per expiry

**Parameters:**
- `currency` (query, required, string) — BTC, ETH, SOL or XRP Example: `BTC`

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

**Response:**
```json
{
    "data": {
        "count": 12,
        "source": "Deribit",
        "currency": "BTC",
        "expiries": [
            {
                "gex": -7922157,
                "expiry": "12JUN26",
                "contracts": 74
            },
            {
                "gex": 2764125,
                "expiry": "13JUN26",
                "contracts": 33
            },
            {
                "gex": 631626,
                "expiry": "14JUN26",
                "contracts": 30
            },
            {
                "gex": 1280263,
                "expiry": "15JUN26",
                "contracts": 27
            },
            {
                "gex": 1670266,
                "expiry": "19JUN26",
                "contracts": 54
            },
            {
                "gex": -20794138,
                "expiry": "26JUN26",
                "contracts": 122
            },
            {
                "gex": -70006,
                "expiry": "3JUL26",
                "contracts": 22
            },
            {
                "gex": 10937244,
                "expiry": "31JUL26",
                "contracts": 105
            },
            {
                "gex": 2267649,
                "expiry": "28AUG26",
                "contracts": 79
            },
            {
                "gex": 1507145,
                "expiry": "25SEP26",
                "contracts": 111
            },
            {
                "gex": 3646619,
                "expiry": "25DEC26"
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/gex` — Net dealer GEX, regime & gamma flip

**Parameters:**
- `currency` (query, required, string) — BTC, ETH, SOL or XRP Example: `BTC`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gex-api/v1/gex?currency=BTC"
```

**Response:**
```json
{
    "data": {
        "note": "GEX is in USD per 1% move (SpotGamma-style: dealers long calls / short puts; r=0; gamma is Black-Scholes from mark IV). Above the flip net gamma is positive (mean-reverting); below it negative (trending). A model estimate of positioning, not exchange-reported inventory.",
        "source": "Deribit",
        "put_gex": -184762147,
        "call_gex": 181219456,
        "currency": "BTC",
        "total_gex": -3542691,
        "gamma_regime": "negative (dealers short gamma — moves amplified)",
        "zero_gamma_flip": 63638.95,
        "spot_vs_flip_pct": -0.2,
        "underlying_price": 63511.63,
        "top_gamma_strikes": [
            {
                "gex": -23525421,
                "strike": 60000
            },
            {
                "gex": 10922575,
                "strike": 80000
            },
            {
                "gex": -10312757,
                "strike": 62000
            },
            {
                "gex": -8293590,
                "strike": 64000
            },
            {
                "gex": -7150693,
                "strike": 55000
            },
            {
                "gex": 6235055,
                "strike": 70000
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-12T01:41:11.976Z",
        "request_id": "92590712-ee6f-4b81-8528-d64d8971012c"
    },
    "status": "ok",
    "message": "GEX retrieved successfully",
    "success": true
}
```

#### `GET /v1/profile` — GEX by strike

**Parameters:**
- `currency` (query, required, string) — BTC, ETH, SOL or XRP Example: `BTC`
- `expiry` (query, optional, string) — Limit to one Deribit expiry (default all) Example: `26JUN26`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/gex-api/v1/profile?currency=BTC&expiry=26JUN26"
```

**Response:**
```json
{
    "data": {
        "note": "net dealer GEX (USD per 1% move) by strike; positive strikes pin (suppress vol), negative strikes accelerate. moneyness_pct is the strike relative to spot.",
        "expiry": "26JUN26",
        "source": "Deribit",
        "profile": [
            {
                "gex": -6185,
                "strike": 20000,
                "moneyness_pct": -68.51
            },
            {
                "gex": -15046,
                "strike": 30000,
                "moneyness_pct": -52.76
            },
            {
                "gex": -149638,
                "strike": 40000,
                "moneyness_pct": -37.02
            },
            {
                "gex": -493499,
                "strike": 45000,
                "moneyness_pct": -29.15
            },
            {
                "gex": -1022354,
                "strike": 50000,
                "moneyness_pct": -21.27
            },
            {
                "gex": -573260,
                "strike": 52000,
                "moneyness_pct": -18.13
            },
            {
                "gex": -2794361,
                "strike": 55000,
                "moneyness_pct": -13.4
            },
            {
                "gex": -560346,
                "strike": 57000,
                "moneyness_pct": -10.25
            },
            {
                "gex": -2247640,
                "strike": 58000,
                "moneyness_pct": -8.68
            },
            {
            
…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "note": "currency is BTC, ETH, SOL or XRP. GEX uses the SpotGamma convention (dealers long calls / short puts, r=0) and Black-Scholes gamma from mark IV — a model estimate of positioning, not exchange-reported dealer inventory. Read fresh per call, nothing cached.",
        "source": "Deribit public API (deribit.com/api/v2/public, live)",
        "service": "gex-api",
        "endpoints": {
            "GET /v1/gex": "Net dealer GEX, gamma regime, zero-gamma flip and top gamma strikes for a currency (currency=BTC).",
            "GET /v1/meta": "This document.",
            "GET /v1/profile": "GEX by strike across all expiries, or one expiry (currency=BTC, expiry optional).",
            "GET /v1/expiries": "Net GEX per listed expiry (currency=BTC)."
        },
        "currencies": [
            "BTC",
            "ETH",
            "SOL",
            "XRP"
        ],
        "description": "Crypto options dealer gamma exposure (GEX), computed live from Deribit's public option book (no key, nothing stored). gex aggregates Black-Scholes gamma across all expiries, weighted by open interest, into net dealer GEX (USD per 1% move), the zero-gamma flip level (the boundary between the mean-reverting positive-gamma and trending negative-gamma regimes), where spot sits relative to it, and the strikes holding the most gamma. profile returns GEX by strike; expiries returns net GEX per expiry. The dealer-gamma / GEX analytics cut — distinct from max-pain/open
…(truncated, see openapi.json for full schema)
```


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