> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Store parameterised volatility surfaces for equities.

> Use this operation to publish SVI or spline equity volatility surfaces to a non-default provider that the
caller may edit. Each surface requires a supported equity, date-only reference date, distinct benchmark
maturities in days, and one forward factor per maturity. SVI `Vols` are decimal volatility values
(`0.20` means 20%). Spline `VarGrid` entries are total variances (decimal volatility squared times
year fraction), not percentage volatility values. SVI parameter vectors, or spline strike and variance grids,
must align with those maturities. Unsupported or invalid surfaces are reported and skipped; identical
duplicates are collapsed, while conflicting surfaces for the same equity and date stop the upload. Accepted
surfaces replace the same provider, equity, and reference-date contributions before the response returns.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/MarketData/UploadEquityVolSurfaces
openapi: 3.0.4
info:
  title: Derivitec Api 1.0
  version: '1.0'
servers:
  - url: https://api.riskportal.activeviam.com
security:
  - oauth2: []
  - apikey: []
tags:
  - name: AdminUser
  - name: AtotiReport
  - name: AtotiSession
  - name: BloombergOAuth
  - name: Bond
  - name: BondYieldCurvePage
  - name: BookAccess
  - name: Books
  - name: Commodity
  - name: Counterparties
  - name: Currencies
  - name: Equity
  - name: EquityDividend
  - name: EquityPage
  - name: FeatureFlag
  - name: Fx
  - name: FxPage
  - name: GroupAccess
  - name: Home
  - name: LegacyPosition
  - name: MarketData
  - name: MarketDataProvider
  - name: MarketDataProviderAccess
  - name: Meta
  - name: Notification
  - name: Organisation
  - name: PnLReport
  - name: PortfolioAccess
  - name: Portfolios
  - name: Position
  - name: PositionFilter
  - name: PricingEnvironment
  - name: PricingEnvironmentAccess
  - name: RateAsset
  - name: RateAssetPage
  - name: Report
  - name: ReportDefinition
  - name: ReportHistoryLauncherQuery
  - name: ReportLauncher
  - name: ReportQuery
  - name: ReportQueryViewUser
  - name: ReportRestriction
  - name: ReportView
  - name: RiskReport
  - name: Tradable
  - name: TradeBooking
  - name: User
  - name: VarReport
  - name: VarReportQuery
  - name: YieldCurvePage
paths:
  /api/MarketData/UploadEquityVolSurfaces:
    post:
      tags:
        - MarketData
      summary: Store parameterised volatility surfaces for equities.
      description: >-
        Use this operation to publish SVI or spline equity volatility surfaces
        to a non-default provider that the

        caller may edit. Each surface requires a supported equity, date-only
        reference date, distinct benchmark

        maturities in days, and one forward factor per maturity. SVI `Vols` are
        decimal volatility values

        (`0.20` means 20%). Spline `VarGrid` entries are total variances
        (decimal volatility squared times

        year fraction), not percentage volatility values. SVI parameter vectors,
        or spline strike and variance grids,

        must align with those maturities. Unsupported or invalid surfaces are
        reported and skipped; identical

        duplicates are collapsed, while conflicting surfaces for the same equity
        and date stop the upload. Accepted

        surfaces replace the same provider, equity, and reference-date
        contributions before the response returns.
      operationId: UploadEquityVolSurfaces
      requestBody:
        description: >-
          The upload payload. Provide either `ProviderId` or
          `MarketDataEnvironmentName`, not both; omitting both selects the
          caller's organisation scope. `VolSurfaces` must be non-empty and
          contain supported SVI or spline surface objects with the required
          aligned vectors and spot reference; SVI `Vols` use decimal volatility
          units and spline `VarGrid` uses total variance.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiUploadEquityVolSurfacesRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUploadEquityVolSurfacesRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiUploadEquityVolSurfacesRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiUploadEquityVolSurfacesRequest'
      responses:
        '200':
          description: >-
            Returns whether any surfaces were stored and errors for invalid
            providers, identifiers, vector shapes, parameters, or conflicting
            duplicates.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBaseResponseEnvelope'
        '400':
          description: BadRequest
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiUploadEquityVolSurfacesRequest:
      required:
        - $type
      type: object
      properties:
        market_data_environment_name:
          type: string
          description: >-
            Name of the market-data environment to use. Supply either this name
            or `provider_id`, not both.
          nullable: true
          example: Example market data
        provider_id:
          type: string
          description: >-
            Opaque identifier of the market-data provider to use. Supply either
            this identifier or `market_data_environment_name`, not both.
          nullable: true
        vol_surfaces:
          type: array
          items:
            $ref: '#/components/schemas/EquityVolSurface'
          description: Equity volatility surfaces to upload.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.ApiUploadEquityVolSurfacesRequest,
              Derivitec.Web.Core
      additionalProperties: false
      description: Submits equity volatility surfaces.
    ApiBaseResponseEnvelope:
      required:
        - $type
      type: object
      properties:
        is_success:
          type: boolean
          description: >-
            Whether the operation completed successfully. The default is `true`;
            error outcomes set it to `false`.
          example: true
        error_messages:
          type: array
          items:
            type: string
          description: >-
            Messages explaining operation-level failures. The collection is
            empty by default.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.ApiBaseResponse, Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Common operation outcome containing a success indicator and any error
        messages.
      example:
        $type: Derivitec.Web.Core.ApiBaseResponse, Derivitec.Web.Core
        is_success: true
        error_messages: []
    EquityVolSurface:
      description: >-
        Equity volatility surface with benchmark coordinates and a spot
        reference.
      discriminator:
        propertyName: $type
        mapping:
          Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core: '#/components/schemas/EquityVolSurfaceMintlifyShape'
          Derivitec.Web.Core.MarketData.EquityVolSurfaceSpline, Derivitec.Web.Core: '#/components/schemas/EquityVolSurfaceSpline'
          Derivitec.Web.Core.MarketData.EquityVolSurfaceSvi, Derivitec.Web.Core: '#/components/schemas/EquityVolSurfaceSvi'
      oneOf:
        - $ref: '#/components/schemas/EquityVolSurfaceMintlifyShape'
        - $ref: '#/components/schemas/EquityVolSurfaceSpline'
        - $ref: '#/components/schemas/EquityVolSurfaceSvi'
    EquityVolSurfaceMintlifyShape:
      required:
        - $type
      type: object
      properties:
        provider_id:
          type: string
          description: >-
            Market-data provider code recorded as the source of the
            contribution. Defaults to Derivitec.
          nullable: true
        derivitec_created:
          type: string
          description: Timestamp at which the market-data record was created.
        derivitec_modified:
          type: string
          description: Optional timestamp of the record's latest modification.
          nullable: true
        uploaded_date_time:
          type: string
          description: >-
            Optional timestamp at which the contribution was uploaded.
            UploadRateAssets ignores the supplied value on each rate asset and
            stores the current UTC time.
          nullable: true
        derivitec_modified_by:
          type: string
          description: >-
            Principal recorded as the latest modifier. UploadRateAssets ignores
            the supplied value on each rate asset and stores the authenticated
            user identifier.
          nullable: true
        uploaded_by:
          type: string
          description: >-
            Principal recorded as the uploader. UploadRateAssets ignores the
            supplied value on each rate asset and stores the authenticated user
            identifier.
          nullable: true
        rolled:
          type: boolean
          description: Whether the contribution has been rolled.
          example: false
        asset_name:
          $ref: '#/components/schemas/InstrumentIdentifier'
        benchmark_fwd_factors:
          type: array
          items:
            type: number
            format: double
          description: >-
            Benchmark forward-factor values, one corresponding by position to
            each benchmark maturity.
          nullable: true
        benchmark_maturities:
          type: array
          items:
            type: integer
            format: int32
          description: >-
            Distinct benchmark maturity offsets from ReferenceDate, in calendar
            days.
          nullable: true
        reference_date:
          type: string
          description: Reference date of the equity volatility surface.
          format: date-time
        spot_ref:
          type: number
          description: Spot reference carried by the equity volatility surface.
          format: double
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.MarketData.EquityVolSurface, Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Equity volatility surface with benchmark coordinates and a spot
        reference.
    EquityVolSurfaceSpline:
      required:
        - $type
      type: object
      properties:
        provider_id:
          type: string
          description: >-
            Market-data provider code recorded as the source of the
            contribution. Defaults to Derivitec.
          nullable: true
        derivitec_created:
          type: string
          description: Timestamp at which the market-data record was created.
        derivitec_modified:
          type: string
          description: Optional timestamp of the record's latest modification.
          nullable: true
        uploaded_date_time:
          type: string
          description: >-
            Optional timestamp at which the contribution was uploaded.
            UploadRateAssets ignores the supplied value on each rate asset and
            stores the current UTC time.
          nullable: true
        derivitec_modified_by:
          type: string
          description: >-
            Principal recorded as the latest modifier. UploadRateAssets ignores
            the supplied value on each rate asset and stores the authenticated
            user identifier.
          nullable: true
        uploaded_by:
          type: string
          description: >-
            Principal recorded as the uploader. UploadRateAssets ignores the
            supplied value on each rate asset and stores the authenticated user
            identifier.
          nullable: true
        rolled:
          type: boolean
          description: Whether the contribution has been rolled.
          example: false
        asset_name:
          $ref: '#/components/schemas/InstrumentIdentifier'
        benchmark_fwd_factors:
          type: array
          items:
            type: number
            format: double
          description: >-
            Benchmark forward-factor values, one corresponding by position to
            each benchmark maturity.
          nullable: true
        benchmark_maturities:
          type: array
          items:
            type: integer
            format: int32
          description: >-
            Distinct benchmark maturity offsets from ReferenceDate, in calendar
            days.
          nullable: true
        reference_date:
          type: string
          description: Reference date of the equity volatility surface.
          format: date-time
        spot_ref:
          type: number
          description: Spot reference carried by the equity volatility surface.
          format: double
        var_grid:
          type: array
          items:
            type: array
            items:
              type: number
              format: double
          description: The volatility grid (one vector per maturity)
          nullable: true
        strike_grid:
          type: array
          items:
            type: array
            items:
              type: number
              format: double
          description: The strike grid (one vector per maturity)
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.EquityVolSurfaceSpline,
              Derivitec.Web.Core
      additionalProperties: false
      description: The equity vol surface.
    EquityVolSurfaceSvi:
      required:
        - $type
      type: object
      properties:
        provider_id:
          type: string
          description: >-
            Market-data provider code recorded as the source of the
            contribution. Defaults to Derivitec.
          nullable: true
        derivitec_created:
          type: string
          description: Timestamp at which the market-data record was created.
        derivitec_modified:
          type: string
          description: Optional timestamp of the record's latest modification.
          nullable: true
        uploaded_date_time:
          type: string
          description: >-
            Optional timestamp at which the contribution was uploaded.
            UploadRateAssets ignores the supplied value on each rate asset and
            stores the current UTC time.
          nullable: true
        derivitec_modified_by:
          type: string
          description: >-
            Principal recorded as the latest modifier. UploadRateAssets ignores
            the supplied value on each rate asset and stores the authenticated
            user identifier.
          nullable: true
        uploaded_by:
          type: string
          description: >-
            Principal recorded as the uploader. UploadRateAssets ignores the
            supplied value on each rate asset and stores the authenticated user
            identifier.
          nullable: true
        rolled:
          type: boolean
          description: Whether the contribution has been rolled.
          example: false
        asset_name:
          $ref: '#/components/schemas/InstrumentIdentifier'
        benchmark_fwd_factors:
          type: array
          items:
            type: number
            format: double
          description: >-
            Benchmark forward-factor values, one corresponding by position to
            each benchmark maturity.
          nullable: true
        benchmark_maturities:
          type: array
          items:
            type: integer
            format: int32
          description: >-
            Distinct benchmark maturity offsets from ReferenceDate, in calendar
            days.
          nullable: true
        reference_date:
          type: string
          description: Reference date of the equity volatility surface.
          format: date-time
        spot_ref:
          type: number
          description: Spot reference carried by the equity volatility surface.
          format: double
        call_wings:
          type: array
          items:
            type: number
            format: double
          description: >-
            Non-negative call-wing parameter values, one corresponding by
            position to each benchmark maturity.
          nullable: true
        put_wings:
          type: array
          items:
            type: number
            format: double
          description: >-
            Non-negative put-wing parameter values, one corresponding by
            position to each benchmark maturity.
          nullable: true
        skews:
          type: array
          items:
            type: number
            format: double
          description: >-
            Skew parameter values, one corresponding by position to each
            benchmark maturity.
          nullable: true
        smiles:
          type: array
          items:
            type: number
            format: double
          description: >-
            Smile parameter values, one corresponding by position to each
            benchmark maturity.
          nullable: true
        vols:
          type: array
          items:
            type: number
            format: double
          description: >-
            Volatility values expressed as decimals, where 0.20 means 20%, with
            one value corresponding by position to each benchmark maturity.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.EquityVolSurfaceSvi,
              Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Equity volatility surface carrying wing, skew, smile, and volatility
        parameter sequences.
    InstrumentIdentifier:
      description: >-
        Instrument code qualified by an identifier namespace and optional market
        code.
      discriminator:
        propertyName: $type
        mapping:
          Derivitec.Web.Core.MarketData.InstrumentIdentifier, Derivitec.Web.Core: '#/components/schemas/InstrumentIdentifierMintlifyShape'
          Derivitec.Web.Core.MarketData.InstrumentInfo, Derivitec.Web.Core: '#/components/schemas/InstrumentInfo'
      oneOf:
        - $ref: '#/components/schemas/InstrumentIdentifierMintlifyShape'
        - $ref: '#/components/schemas/InstrumentInfo'
    InstrumentIdentifierMintlifyShape:
      required:
        - $type
      type: object
      properties:
        code:
          type: string
          description: Instrument code interpreted in the selected identifier namespace.
          nullable: true
        identifier_type:
          enum:
            - Derivitec
            - Ric
            - Bloomberg
            - Isin
            - Figi
            - Sedol
            - RedCode
            - RedPairCode
            - BloombergYellow
            - XIgniteCode
            - CBondsId
            - EdiSecId
            - EdiSymbol
            - Cusip
            - NotSet
          type: string
          description: Namespace that determines how the instrument code is interpreted.
        market_identification_code:
          type: string
          description: >-
            Optional market identification code that further qualifies the
            instrument code.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.InstrumentIdentifier,
              Derivitec.Web.Core
      additionalProperties: false
      description: >-
        Instrument code qualified by an identifier namespace and optional market
        code.
    InstrumentInfo:
      required:
        - $type
      type: object
      properties:
        code:
          type: string
          description: Instrument code interpreted in the selected identifier namespace.
          nullable: true
        identifier_type:
          enum:
            - Derivitec
            - Ric
            - Bloomberg
            - Isin
            - Figi
            - Sedol
            - RedCode
            - RedPairCode
            - BloombergYellow
            - XIgniteCode
            - CBondsId
            - EdiSecId
            - EdiSymbol
            - Cusip
            - NotSet
          type: string
          description: Namespace that determines how the instrument code is interpreted.
        market_identification_code:
          type: string
          description: >-
            Optional market identification code that further qualifies the
            instrument code.
          nullable: true
        name:
          type: string
          description: Human-readable name of the identified instrument.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.MarketData.InstrumentInfo, Derivitec.Web.Core
      additionalProperties: false
      description: Instrument identifier with a human-readable instrument name.
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth2 access-token requested from AWS Cognito and provided as a Auth
        Bearer header
      flows:
        implicit:
          authorizationUrl: https://auth.riskportal.derivitec.com/oauth2/authorize
          scopes: {}
    apikey:
      type: apiKey
      description: API-Key requested via the site and provided as a header
      name: x-api-key
      in: header

````