> ## 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 dividend-index volatility surfaces.

> Use this operation to publish parameterised volatility surfaces to a non-default provider that the caller
may edit. A surface can identify a dividend index (or supported equity) directly, or identify one dividend
future through `FuturesCode`. Its date-only reference date and SVI benchmark, volatility, skew, smile,
and wing vectors describe the contribution; `Vols` are decimal volatility values (`0.20` means 20%).
Unsupported surfaces are skipped; identical duplicates for the same instrument and date are collapsed,
while conflicting duplicates stop the upload. Accepted surfaces
replace contributions with the same provider, instrument, futures expiry where applicable, and reference date.
Processing completes before the response is returned.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/MarketData/UploadDividendIndexVolSurfaces
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/UploadDividendIndexVolSurfaces:
    post:
      tags:
        - MarketData
      summary: Store dividend-index volatility surfaces.
      description: >-
        Use this operation to publish parameterised volatility surfaces to a
        non-default provider that the caller

        may edit. A surface can identify a dividend index (or supported equity)
        directly, or identify one dividend

        future through `FuturesCode`. Its date-only reference date and SVI
        benchmark, volatility, skew, smile,

        and wing vectors describe the contribution; `Vols` are decimal
        volatility values (`0.20` means 20%).

        Unsupported surfaces are skipped; identical duplicates for the same
        instrument and date are collapsed,

        while conflicting duplicates stop the upload. Accepted surfaces

        replace contributions with the same provider, instrument, futures expiry
        where applicable, and reference date.

        Processing completes before the response is returned.
      operationId: UploadDividendIndexVolSurfaces
      requestBody:
        description: >-
          The upload payload. Provide either `ProviderId` or
          `MarketDataEnvironmentName`, not both; omitting both selects the
          caller's organisation scope. `VolSurfaces` must contain at least one
          surface with a dividend-index identifier or futures code, reference
          date, spot reference, and aligned SVI parameter vectors; `Vols` values
          use decimal volatility units.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiUploadDividendIndexVolSurfacesRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUploadDividendIndexVolSurfacesRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiUploadDividendIndexVolSurfacesRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiUploadDividendIndexVolSurfacesRequest'
      responses:
        '200':
          description: >-
            Returns whether any surfaces were stored and errors for invalid
            providers, unsupported or ambiguous identifiers, conflicting
            duplicates, or invalid surface data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBaseResponseEnvelope'
        '400':
          description: BadRequest
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiUploadDividendIndexVolSurfacesRequest:
      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/DividendIndexVolSurface'
          description: Dividend-index volatility surfaces to upload.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.ApiUploadDividendIndexVolSurfacesRequest,
              Derivitec.Web.Core
      additionalProperties: false
      description: Submits dividend-index 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: []
    DividendIndexVolSurface:
      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
        benchmark_fwd_factors:
          type: array
          items:
            type: number
            format: double
          description: >-
            Positive benchmark forward-factor values, one corresponding by
            position to each benchmark maturity.
          nullable: true
        benchmark_maturities:
          type: array
          items:
            type: integer
            format: int32
          description: >-
            Non-empty, non-negative, strictly increasing benchmark maturity
            offsets from ReferenceDate, in calendar days.
          nullable: true
        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
        reference_date:
          type: string
          description: Reference date of the volatility surface.
          format: date-time
        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
        spot_ref:
          type: number
          description: Positive spot reference carried by the volatility surface.
          format: double
        vols:
          type: array
          items:
            type: number
            format: double
          description: >-
            Volatility observations expressed as decimals, where 0.20 means 20%,
            with one value corresponding by position to each benchmark maturity.
          nullable: true
        dividend_index_id:
          $ref: '#/components/schemas/InstrumentIdentifier'
        futures_code:
          $ref: '#/components/schemas/InstrumentIdentifier'
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.DividendIndexVolSurface,
              Derivitec.Web.Core
      additionalProperties: false
      description: Dividend-index volatility surface, optionally scoped to a futures code.
    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

````