gexbot api
classic

gex major levels

Key GEX levels (Zero Gamma, Major Positive/Negative GEX by OI and Volume) from the classic GEX model. A slim version of the GEX chain endpoint.

GET/{ticker}/classic/{category}/majorsClassic Tier

chart

Powers the gexbot classic chart.

Provides the key GEX levels (Zero Gamma, Major Positive/Negative GEX by OI and Volume) from the classic GEX model. This is a slimmed-down version of the main GEX chain endpoint.

Subscription

Requires a Classic subscription or higher.

Request

Example: /SPX/classic/gex_full/majors

Headers

NameTypeDescription
AuthorizationstringRequired. Format: "Bearer <YOUR_API_KEY>"
User-AgentstringRequired. Identify your client application.
AcceptstringRequired. Set to "application/json".

Path parameters

NameTypeDescription
tickerstringDesired ticker symbol (e.g., SPX).
categorystringClassic category: full, gex_full, zero, gex_zero, one, or gex_one.

Response

FieldTypeDescription
timestampintegerThe Unix timestamp of when the data was generated.
tickerstringThe ticker symbol for the requested asset.
spotnumberThe spot price of the underlying asset. null when spot data is not available to the caller.
mpos_volnumberThe strike with the most positive GEX by volume.
mpos_oinumberThe strike with the most positive GEX by open interest.
mneg_volnumberThe strike with the most negative GEX by volume.
mneg_oinumberThe strike with the most negative GEX by open interest.
zero_gammanumberThe center of the options complex, according to a spline interpolation on gex by volume.
net_gex_volnumberTotal net gamma exposure by volume.
net_gex_oinumberTotal net gamma exposure by open interest.
{
  "timestamp": 1753283591,
  "ticker": "SPX",
  "spot": 6326.45,
  "mpos_vol": 6339.92,
  "mpos_oi": 6400,
  "mneg_vol": 6300,
  "mneg_oi": 6200,
  "zero_gamma": 6323.39,
  "net_gex_vol": 41199.07077,
  "net_gex_oi": 57505.37699
}
{
  "type": "object",
  "properties": {
    "timestamp": {
      "type": "integer",
      "format": "int64"
    },
    "ticker": {
      "type": "string",
      "minLength": 2,
      "maxLength": 6
    },
    "spot": {
      "type": ["number", "null"],
      "format": "double"
    },
    "mpos_vol": {
      "type": "number"
    },
    "mpos_oi": {
      "type": "number"
    },
    "mneg_vol": {
      "type": "number"
    },
    "mneg_oi": {
      "type": "number"
    },
    "zero_gamma": {
      "type": "number"
    },
    "net_gex_vol": {
      "type": "number"
    },
    "net_gex_oi": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
type: object
properties:
  timestamp:
    type: integer
    format: int64
  ticker:
    type: string
    minLength: 2
    maxLength: 6
  spot:
    type: [number, 'null']
    format: double
  mpos_vol:
    type: number
  mpos_oi:
    type: number
  mneg_vol:
    type: number
  mneg_oi:
    type: number
  zero_gamma:
    type: number
  net_gex_vol:
    type: number
  net_gex_oi:
    type: number
additionalProperties: false

Errors

Most error responses have the body {"error": "<message>"}. A 401 response has no body. A 403 response from the API key product check also has no body.

StatusBodyWhen
400{"error": "User-Agent not found."}The request has no User-Agent header.
400{"error": "Authorization header not found."}The request has no Authorization header.
400{"error": "Invalid ticker format."} or {"error": "Unknown ticker symbol: <ticker>"}The ticker is not a known symbol.
400{"error": "Invalid category package combination."}The category is not a classic category.
401(no body)The API key is not valid.
403{"error": "User is not subscribed."}The account has no Classic subscription or higher.
403{"error": "User does not have permission to access this endpoint."}The account does not have REST API access.
403{"error": "Commercial child access is suspended."}The commercial seat that owns the API key is suspended.
429{"error": "Rate limit exceeded."}The account has used its quota for this endpoint. See rate limits.
500{"error": "Failed to get redis chart data: null or zero length"}, {"error": "Failed to get chart data."} or {"error": "Unexpected error occurred."}The server could not read the data. Retry the request.

On this page