> ## 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.

# Create a portfolio.

> Creates an active Derivitec portfolio and makes the caller its owner. Name and description are required,
and the name cannot duplicate another portfolio already linked to the caller. Creation completes before
returning in the normal result envelope.



## OpenAPI

````yaml /risk-and-pricing/atoti-risk-services/apis-endpoints/openapi/openapi.mintlify.json post /api/Portfolios/CreatePortfolio
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/Portfolios/CreatePortfolio:
    post:
      tags:
        - Portfolios
      summary: Create a portfolio.
      description: >-
        Creates an active Derivitec portfolio and makes the caller its owner.
        Name and description are required,

        and the name cannot duplicate another portfolio already linked to the
        caller. Creation completes before

        returning in the normal result envelope.
      operationId: CreatePortfolio
      requestBody:
        description: >-
          Required non-empty `PortfolioName` and `Description`. This request
          declares no explicit API length bounds.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ApiPortfolioCreateRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/ApiPortfolioCreateRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ApiPortfolioCreateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApiPortfolioCreateRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiPortfolioCreateResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - oauth2: []
        - apikey: []
components:
  schemas:
    ApiPortfolioCreateRequest:
      required:
        - $type
      type: object
      properties:
        portfolio_name:
          type: string
          description: >-
            Name for the new portfolio; it must be non-empty and not duplicate a
            portfolio linked to the caller.
          nullable: true
          example: Example portfolio
        description:
          type: string
          description: Non-empty client-visible description for the new portfolio.
          nullable: true
        $type:
          type: string
          enum:
            - >-
              Derivitec.Web.Core.Portfolios.ApiPortfolioCreateRequest,
              Derivitec.Web.Core
      additionalProperties: false
      description: Name and description used to create a Derivitec-managed portfolio.
    ApiPortfolioCreateResponse:
      required:
        - $type
      type: object
      additionalProperties: false
      description: Outcome of creating a portfolio.
      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.Portfolios.ApiPortfolioCreateResponse,
              Derivitec.Web.Core
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: false
  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

````