Saxo Bank Investments API

End points for fetching and updating investment items.

OpenAPI Specification

saxo-investments-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Services.AutoTrading Account Values Investments API
  description: 'The AutoTrading service group provides endpoints for interacting with Saxo Bank''s SaxoSelect offering.Through these interfaces a client application can get Saxo Select trade leaders, portfolios and investments. Portfolio investments can be created and modifed.<div class=well style=''border: 1px solid rgb(204, 82, 0); border-image: none; background-color: rgb(255, 209, 179);padding:1px;''><strong> Note:</strong> </br>This service is subject to special licensing agreements and not generally available to all OpenAPI applications.</div>'
  version: 2.4.138+710c760591
  x-framework-version: 38.0.2+439c5b0ec3
  x-machine: SIMOAWEB11-DK2
servers:
- url: https://gateway.saxobank.com/sim/openapi
tags:
- name: Investments
  description: End points for fetching and updating investment items.
paths:
  /at/v3/investments/subscriptions/suggestions/{ContextId}/{ReferenceId}:
    delete:
      tags:
      - Investments
      summary: Remove session wide suggestion subscription
      description: Removes the suggestion subscription identified by the specified reference id (and streaming context id).
      operationId: InvestmentsV3DeleteSuggestionSubscription
      parameters:
      - name: ContextId
        in: path
        description: The context id part of the streaming session (used to identify the subscription within a streaming session).
        required: true
        schema:
          type: string
        example: explorer_201704091208182471
      - name: ReferenceId
        in: path
        description: The reference id that identifies the subscription (within a streaming session).
        required: true
        schema:
          type: string
        example: '123'
      responses:
        '204':
          description: No Content
        '202':
          description: Accepted
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - SubscriptionNotFound
                    type: string
                    x-enum-descriptions:
                      SubscriptionNotFound: Subscription not found.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Subscribe
        community: Subscribe
  /at/v3/investments/subscriptions/{ContextId}/{ReferenceId}:
    delete:
      tags:
      - Investments
      summary: Remove session wide subscription
      description: Removes the subscription identified by the specified reference id (and streaming context id).
      operationId: InvestmentsV3DeleteSubscription
      parameters:
      - name: ContextId
        in: path
        description: The context id part of the streaming session (used to identify the subscription within a streaming session).
        required: true
        schema:
          type: string
        example: explorer_201704091208182471
      - name: ReferenceId
        in: path
        description: The reference id that identifies the subscription (within a streaming session).
        required: true
        schema:
          type: string
        example: '123'
      responses:
        '204':
          description: No Content
        '202':
          description: Accepted
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - SubscriptionNotFound
                    type: string
                    x-enum-descriptions:
                      SubscriptionNotFound: Subscription not found.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Subscribe
        community: Subscribe
  /at/v3/investments/subscriptions/suggestions:
    post:
      tags:
      - Investments
      summary: Create a session wide suggestion subscription
      description: "Sets up a new session wide suggestion subscription. The data stream will deliver updates from this point.\r\n            Provides updates on all investments that one could possibly participate in."
      operationId: InvestmentsV3AddSuggestionSubscriptionAsync
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvestmentsSubscriptionRequest'
            example:
              ContextId: explorer_201704091208182471
              ReferenceId: '123'
              RefreshRate: 1000
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentSuggestionContractInvestmentsSubscriptionResponse'
              example:
                ContextId: ContextId8d2541cd-f136-45d9-8492-f6fbcca724f3
                Format: Format87697a73-44b2-4885-89f7-8cd4d61d88b5
                InactivityTimeout: 224
                ReferenceId: ReferenceIdf5fda778-c237-4b00-9fda-7f869b359119
                RefreshRate: 78
                Snapshot:
                - AutoTradingPartnerLeaderId: AutoTradingPartnerLeaderIda1f21a29-744a-4123-9c4c-da292f76c3c6
                  ClientId: 1227010735
                  Currency: Currency0c7a3ebd-626a-41e6-82f0-729c3f873434
                  IsAuthorizedToFollow: true
                  IsFollowAllowed: false
                  IsFollowing: false
                  IsOpenForFollowers: true
                  IsReadyForTrading: true
                  IsTradeFollowerReady: false
                  MinimumFunding: 0.95958769738655
                  StrategyName: StrategyName53af1bcf-46aa-4ce8-abd1-61accf9ef5bb
                  TradeLeaderId: TradeLeaderId54972f08-a548-445c-90b5-451868eb3326
                State: Active
                Tag: Tag0598245e-a908-4305-b672-81e2c21d67c5
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidModelState
                    - NotConfiguredForService
                    - RefreshRateMustBePositive
                    - UnsupportedSubscriptionFormat
                    type: string
                    x-enum-descriptions:
                      InvalidModelState: Error code returned when model state is invalid.
                      UnsupportedSubscriptionFormat: Error code returned when a subscription format that isn't supported by the publisher is requested.
                      NotConfiguredForService: You are not configured for this service. Please Contact Service Center for support.
                      RefreshRateMustBePositive: Refresh rate must be positive.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - SubscriptionLimitExceeded
                    type: string
                    x-enum-descriptions:
                      SubscriptionLimitExceeded: Error code returned when more than the maximum allowed number of subscriptions for a specified type, is exceeded.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Subscribe
        community: Subscribe
      x-streaming-type:
        $ref: '#/components/schemas/InvestmentSuggestionContractIEnumerable'
  /at/v3/investments/subscriptions:
    post:
      tags:
      - Investments
      summary: Create a session wide subscription
      description: "Sets up a new session wide subscription. The data stream will deliver updates from this point.\r\n            Provides updates on the investments that one actively participating in."
      operationId: InvestmentsV3AddSubscription
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvestmentsSubscriptionRequest'
            example:
              ContextId: explorer_201704091208182471
              ReferenceId: '123'
              RefreshRate: 1000
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentContractInvestmentsSubscriptionResponse'
              example:
                InactivityTimeout: 120
                RefreshRate: 1000
                Snapshot:
                - AccountId: ALUSD*2147279411
                  AccountKey: y3OYuYog1dSJ2gLXrBLYejddPfnZpPFsfci84-E4|X0=
                  AutoTradingPartnerLeaderId: '11'
                  ClientId: 2147279411
                  Currency: USD
                  DisplayName: Investment Account 1
                  DisplayState: 7
                  EntryGateResult: NA
                  ErrorNumber: 0
                  InitialFunding: 63291
                  InvestmentId: '3353'
                  InvestmentProcessState: Stopping
                  InvestmentShieldAmount: 0
                  InvestmentStateId: 32
                  IsAuthorizedToFollow: true
                  IsFollowAllowed: true
                  IsFollowing: false
                  IsOpenForFollowers: false
                  IsReadyForTrading: false
                  IsTradeFollowerReady: true
                  IsWithdrawalInProgress: false
                  MinimumFunding: 20000
                  PendingFunding: 63291
                  ReservedAmount: 0
                  StateName: Ready
                  StrategyName: Discretionary Trading
                  TradeLeaderId: '1'
                - AccountId: BRCHA*2147279411
                  AccountKey: PCXvSNri4gfq0HWg6D18Yp|EQN3qRivawC3ak9LvubA=
                  AutoTradingPartnerLeaderId: '110'
                  ClientId: 2147279411
                  Currency: CHF
                  DisplayName: Investment Account 2
                  DisplayState: 3
                  EntryGateResult: NA
                  ErrorNumber: 0
                  InitialFunding: 0
                  InvestmentId: '3356'
                  InvestmentProcessState: Retry
                  InvestmentShieldAmount: 0
                  InvestmentStateId: 7
                  IsAuthorizedToFollow: true
                  IsFollowAllowed: true
                  IsFollowing: true
                  IsOpenForFollowers: true
                  IsReadyForTrading: false
                  IsTradeFollowerReady: true
                  IsWithdrawalInProgress: false
                  MinimumFunding: 10000
                  PendingFunding: 10000
                  ReservedAmount: 0
                  StateName: Stopping
                  StrategyName: Aggressive Portfolio (CHF)
                  TradeLeaderId: '93'
                State: Active
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidModelState
                    - NotConfiguredForService
                    - RefreshRateMustBePositive
                    - UnsupportedSubscriptionFormat
                    type: string
                    x-enum-descriptions:
                      InvalidModelState: Error code returned when model state is invalid.
                      UnsupportedSubscriptionFormat: Error code returned when a subscription format that isn't supported by the publisher is requested.
                      NotConfiguredForService: You are not configured for this service. Please Contact Service Center for support.
                      RefreshRateMustBePositive: Refresh rate must be positive.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - SubscriptionLimitExceeded
                    type: string
                    x-enum-descriptions:
                      SubscriptionLimitExceeded: Error code returned when more than the maximum allowed number of subscriptions for a specified type, is exceeded.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Subscribe
        community: Subscribe
      x-streaming-type:
        $ref: '#/components/schemas/InvestmentContractIEnumerable'
  /at/v3/investments/summaries:
    get:
      tags:
      - Investments
      description: "Gets the investment information for all clients under the given client combined with the investments of client itself and this information\r\n            is grouped according to the leaders."
      operationId: InvestmentsV3GetInvestmentsummariesAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradeLeaderSummaryListResult'
              example:
                Data:
                - CategoryName: Balanced Portfolios
                  Currency: GBP
                  Investments:
                  - AccountId: SAMGS*585220
                    ClientId: 2147279411
                    InitialFunding: 1000000
                    InvestmentStartDateTime: '2022-09-29T04:28:00.7609276Z'
                    IsActive: true
                    PendingFunding: 0
                    StateName: Ready
                    SuitabilityLevel: VeryHigh
                    TimeWhenStateModified: '2022-10-28T04:28:00.7609276Z'
                  MinimumFundingAmount: 10000
                  MostRecentStart:
                    AccountId: SAMGS*585220
                    ClientId: 2147279411
                    TimeWhenStateModified: '2022-10-28T04:28:00.7609276Z'
                  NumberOfFollowers: 1
                  Products: CFDs
                  ReturnPercentage: 0.95
                  StateOfLeader: Ready
                  StrategyName: Moderate Portfolio (GBP)
                  SuitabilityLevel: High
                  TradeLeaderId: '77'
                  TradeLeaderOptions: UsExchanges
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - NotConfiguredForService
                    type: string
                    x-enum-descriptions:
                      NotConfiguredForService: You are not configured for this service. Please Contact Service Center for support.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvestmentSummaryNotFound
                    type: string
                    x-enum-descriptions:
                      InvestmentSummaryNotFound: Investment not found under given WLC
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Read
        community: Read
  /at/v3/investments/{InvestmentId}/maxWithdrawalAmount:
    get:
      tags:
      - Investments
      description: Get max amount currently available for withdrawal from an investment.
      operationId: InvestmentsV3GetMaxWithdrawalAmountAsync
      parameters:
      - name: InvestmentId
        in: path
        description: Id of the investment portfolio.
        required: true
        schema:
          type: string
        example: '1505'
      - name: TargetAccountId
        in: query
        description: max withdrawal amount returned to this account id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WithdrawalAmountContract'
              example:
                MaxWithdrawalAmount: 10000
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidInvestmentId
                    - NotConfiguredForService
                    - WithdrawalNotAllowed
                    type: string
                    x-enum-descriptions:
                      NotConfiguredForService: You are not configured for this service. Please Contact Service Center for support.
                      InvalidInvestmentId: Invalid investment Id.
                      WithdrawalNotAllowed: Withdrawal not allowed
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvestmentNotFound
                    type: string
                    x-enum-descriptions:
                      InvestmentNotFound: Investment not found.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Read
  /at/v3/investments/{InvestmentId}/withdraw:
    put:
      tags:
      - Investments
      description: Initiate partial or full amount withdrawal from an investment.
      operationId: InvestmentsV3PutInvestmentAsync
      parameters:
      - name: InvestmentId
        in: path
        description: Id of the investment portfolio to update
        required: true
        schema:
          type: integer
          format: int32
        example: 1505
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvestmentWithdraw'
            example:
              Amount: 10000
              TargetAccountKey: nUAg42i1-LI7kgWmWfSoaw==
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidAmount
                    - InvalidInvestmentId
                    - InvalidTargetAccountKey
                    - NotConfiguredForService
                    - WithdrawalNotAllowed
                    type: string
                    x-enum-descriptions:
                      InvalidInvestmentId: Invalid investment Id.
                      NotConfiguredForService: You are not configured for this service. Please Contact Service Center for support.
                      InvalidAmount: Amount is not valid
                      InvalidTargetAccountKey: Target Account key is not valid
                      WithdrawalNotAllowed: Withdrawal not allowed
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - AccountNotFound
                    - InvestmentNotFound
                    type: string
                    x-enum-descriptions:
                      InvestmentNotFound: Investment not found.
                      AccountNotFound: 'Account not found '
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Write
  /at/v3/investments/{InvestmentId}:
    patch:
      tags:
      - Investments
      description: Update an investment.
      operationId: InvestmentsV3PatchInvestmentAsync
      parameters:
      - name: InvestmentId
        in: path
        description: Id of the investment to update
        required: true
        schema:
          type: string
        example: '1505'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvestmentEdit'
            example:
              DisplayName: Investment Account
              FundingAccountKey: nUAg42i1-LI7kgWmWfSoaw==
              InvestmentShieldAmount: 80000
              IsActive: true
              PendingFunding: 0
              PositionsCloseOnDeactivation: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidEditParameters
                    - InvalidFundingAccountKey
                    - InvalidInvestmentId
                    - InvestmentUpdateNotAllowed
                    - NotConfiguredForService
                    - SuitabilityExpired
                    type: string
                    x-enum-descriptions:
                      NotConfiguredForService: You are not configured for this service. Please Contact Service Center for support.
                      InvalidInvestmentId: Invalid investment Id.
                      InvalidEditParameters: One or more edit parameters are invalid.
                      InvestmentUpdateNotAllowed: Investment update not allowed
                      InvalidFundingAccountKey: Funding Account key is not valid.
                      SuitabilityExpired: Suitability has expired
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Write
  /at/v3/investments:
    get:
      tags:
      - Investments
      description: Retrieve potential investment details for a specific leader.
      operationId: InvestmentsV3GetInvestmentByLeader
      parameters:
      - name: TradeLeaderId
        in: query
        description: Id of leader to retrieve data for
        required: true
        schema:
          type: string
        example: '8'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentContract'
              example:
                AccountId: SAMGS*585220
                AccountKey: LLnUM8rL-9CVIKwZTZG96g==
                ClientId: 2147279411
                Currency: EUR
                DisplayName: Investment Account
                DisplayState: 6
                EntryGateResult: NA
                ErrorNumber: 0
                InitialFunding: 1000000
                InvestmentId: '1505'
                InvestmentProcessState: Starting
                InvestmentShieldAmount: 700000
                InvestmentStateId: 31
                IsAuthorizedToFollow: true
                IsFollowAllowed: true
                IsFollowing: true
                IsOpenForFollowers: false
                IsReadyForTrading: true
                IsTradeFollowerReady: true
                IsWithdrawalInProgress: false
                MinimumFunding: 20000
                PendingFunding: 0
                ReservedAmount: 0
                StrategyName: Global StockPicker
                TradeLeaderId: '8'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidTradeLeaderId
                    - NotConfiguredForService
                    type: string
                    x-enum-descriptions:
                      NotConfiguredForService: You are not configured for this service. Please Contact Service Center for support.
                      InvalidTradeLeaderId: Invalid trade leader Id.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvestmentNotFound
                    type: string
                    x-enum-descriptions:
                      InvestmentNotFound: Investment not found.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Read
        community: Read
    post:
      tags:
      - Investments
      description: Start an investment.
      operationId: InvestmentsV3PostInvestment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvestmentCreate'
            example:
              DisplayName: Investment Account
              FundingAccountKey: nUAg42i1-LI7kgWmWfSoaw==
              InitialFunding: 0
              InvestmentShieldAmount: 700000
              IsDisclaimerAccepted: true
              TradeLeaderId: '8'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentCreateResponse'
              example:
                AccountId: AccountId8f46f535-21d1-4155-a53c-33a47277891c
                AccountKey: AccountKeyf94d4c93-2e22-49e1-8abb-27329b124ed7
                AutoTradingPartnerLeaderId: AutoTradingPartnerLeaderId437b8a5b-5cf8-4e15-b4d9-3da0c4a845b4
                ClientId: 1347546923
                Currency: Currency0b671c12-7803-4407-89be-a75f6d49b5c4
                DisplayName: DisplayName6b7bb7fe-f67c-4869-9e4e-cd308d352911
                DisplayState: 27
                EntryGateResult: Passed
                ErrorCode: JointInactive
                ErrorNumber: 158
                InitialFunding: 0.709488569623552
                InvestmentId: InvestmentId07cbba71-a915-4e82-84e8-d68d9ef290ad
                InvestmentShieldAmount: 0.766601990334039
                InvestmentStateId: 80
                IsAuthorizedToFollow: true
                IsFollowAllowed: false
                IsFollowing: false
                IsOpenForFollowers: true
                IsReadyForTrading: true
                IsTradeFollowerReady: false
                IsWithdrawalInProgress: true
                MinimumFunding: 0.302201525914577
  

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/saxo/refs/heads/main/openapi/saxo-investments-api-openapi.yml