DriveWealth Portfolios API

The Portfolios API from DriveWealth — 3 operation(s) for portfolios.

OpenAPI Specification

drivewealth-portfolios-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: DriveWealth Accounts Portfolios API
  version: '1.0'
servers:
- url: https://bo-api.drivewealth.io/back-office
  description: Sandbox server (Uses test data)
- url: https://bo-api.drivewealth.net/back-office
  description: Production Server (Uses LIVE data)
tags:
- name: Portfolios
  x-displayName: Portfolios
paths:
  /managed/portfolios:
    post:
      deprecated: true
      tags:
      - Portfolios
      summary: Create Portfolio
      description: Creates a Portfolio.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/portfolioReq'
        required: true
      responses:
        '200':
          description: Creating a Portfolio was Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/portfolioRes'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
  /managed/portfolios/{portfolioID}:
    get:
      deprecated: true
      tags:
      - Portfolios
      summary: Retrieve Portfolio
      description: Retrieves a Portfolio by portfolioID.
      parameters:
      - in: path
        name: portfolioID
        schema:
          type: string
        required: true
        example: portfolio_4a22340a-31f8-4f0e-b5ee-24ddfbc66727
        description: A unique identifier associated with a specific Portfolio.
      responses:
        '200':
          description: Retrieving a Portfolio by portfolioID was Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/portfolioRes'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
    patch:
      deprecated: true
      tags:
      - Portfolios
      summary: Update Portfolio
      description: Updates a Profolio by portfolioID.
      parameters:
      - in: path
        name: portfolioID
        schema:
          type: string
        required: true
        example: portfolio_4a22340a-31f8-4f0e-b5ee-24ddfbc66727
        description: A unique identifier associated with a specific Portfolio.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: Recession Proof
                  description: A name given to the Portfolio by the RIA.
                clientPortfolioID:
                  $ref: '#/components/schemas/clientPortfolioID'
                description:
                  type: string
                  example: A portifolio description.
                  description: A short description for the portfolio.
                holdings:
                  type: array
                  description: An array of objects that hold the type of Funds in the Portfolio.
                  items:
                    $ref: '#/components/schemas/portfolioReqHoldings'
                triggers:
                  $ref: '#/components/schemas/portfolioTriggers'
      responses:
        '200':
          description: Updating a Portfolio by portfolioID was Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/portfolioRes'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
  /users/{userID}/managed/portfolio:
    get:
      deprecated: true
      tags:
      - Portfolios
      summary: List Portfolios by Advisor
      description: Fetches a list of portfolios by userID
      parameters:
      - in: path
        name: userID
        schema:
          $ref: '#/components/schemas/userID'
        required: true
        example: cc07f91b-7ee1-4868-b8fc-823c70a1b932
        description: The User's unique identifier.
      responses:
        '200':
          description: Fetching A List of Portfolios By userID was Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortfoliosByUserID'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
components:
  schemas:
    fundID:
      type: string
      example: fund_4c16152c-f8e7-4a5a-af6b-c36f4e5cc6e7
      description: The unique identifier of a fund.
    PortfolioByUserID.Holdings.CashReserve:
      type: object
      properties:
        type:
          type: string
          example: CASH_RESERVE
          description: The type of collection making up the portfolio
          enum:
          - CASH_RESERVE
          - FUND
        target:
          type: string
          example: 0.25
          description: The individual targeted weight of the cash portion of the portfolio.
    portfolioName:
      type: string
      example: Go Getter Portfolio
      description: A user defined name that describes the underlying portfolio.
    PortfoliosByUserID:
      type: array
      description: A list of portfolios by userID.
      items:
        oneOf:
        - $ref: '#/components/schemas/PortfolioByUserID'
    portfolioReqHoldings:
      type: object
      required:
      - type
      - target
      properties:
        type:
          type: string
          example: FUND
          description: The type of asset in a Portfolio.
          enum:
          - FUND
          - CASH_RESERVE
        id:
          type: string
          example: fund_3d9d00d1-f06e-4f86-9cbf-893c75cf77fe
          description: The unique fundID.
        target:
          type: number
          example: 0.95
          description: The percentage of a Fund within a Portfolio.
    holdingsObject:
      type: object
      description: An object in the holdings array that holds the instrumentID and target.
      properties:
        instrumentID:
          type: string
          example: 5b85fabb-d57c-44e6-a7f6-a3efc760226c
          description: A unique ID created by DriveWealth to identify a specific instrument.
        target:
          type: number
          example: 0.5
          description: The target percentage for the specific instrumentID within a fund.
    portfolioID:
      type: string
      example: portfolio_87fec25f-c350-4a53-83a0-fc6be0c2989e
      description: The unique identifier of a portfolio.
    userID:
      type: string
      example: cc07f91b-7ee1-4868-b8fc-823c70a1b932
      description: A unique identifier created for each User on DriveWealth's platform.
    FundByUserID:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/fundID'
        userID:
          $ref: '#/components/schemas/userID'
        name:
          $ref: '#/components/schemas/fundName'
        type:
          $ref: '#/components/schemas/fundType'
        clientFundID:
          $ref: '#/components/schemas/clientFundID'
        description:
          $ref: '#/components/schemas/fundDescription'
        holdings:
          type: array
          description: A list of instruments to make up the fund.
          items:
            oneOf:
            - $ref: '#/components/schemas/FundByUserID.Holdings'
        triggers:
          type: array
          description: A list of the individual triggers for each instrument.
          items:
            oneOf:
            - $ref: '#/components/schemas/FundByUserID.Triggers'
    FundByUserID.Holdings:
      type: object
      properties:
        instrumentID:
          $ref: '#/components/schemas/instrumentID'
        target:
          $ref: '#/components/schemas/fundTarget'
    clientFundID:
      type: string
      example: AAABBB-1222-3344.123456789
      description: A user defined identifier attached to the fund.
    triggersObject:
      type: object
      description: An object that holds the details of when to trigger a rebalance of the Fund.
      required:
      - type
      - child
      - maxAllowed
      - lowerBound
      - upperBound
      properties:
        type:
          type: string
          example: TOTAL_DRIFT
          description: The type of trigger specified to enable a rebalance.
          enum:
          - TOTAL_DRIFT
          - RELATIVE_DRIFT
          - ABSOLUTE_DRIFT
        maxAllowed:
          type: number
          example: 0.05
          description: The maximum allowed drift for the Fund.
        child:
          type: string
          example: null
        lowerBound:
          type: number
          example: 0.01
          description: The lowest bound range of the drift parameters.
        upperBound:
          type: number
          example: 0.02
          description: The highest bound range of the drift parameter.
    portfolioResHoldingsObject:
      type: object
      description: An array of objects that hold details of a Fund in a Portfolio.
      properties:
        id:
          type: string
          example: fund_3d9d00d1-f06e-4f86-9cbf-893c75cf77fe
          description: The unique FundID.
        name:
          type: string
          example: TECH
          description: A name given to the Fund by the RIA.
        type:
          type: string
          example: FUND
          description: The type of asset in the Portfolio.
          enum:
          - FUND
          - CASH_RESERVE
        clientFundID:
          $ref: '#/components/schemas/clientFundID'
        description:
          type: string
          example: Top 10 US Tech
          description: A short description for the Fund.
        target:
          type: number
          example: 0.95
          description: The percentage of a Fund within a Portfolio.
        holdings:
          type: array
          description: A list of the securities held in a Fund.
          items:
            $ref: '#/components/schemas/holdingsObject'
        triggers:
          type: array
          description: The triggers associated with a Portfolio.
          items:
            $ref: '#/components/schemas/triggersObject'
    PortfolioByUserID.Triggers:
      type: object
      properties:
        child:
          $ref: '#/components/schemas/fundID'
        maxAllowed:
          $ref: '#/components/schemas/portfolioMaxAllowed'
        lowerBound:
          $ref: '#/components/schemas/portfolioLowerBound'
        upperBound:
          $ref: '#/components/schemas/portfolioUpperLowerBound'
        type:
          $ref: '#/components/schemas/triggerTypes'
    portfolioRes:
      type: object
      properties:
        id:
          type: string
          example: portfolio_4a22340a-31f8-4f0e-b5ee-24ddfbc66727
          description: The unique identifier associated with a portfolio.
        name:
          type: string
          example: Recession Proof
          description: A name given to the Portfolio by the RIA.
        clientPortfolioID:
          $ref: '#/components/schemas/clientPortfolioID'
        description:
          type: string
          example: A portifolio description
          description: A short description for the Portfolio.
        holdings:
          type: array
          description: An array of objects that hold the type of Funds in the Portfolio.
          items:
            $ref: '#/components/schemas/portfolioResHoldingsObject'
        userID:
          $ref: '#/components/schemas/managedAccountsUserID'
        triggers:
          type: array
          description: An array of objects that hold information on when to trigger a rebalance in the Portfolio.
          items:
            $ref: '#/components/schemas/portfolioTriggers'
        isFundTargetsChanged:
          type: boolean
          example: false
        fundsTargetsChanged:
          type: boolean
          example: false
    clientPortfolioID:
      type: string
      example: AAABBB-1222-3344.123456789
      description: A user defined identifier attached to the portfolio.
    fundTarget:
      type: number
      example: 0.75
      description: The individual targeted weight of the instrument.
    fundDescription:
      type: string
      example: This fund is comprised of large cap stocks weight like the S&P 500.
      description: A user defined description that describes the underlying fund.
    portfolioTriggers:
      type: object
      description: An object that holds the details of when to trigger a rebalance of a Portfolio.
      required:
      - type
      - child
      - maxAllowed
      - lowerBound
      - upperBound
      properties:
        type:
          type: string
          example: TOTAL_DRIFT
          description: The type of trigger specified to enable a rebalance.
          enum:
          - TOTAL_DRIFT
          - RELATIVE_DRIFT
          - ABSOLUTE_DRIFT
        maxAllowed:
          type: number
          example: 0.05
          description: The maximum allowed drift for the Portfolio.
        child:
          type: string
          example: null
        lowerBound:
          type: number
          example: 0.01
          description: The lowest bound range of the drift parameters.
        upperBound:
          type: number
          example: 0.02
          description: The highest bound range of the drift parameter.
    portfolioLowerBound:
      type: number
      example: 0.1
    fundType:
      type: string
      example: FUND
      description: The type of fund.
      enum:
      - FUND
      - CASH_RESERVE
    portfolioDescription:
      type: string
      example: This portfolio is comprised different funds that make up an aggressive portfolio.
      description: A user defined description that describes the underlying portfolio.
    fundLowerBound:
      type: number
      example: 0.1
    portfolioMaxAllowed:
      type: number
      example: 0.05
      description: The total drift amount for this fund or cash.
    portfolioUpperLowerBound:
      type: number
      example: 0.25
    fundUpperLowerBound:
      type: number
      example: 0.25
    PortfolioByUserID:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/portfolioID'
        name:
          $ref: '#/components/schemas/portfolioName'
        description:
          $ref: '#/components/schemas/portfolioDescription'
        clientPortfolioID:
          $ref: '#/components/schemas/clientPortfolioID'
        holdings:
          type: array
          description: A list of all the individual funds making up the portfolio.
          items:
            oneOf:
            - $ref: '#/components/schemas/PortfolioByUserID.Holdings.CashReserve'
            - $ref: '#/components/schemas/FundByUserID'
        userID:
          $ref: '#/components/schemas/userID'
        triggers:
          type: array
          description: A list of the individual triggers for each fund and or cash.
          items:
            $ref: '#/components/schemas/PortfolioByUserID.Triggers'
    instrumentID:
      type: string
      format: uuid
      example: 3fb1e8a9-f7d5-4d90-95e2-43e7326b5636
      description: 'A unique ID created by DriveWealth to identify a specific instrument. '
    portfolioReq:
      type: object
      required:
      - userID
      - name
      - clientPortfolioID
      - description
      - holdings
      - triggers
      properties:
        userID:
          $ref: '#/components/schemas/managedAccountsUserID'
        name:
          type: string
          example: Recession Proof
          description: A name given to the Portfolio by the RIA.
        clientPortfolioID:
          $ref: '#/components/schemas/clientPortfolioID'
        description:
          type: string
          example: Mix of sectors
          description: A short description for the portfolio.
        holdings:
          type: array
          description: An array of objects that hold a list of Funds in a portfolio.
          items:
            $ref: '#/components/schemas/portfolioReqHoldings'
        triggers:
          type: array
          description: An array of objects that hold a list if triggers associated with a portfolio.
          items:
            $ref: '#/components/schemas/portfolioTriggers'
    fundMaxAllowed:
      type: number
      example: 0.05
      description: The total drift amount for this instrument.
    fundName:
      type: string
      example: Large Capitalization Fund
      description: A user defined name that describes the underlying fund.
    managedAccountsUserID:
      type: string
      example: 66304da9-3h6f-2234-935f-ac6b7933d706
      description: The unique identifier of the registered investment advisors account.
    triggerTypes:
      type: string
      example: TOTAL_DRIFT
      description: The type of trigger associated to the fund as a whole or an individual instrument.
      enum:
      - TOTAL_DRIFT
      - RELATIVE_DRIFT
      - ABSOLUTE_DRIFT
    FundByUserID.Triggers:
      type: object
      properties:
        child:
          $ref: '#/components/schemas/instrumentID'
        maxAllowed:
          $ref: '#/components/schemas/fundMaxAllowed'
        lowerBound:
          $ref: '#/components/schemas/fundLowerBound'
        upperBound:
          $ref: '#/components/schemas/fundUpperLowerBound'
        type:
          $ref: '#/components/schemas/triggerTypes'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    dwAppKey:
      type: apiKey
      in: header
      name: dw-client-app-key
    sessionToken:
      type: apiKey
      in: header
      name: dw-auth-token