> ## 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 dated ETF premiums.

> Use this operation to publish ETF premium observations to a provider that the caller may edit. Each row
identifies a supported ETF and date and supplies a decimal premium greater than -1. A premium of zero is the
supported marker for removing the effective premium for that provider, ETF, and date. Unsupported identifiers,
duplicate rows in the request, and invalid premium values are reported and skipped while other valid rows can
be stored. Accepted rows replace observations with the same provider, ETF, and date before the response returns.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/MarketData/UploadEtfPremiums
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/UploadEtfPremiums:
    post:
      tags:
        - MarketData
      summary: Store dated ETF premiums.
      description: >-
        Use this operation to publish ETF premium observations to a provider
        that the caller may edit. Each row

        identifies a supported ETF and date and supplies a decimal premium
        greater than -1. A premium of zero is the

        supported marker for removing the effective premium for that provider,
        ETF, and date. Unsupported identifiers,

        duplicate rows in the request, and invalid premium values are reported
        and skipped while other valid rows can

        be stored. Accepted rows replace observations with the same provider,
        ETF, and date before the response returns.
      operationId: UploadEtfPremiums
      requestBody:
        description: >-
          The upload payload. Provide either `ProviderId` or
          `MarketDataEnvironmentName`, not both; omitting both selects the
          caller's organisation scope. Supply a non-empty `EtfPremiums`
          collection of ETF identifiers, date-only observation dates, and
          decimal premium values.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiUploadEtfPremiumsRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUploadEtfPremiumsRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiUploadEtfPremiumsRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiUploadEtfPremiumsRequest'
      responses:
        '200':
          description: >-
            Returns whether any ETF premiums were stored and errors for invalid
            providers, unsupported identifiers, duplicates, invalid premiums, or
            save failures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBaseResponseEnvelope'
        '400':
          description: BadRequest
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiUploadEtfPremiumsRequest:
      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
        etf_premiums:
          type: array
          items:
            $ref: '#/components/schemas/EtfPremium'
          description: Dated ETF premium observations to upload.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.ApiUploadEtfPremiumsRequest,
              Derivitec.Web.Core
      additionalProperties: false
      description: Submits dated ETF premium observations.
    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: []
    EtfPremium:
      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
        date:
          type: string
          description: Date of the ETF premium observation.
          format: date-time
        identifier:
          $ref: '#/components/schemas/InstrumentIdentifier'
        premium:
          type: number
          description: >-
            Decimal ETF premium greater than -1; zero removes the effective
            premium for the provider, ETF, and date.
          format: double
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.MarketData.EtfPremium, Derivitec.Web.Core
      additionalProperties: false
      description: Dated premium observation for an identified exchange-traded fund.
    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

````