> ## 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 survival curves for a provider.

> Use this operation to publish issuer survival-probability curves to a non-Derivitec provider that the
caller may edit. Maturities are day offsets from the date-only `ReferenceDate` and must align with the
dimensionless `SurvivalProbabilities` values. Identical duplicate curves for the same issuer, currency,
debt/default type, and date are collapsed; conflicting duplicates reject the upload. Unsupported issuers
are reported while other accepted curves can replace their provider-scoped contributions before return.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/MarketData/UploadSurvivalCurves
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/UploadSurvivalCurves:
    post:
      tags:
        - MarketData
      summary: Store survival curves for a provider.
      description: >-
        Use this operation to publish issuer survival-probability curves to a
        non-Derivitec provider that the

        caller may edit. Maturities are day offsets from the date-only
        `ReferenceDate` and must align with the

        dimensionless `SurvivalProbabilities` values. Identical duplicate curves
        for the same issuer, currency,

        debt/default type, and date are collapsed; conflicting duplicates reject
        the upload. Unsupported issuers

        are reported while other accepted curves can replace their
        provider-scoped contributions before return.
      operationId: UploadSurvivalCurves
      requestBody:
        description: >-
          The upload payload. Provide either `ProviderId` or
          `MarketDataEnvironmentName`, not both; omitting both selects the
          caller's organisation scope. `SurvivalCurves` must be non-empty and
          supplies issuer identifiers, currency, debt/default types, reference
          dates, aligned day maturities and survival probabilities, and the
          extrapolation choice.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiUploadSurvivalCurvesRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUploadSurvivalCurvesRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiUploadSurvivalCurvesRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiUploadSurvivalCurvesRequest'
      responses:
        '200':
          description: >-
            Returns the upload result and errors for invalid providers,
            conflicting curves, unsupported issuers, or processing failures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiUploadSurvivalCurvesResponse'
        '400':
          description: BadRequest
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiUploadSurvivalCurvesRequest:
      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
        survival_curves:
          type: array
          items:
            $ref: '#/components/schemas/SurvivalCurve'
          description: Issuer survival curves to upload.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.MarketData.ApiUploadSurvivalCurvesRequest,
              Derivitec.Web.Core
      additionalProperties: false
      description: Submits issuer survival curves.
    ApiUploadSurvivalCurvesResponse:
      required:
        - $type
      type: object
      additionalProperties: false
      description: >-
        Returns the success flag and error messages from a survival-curve
        upload.
      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.MarketData.ApiUploadSurvivalCurvesResponse,
              Derivitec.Web.Core
    SurvivalCurve:
      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
        currency:
          type: string
          description: Currency code of the survival curve.
          nullable: true
        debt_type:
          enum:
            - senior
            - super_senior
            - other
            - subordinated
            - junior_subordinated
            - preference_shares
            - senior_loss_absorbing
          type: string
          description: Debt seniority or type represented by the curve.
        default_type:
          type: string
          description: Default-type label represented by the curve.
          nullable: true
        extrapolate:
          type: boolean
          description: >-
            Whether values beyond the last supplied maturity may be
            extrapolated. Defaults to true.
          example: true
        issuer_id:
          type: string
          description: >-
            Service-resolved issuer identifier. On upload, the issuer is
            resolved from IssuerIdentifier and this field is not used as input.
          nullable: true
        issuer_identifier:
          $ref: '#/components/schemas/IssuerIdentifier'
        maturities:
          type: array
          items:
            type: integer
            format: int32
          description: >-
            Non-empty, positive, strictly increasing maturity offsets from
            ReferenceDate, in calendar days, corresponding by position to
            SurvivalProbabilities.
          nullable: true
        reference_date:
          type: string
          description: Reference date of the survival curve.
          format: date-time
        survival_probabilities:
          type: array
          items:
            type: number
            format: double
          description: >-
            Positive, dimensionless survival-probability values corresponding by
            position to Maturities.
          nullable: true
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.MarketData.SurvivalCurve, Derivitec.Web.Core
      additionalProperties: false
      description: Dated survival-probability curve for an issuer and debt type.
    IssuerIdentifier:
      required:
        - $type
      type: object
      properties:
        code:
          type: string
          description: Issuer code interpreted in the selected issuer namespace.
          nullable: true
        identifier_type:
          enum:
            - DerivitecBondIssuerId
            - ReutersOrgId
            - ShortName
            - Lei
            - RedCode
            - MarkitTicker
            - ReutersIssuerId
            - CBondsIssuerId
            - PermId
            - BloombergCompanyId
            - NotSet
          type: string
          description: Namespace that determines how the issuer code is interpreted.
        $type:
          type: string
          enum:
            - Derivitec.Web.Core.MarketData.IssuerIdentifier, Derivitec.Web.Core
      additionalProperties: false
      description: Issuer code qualified by an issuer-identifier namespace.
  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

````