{
  "x402Version": 2,
  "id": 32346,
  "slug": "32346",
  "resource": "https://derivatives-pricer-production.up.railway.app/v1/option/price-from-surface",
  "description": "When to use: you already have an IV surface (k,T,σ) and need to price options on it — not invert premiums and not scalar σ. Interpolates total variance w=σ²T bilinear in log-moneyness k=ln(K/F); wingRule=flat_vol. Returns price, interpolated σ, k, F, BS Greeks. USDC exact on Solana/Base. Prefer /v1/option/price when σ is a single scalar.",
  "type": "http",
  "serviceName": "Price From Surface",
  "resourceType": "Market Data",
  "accepts": [
    {
      "scheme": "exact",
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "DCi9X5mmacNGLeJvCw9fdWgX3G8V4QquDn4EuXATkcYr",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "amount": "80000",
      "amountUsd": 0.08,
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x34cfb8bdbf16e4484b7da0ed31deed5771b16c8f",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "80000",
      "amountUsd": 0.08,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "properties": {
          "book": {
            "type": "object"
          },
          "computedAt": {
            "type": "string"
          },
          "requestId": {
            "type": "string"
          },
          "results": {
            "type": "array"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "results",
          "warnings",
          "requestId",
          "computedAt"
        ],
        "type": "object"
      },
      "type": {
        "type": "string"
      }
    },
    "required": [
      "type"
    ],
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "dividendYield": 0,
            "interpolation": "total_variance_bilinear",
            "options": [
              {
                "optionType": "call",
                "quantity": 1,
                "strike": 100,
                "timeToExpiry": 1,
                "underlying": 100
              }
            ],
            "rate": 0.05,
            "surface": [
              {
                "iv": 0.22,
                "k": -0.1,
                "timeToExpiry": 0.25
              },
              {
                "iv": 0.2,
                "k": 0,
                "timeToExpiry": 0.25
              },
              {
                "iv": 0.23,
                "k": 0.1,
                "timeToExpiry": 0.25
              },
              {
                "iv": 0.21,
                "k": -0.1,
                "timeToExpiry": 0.5
              },
              {
                "iv": 0.2,
                "k": 0,
                "timeToExpiry": 0.5
              },
              {
                "iv": 0.22,
                "k": 0.1,
                "timeToExpiry": 0.5
              },
              {
                "iv": 0.205,
                "k": -0.1,
                "timeToExpiry": 1
              },
              {
                "iv": 0.2,
                "k": 0,
                "timeToExpiry": 1
              },
              {
                "iv": 0.215,
                "k": 0.1,
                "timeToExpiry": 1
              }
            ],
            "surfaceConvention": "log_moneyness_forward",
            "wingRule": "flat_vol"
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "book": {
              "greeks": {
                "delta": 0.63683059,
                "gamma": 0.01876202,
                "rho": 53.23248343,
                "theta": -6.41402764,
                "vega": 37.52403469
              },
              "mtm": 10.45057562
            },
            "computedAt": "2026-01-01T00:00:00.000Z",
            "model": "black-scholes-merton+surface-tv-bilinear",
            "optionStyle": "european",
            "requestId": "00000000-0000-4000-8000-000000000006",
            "results": [
              {
                "contribution": 10.45057562,
                "forward": 100,
                "greeks": {
                  "delta": 0.63683059,
                  "gamma": 0.01876202,
                  "rho": 53.23248343,
                  "theta": -6.41402764,
                  "vega": 37.52403469
                },
                "impliedVol": 0.2,
                "index": 0,
                "k": 0,
                "optionType": "call",
                "price": 10.45057562,
                "quantity": 1,
                "strike": 100,
                "timeToExpiry": 1,
                "underlying": 100
              }
            ],
            "surfaceMeta": {
              "convention": "log_moneyness_forward",
              "interpolation": "total_variance_bilinear",
              "kCount": 3,
              "pointCount": 9,
              "tCount": 3,
              "wingRule": "flat_vol"
            },
            "units": {
              "delta": "dV/dS (share equivalent) at sticky/interpolated σ",
              "gamma": "d²V/dS²",
              "price": "option value in spot currency units",
              "rho": "dV/dr per 1.0 absolute rate (not per 1%)",
              "theta": "dV/dT per year (not per day)",
              "vega": "dV/dσ per 1.0 absolute volatility (not per 1%)"
            },
            "warnings": []
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "additionalProperties": false,
                "description": "Price European options on a submitted IV surface via total-variance bilinear interpolation in log-moneyness k=ln(K/F).",
                "properties": {
                  "dividendYield": {
                    "minimum": 0,
                    "type": "number"
                  },
                  "interpolation": {
                    "const": "total_variance_bilinear",
                    "type": "string"
                  },
                  "optionStyle": {
                    "default": "european",
                    "enum": [
                      "european",
                      "american"
                    ],
                    "type": "string"
                  },
                  "options": {
                    "maxItems": 50,
                    "minItems": 1,
                    "type": "array"
                  },
                  "rate": {
                    "type": "number"
                  },
                  "surface": {
                    "maxItems": 200,
                    "minItems": 1,
                    "type": "array"
                  },
                  "surfaceConvention": {
                    "const": "log_moneyness_forward",
                    "type": "string"
                  },
                  "wingRule": {
                    "const": "flat_vol",
                    "type": "string"
                  }
                },
                "required": [
                  "surfaceConvention",
                  "rate",
                  "surface",
                  "options"
                ],
                "title": "PriceFromSurfaceRequest",
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "book": {
                    "type": "object"
                  },
                  "computedAt": {
                    "type": "string"
                  },
                  "requestId": {
                    "type": "string"
                  },
                  "results": {
                    "type": "array"
                  },
                  "warnings": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "results",
                  "warnings",
                  "requestId",
                  "computedAt"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "mark",
    "hedge_greeks",
    "multi-chain",
    "usdc",
    "smile",
    "bazaar"
  ],
  "sourceHost": "derivatives-pricer-production.up.railway.app",
  "lastUpdated": "2026-10-10T23:48:40.922Z",
  "quality": {
    "calls30d": 1,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-10-10T23:48:40.743Z"
  },
  "metadata": {
    "serviceName": "Price From Surface",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "dividendYield": 0,
              "interpolation": "total_variance_bilinear",
              "options": [
                {
                  "optionType": "call",
                  "quantity": 1,
                  "strike": 100,
                  "timeToExpiry": 1,
                  "underlying": 100
                }
              ],
              "rate": 0.05,
              "surface": [
                {
                  "iv": 0.22,
                  "k": -0.1,
                  "timeToExpiry": 0.25
                },
                {
                  "iv": 0.2,
                  "k": 0,
                  "timeToExpiry": 0.25
                },
                {
                  "iv": 0.23,
                  "k": 0.1,
                  "timeToExpiry": 0.25
                },
                {
                  "iv": 0.21,
                  "k": -0.1,
                  "timeToExpiry": 0.5
                },
                {
                  "iv": 0.2,
                  "k": 0,
                  "timeToExpiry": 0.5
                },
                {
                  "iv": 0.22,
                  "k": 0.1,
                  "timeToExpiry": 0.5
                },
                {
                  "iv": 0.205,
                  "k": -0.1,
                  "timeToExpiry": 1
                },
                {
                  "iv": 0.2,
                  "k": 0,
                  "timeToExpiry": 1
                },
                {
                  "iv": 0.215,
                  "k": 0.1,
                  "timeToExpiry": 1
                }
              ],
              "surfaceConvention": "log_moneyness_forward",
              "wingRule": "flat_vol"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "book": {
                "greeks": {
                  "delta": 0.63683059,
                  "gamma": 0.01876202,
                  "rho": 53.23248343,
                  "theta": -6.41402764,
                  "vega": 37.52403469
                },
                "mtm": 10.45057562
              },
              "computedAt": "2026-01-01T00:00:00.000Z",
              "model": "black-scholes-merton+surface-tv-bilinear",
              "optionStyle": "european",
              "requestId": "00000000-0000-4000-8000-000000000006",
              "results": [
                {
                  "contribution": 10.45057562,
                  "forward": 100,
                  "greeks": {
                    "delta": 0.63683059,
                    "gamma": 0.01876202,
                    "rho": 53.23248343,
                    "theta": -6.41402764,
                    "vega": 37.52403469
                  },
                  "impliedVol": 0.2,
                  "index": 0,
                  "k": 0,
                  "optionType": "call",
                  "price": 10.45057562,
                  "quantity": 1,
                  "strike": 100,
                  "timeToExpiry": 1,
                  "underlying": 100
                }
              ],
              "surfaceMeta": {
                "convention": "log_moneyness_forward",
                "interpolation": "total_variance_bilinear",
                "kCount": 3,
                "pointCount": 9,
                "tCount": 3,
                "wingRule": "flat_vol"
              },
              "units": {
                "delta": "dV/dS (share equivalent) at sticky/interpolated σ",
                "gamma": "d²V/dS²",
                "price": "option value in spot currency units",
                "rho": "dV/dr per 1.0 absolute rate (not per 1%)",
                "theta": "dV/dT per year (not per day)",
                "vega": "dV/dσ per 1.0 absolute volatility (not per 1%)"
              },
              "warnings": []
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "additionalProperties": false,
                  "description": "Price European options on a submitted IV surface via total-variance bilinear interpolation in log-moneyness k=ln(K/F).",
                  "properties": {
                    "dividendYield": {
                      "minimum": 0,
                      "type": "number"
                    },
                    "interpolation": {
                      "const": "total_variance_bilinear",
                      "type": "string"
                    },
                    "optionStyle": {
                      "default": "european",
                      "enum": [
                        "european",
                        "american"
                      ],
                      "type": "string"
                    },
                    "options": {
                      "maxItems": 50,
                      "minItems": 1,
                      "type": "array"
                    },
                    "rate": {
                      "type": "number"
                    },
                    "surface": {
                      "maxItems": 200,
                      "minItems": 1,
                      "type": "array"
                    },
                    "surfaceConvention": {
                      "const": "log_moneyness_forward",
                      "type": "string"
                    },
                    "wingRule": {
                      "const": "flat_vol",
                      "type": "string"
                    }
                  },
                  "required": [
                    "surfaceConvention",
                    "rate",
                    "surface",
                    "options"
                  ],
                  "title": "PriceFromSurfaceRequest",
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "book": {
                      "type": "object"
                    },
                    "computedAt": {
                      "type": "string"
                    },
                    "requestId": {
                      "type": "string"
                    },
                    "results": {
                      "type": "array"
                    },
                    "warnings": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "results",
                    "warnings",
                    "requestId",
                    "computedAt"
                  ],
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "derivatives-pricer-production.up.railway.app",
    "manifest_name": "derivatives-pricer-production.up.railway.app",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "book": {
      "greeks": {
        "delta": 0.63683059,
        "gamma": 0.01876202,
        "rho": 53.23248343,
        "theta": -6.41402764,
        "vega": 37.52403469
      },
      "mtm": 10.45057562
    },
    "computedAt": "2026-01-01T00:00:00.000Z",
    "model": "black-scholes-merton+surface-tv-bilinear",
    "optionStyle": "european",
    "requestId": "00000000-0000-4000-8000-000000000006",
    "results": [
      {
        "contribution": 10.45057562,
        "forward": 100,
        "greeks": {
          "delta": 0.63683059,
          "gamma": 0.01876202,
          "rho": 53.23248343,
          "theta": -6.41402764,
          "vega": 37.52403469
        },
        "impliedVol": 0.2,
        "index": 0,
        "k": 0,
        "optionType": "call",
        "price": 10.45057562,
        "quantity": 1,
        "strike": 100,
        "timeToExpiry": 1,
        "underlying": 100
      }
    ],
    "surfaceMeta": {
      "convention": "log_moneyness_forward",
      "interpolation": "total_variance_bilinear",
      "kCount": 3,
      "pointCount": 9,
      "tCount": 3,
      "wingRule": "flat_vol"
    },
    "units": {
      "delta": "dV/dS (share equivalent) at sticky/interpolated σ",
      "gamma": "d²V/dS²",
      "price": "option value in spot currency units",
      "rho": "dV/dr per 1.0 absolute rate (not per 1%)",
      "theta": "dV/dT per year (not per day)",
      "vega": "dV/dσ per 1.0 absolute volatility (not per 1%)"
    },
    "warnings": []
  }
}