gexbot api
general

futures conversion

Returns conversion parameters for translating a supported spot/index or ETF ticker onto its corresponding futures scale.

GET/futures/conversionClassic Tier

Returns conversion parameters for translating a supported spot/index or ETF ticker onto its corresponding futures scale. The service fits the terms on request from the most recent 30 matched 1-minute spot and futures points and caches the result for 10 minutes. When the current session has fewer than 30 matched minutes, the service fills the window from the end of the previous trading day. The service needs at least 10 matched minutes; otherwise it returns 404.

Every pair accepts the additive, multiplicative and affine models. The default is additive for a cash index and affine for an ETF. Any active gexbot data subscription (Classic, State, Orderflow or Quant) can call this endpoint. Send a gexbot API key in the Authorization header. A Research API key is not accepted.

Supported Pairs

Source TickerTarget FutureDefault Model
SPXESadditive
SPYESaffine
NDXNQadditive
QQQNQaffine
RUTRTYadditive
IWMRTYaffine
DIAYMaffine
GLDGCaffine
SLVSIaffine
USOCLaffine

Request

Example: /futures/conversion?ticker=SPX&future=ES&model=additive

Headers

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

Query Parameters

NameTypeRequiredDescription
tickerstringYesSource ticker to convert from (e.g. SPX, SPY, NDX, QQQ, RUT, IWM, DIA, GLD, SLV, USO).
futurestringYesFutures product code to convert to (e.g. ES, NQ, RTY, YM, GC, SI, CL).
modelstringNoConversion model: additive, multiplicative, or affine. Defaults to additive for SPX, NDX, and RUT. Defaults to affine for ETF and equity source tickers.

Response

FieldTypeDescription
future_contractstringThe active futures contract selected for the requested product, such as ESU6.
multipliernumberMultiplier for converting spot price and strikes to the respective futures scale.
additivenumberAdditive offset for converting spot price and strikes to the respective futures scale.
{
  "future_contract": "ESU6",
  "multiplier": 1,
  "additive": 12.345
}
{
  "type": "object",
  "properties": {
    "future_contract": {
      "type": "string",
      "description": "The active futures contract selected for the requested product."
    },
    "multiplier": {
      "type": "number",
      "format": "double",
      "description": "Multiplier for converting spot price and strikes to the respective futures scale."
    },
    "additive": {
      "type": "number",
      "format": "double",
      "description": "Additive offset for converting spot price and strikes to the respective futures scale."
    }
  },
  "required": ["future_contract", "multiplier", "additive"],
  "additionalProperties": false
}
type: object
properties:
  future_contract:
    type: string
    description: The active futures contract selected for the requested product.
  multiplier:
    type: number
    format: double
    description: Multiplier for converting spot price and strikes to the respective futures scale.
  additive:
    type: number
    format: double
    description: Additive offset for converting spot price and strikes to the respective futures scale.
required: [future_contract, multiplier, additive]
additionalProperties: false

Errors

StatusWhenExample body
400Missing or unknown ticker or future, a synthetic futures source ticker such as ES_SPX, an unsupported pair, an invalid model, a missing User-Agent header, or a missing Authorization header.{"error": "Unsupported futures conversion pair: SPX/NQ."} or {"error": "Synthetic futures tickers are not valid futures conversion source tickers."}
401The API key is not valid.(no body)
403The key is not a gexbot API key (no body), or the account has no active Classic or higher subscription.{"error": "User does not have permission to access this endpoint."}
404No spot data, no futures bars, no active contract, or fewer than 10 matched minutes are available. This can occur outside market hours.{"error": "No spot data available for conversion window."} or, for GC, SI and CL, {"error": "No active futures contract found for product."}
429The account exceeded its daily or monthly quota for this endpoint.{"error": "Rate limit exceeded."}
503The upstream futures data source did not answer, or another request is refreshing the same pair. Retry after a few seconds.{"error": "Futures conversion is currently being refreshed. Try again shortly."}

On this page