Saxo Bank NetPositions API

Read only end points serving net positions and the positions making up the net position. The set of net positions is restricted by the supplied query parameters as well as whether or not the identity represented by the authorization token has access to the account on which the positions are posted. * A user of a client will have access to accounts under that client * A user of an IB or WLC will have access to accounts on that client or clients there under * An employee has access to all accounts * A request containing a TradingFloor "Federated Access" token will have access to the account specified in that token. * If access is granted on the basis of the TradingFloor "Federated Access" token, then the number of fields will be a subset of the full set of fields shown in the specification for the response.

OpenAPI Specification

saxo-netpositions-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Services.AutoTrading Account Values NetPositions 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: NetPositions
  description: "Read only end points serving net positions and the positions making up the net position.\n            The set of net positions is restricted by the supplied query parameters as well as whether or not the identity \n            represented by the authorization token has access to the account on which the positions are posted.\n\n*   A user of a client will have access to accounts under that client\n*   A user of an IB or WLC will have access to accounts on that client or clients there under \n*   An employee has access to all accounts\n*   A request containing a TradingFloor \"Federated Access\" token will have access to the account specified in that token.\n*   If access is granted on the basis of the TradingFloor \"Federated Access\" token, then the number of fields will be a subset \n                of the full set of fields shown in the specification for the response."
paths:
  /port/v1/netpositions/subscriptions/{ContextId}/{ReferenceId}:
    delete:
      tags:
      - NetPositions
      summary: Remove subscription
      description: Removes subscription for the current session identified by subscription id.
      operationId: NetPositionsV1DeleteSubscription
      parameters:
      - name: ContextId
        in: path
        description: Unique streaming context ID part of the streaming session.
        required: true
        schema:
          type: string
        example: '29931122'
      - name: ReferenceId
        in: path
        description: Unique ID of the subscription
        required: true
        schema:
          type: string
        example: NP6783
      responses:
        '204':
          description: No Content
        '202':
          description: Subscription delete request will be processed eventually.
        '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
  /port/v1/netpositions/subscriptions/{ContextId}:
    delete:
      tags:
      - NetPositions
      summary: Remove multiple subscriptions
      description: Removes multiple all subscriptions for the current session on this resource, and frees all resources on the server.
      operationId: NetPositionsV1DeleteSubscriptions
      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: '29931122'
      - name: Tag
        in: query
        description: Optional. Remove only subscriptions that are marked with specified tag.
        schema:
          type: string
        example: PAGE2
      responses:
        '204':
          description: No Content
        '202':
          description: Subscription delete request will be processed eventually.
        '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
  /port/v1/netpositions/subscriptions:
    post:
      tags:
      - NetPositions
      summary: Create a subscription on a list of net positions and make it active
      description: Sets up a subscription and returns an initial snapshot of list of net positions specified by the parameters in the request.
      operationId: NetPositionsV1AddActiveSubscription
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetPositionsSubscriptionRequest'
            example:
              Arguments:
                AccountGroupKey: LZTc7DdejXODf-WSl2aCyQ==
                AccountKey: LZTc7DdejXODf-WSl2aCyQ==
                ClientKey: 7m4I|vtYLUnEGg77o9uQhw==
                FieldGroups:
                - NetPositionView
                - NetPositionBase
                NetPositionId: EURUSD 41761NY 1.3765 C
                PriceMode: RegularTradingHours
              ContextId: '20221030064904217'
              Format: application/json
              ReferenceId: NP12768
              RefreshRate: 1000
              Tag: PAGE1
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetPositionsSubscriptionResponse'
              example:
                ContextId: stringValue
                Format: stringValue
                InactivityTimeout: 99
                ReferenceId: stringValue
                RefreshRate: 99
                Snapshot:
                  __next: /openapi/port/....../?$top=1&$skip=1
                  Data:
                  - NetPositionBase:
                      AccountId: 192134INET
                      Amount: 100000
                      AssetType: FxSpot
                      CanBeClosed: true
                      ClientId: '654321'
                      HasForceOpenPositions: false
                      IsMarketOpen: false
                      NonTradableReason: None
                      NumberOfRelatedOrders: 0
                      OpeningDirection: Buy
                      OpenIpoOrdersCount: 0
                      OpenOrdersCount: 0
                      OpenTriggerOrdersCount: 0
                      PositionsAccount: 192134INET
                      SinglePositionStatus: Open
                      Uic: 31
                      ValueDate: '2017-05-04T00:00:00Z'
                    NetPositionId: GPBUSD_FXSpot
                    NetPositionView:
                      AverageOpenPrice: 1.32167
                      AverageOpenPriceIncludingCosts: 1.32172
                      CalculationReliability: Ok
                      CurrentPrice: 1.29188
                      CurrentPriceDelayMinutes: 15
                      CurrentPriceType: Mid
                      Exposure: 100000
                      ExposureInBaseCurrency: 129205
                      InstrumentPriceDayPercentChange: 0.27
                      PositionCount: 1
                      PositionsNotClosedCount: 0
                      ProfitLossOnTrade: -2979
                      Status: Open
                      TradeCostsTotal: 0
                      TradeCostsTotalInBaseCurrency: 0
                State: Active
                Tag: stringValue
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidClientId
                    - InvalidInput
                    - InvalidModelState
                    - NoValidInput
                    - UnsupportedSubscriptionFormat
                    type: string
                    example: None
                    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.
                      InvalidClientId: Indicates that the requested client id was invalid.
                      InvalidInput: An error was encountered when processing given input parameters.
                      NoValidInput: No valid input values passed.
                  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
                    example: None
                    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/NetPositionResponseArray'
  /port/v1/netpositions:
    get:
      tags:
      - NetPositions
      summary: Get net positions for a client, account group or account
      description: "Returns a list of net positions fulfilling the criteria specified by the query string parameters.\n            Each net position may include all related sub positions if fieldGroups includes SubPositions."
      operationId: GET_NetPositionsV1GetNetPositions
      parameters:
      - name: $skip
        in: query
        description: The number of entries to skip from the beginning of the collection
        schema:
          minimum: 0
          type: integer
          format: int32
        example: 1
      - name: $top
        in: query
        description: The number of entries to return from the beginning of the collection
        schema:
          minimum: 0
          type: integer
          format: int32
          default: 0
        example: 1
      - name: AccountGroupKey
        in: query
        description: The key of the account group to which the positions belong.
        schema:
          title: The key of the account group to which the positions belong.
          minLength: 1
          type: string
          x-type-name: AccountGroupKey
        example: stringValue
      - name: AccountKey
        in: query
        description: The key of the account to which the positions belong.
        schema:
          title: The key of the account to which the positions belong.
          minLength: 1
          type: string
          x-type-name: AccountKey
        example: 01b64edf-da03-4145-bf33-ae21527d4c86
      - name: AssetType
        in: query
        description: Optional. The AssetType.
        schema:
          title: Optional. The AssetType.
          allOf:
          - $ref: '#/components/schemas/AssetType'
        example: StockIndexOption
      - name: ClientKey
        in: query
        description: The key of the client to which the positions belong.
        required: true
        schema:
          title: The key of the client to which the positions belong.
          minLength: 1
          type: string
          x-type-name: ClientKey
        example: 493b43a5-fe85-4d1f-9071-dd4a9d4e42a4
      - name: ExpiryDate
        in: query
        description: Optional. The expiry date. Only used to distinguish FxOptions.
        schema:
          title: Optional. The expiry date. Only used to distinguish FxOptions.
          type: string
          format: date-time
          x-type-name: UtcDateTime
        example: '9999-12-31T23:59:59.9999990+00:00'
      - name: FieldGroups
        in: query
        description: Specifies which data to return. Default is [NetPositionBase,NetPositionView]
        schema:
          title: Specifies which data to return. Default is [NetPositionBase,NetPositionView]
          type: array
          items:
            $ref: '#/components/schemas/NetPositionFieldGroup'
        example:
        - NetPositionView
      - name: LowerBarrier
        in: query
        description: Optional. The Lower Barrier. Only used to distinguish Fx Barrier Options.
        schema:
          title: Optional. The Lower Barrier. Only used to distinguish Fx Barrier Options.
          type: number
        example: 2.55
      - name: NetPositionId
        in: query
        description: Optional. The id of the netposition
        schema:
          title: Optional. The id of the netposition
          type: string
        example: stringValue
      - name: PutCall
        in: query
        description: Optional. Put or Call. Only used to distinguish FxOptions.
        schema:
          title: Optional. Put or Call. Only used to distinguish FxOptions.
          allOf:
          - $ref: '#/components/schemas/PutCall'
        example: Put
      - name: Strike
        in: query
        description: Optional. The strike price of the option. Only used to distinguish FxOptions.
        schema:
          title: Optional. The strike price of the option. Only used to distinguish FxOptions.
          type: number
        example: 2.55
      - name: Uic
        in: query
        description: Optional. Unique id of the instrument.
        schema:
          title: Optional. Unique id of the instrument.
          type: integer
          format: int32
        example: 99
      - name: UpperBarrier
        in: query
        description: Optional. The Upper Barrier. Only used to distinguish Fx Barrier Options.
        schema:
          title: Optional. The Upper Barrier. Only used to distinguish Fx Barrier Options.
          type: number
        example: 2.55
      - name: ValueDate
        in: query
        description: Optional. The value date. Only used to distinguish FxForwards.
        schema:
          title: Optional. The value date. Only used to distinguish FxForwards.
          type: string
          format: date-time
          x-type-name: UtcDateTime
        example: '9999-12-31T23:59:59.9999990+00:00'
      - name: WatchlistId
        in: query
        description: Optional. Watchlist Id.Filter on watchlist instruments
        schema:
          title: Optional. Watchlist Id.Filter on watchlist instruments
          type: string
        example: stringValue
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetPositionResponseListResult'
              example:
                __next: /openapi/port/....../?$top=1&$skip=1
                Data:
                - NetPositionBase:
                    AccountId: 192134INET
                    Amount: 100000
                    AssetType: FxSpot
                    CanBeClosed: true
                    ClientId: '654321'
                    HasForceOpenPositions: false
                    IsMarketOpen: false
                    NonTradableReason: None
                    NumberOfRelatedOrders: 0
                    OpeningDirection: Buy
                    OpenIpoOrdersCount: 0
                    OpenOrdersCount: 0
                    OpenTriggerOrdersCount: 0
                    PositionsAccount: 192134INET
                    SinglePositionStatus: Open
                    Uic: 31
                    ValueDate: '2017-05-04T00:00:00Z'
                  NetPositionId: GPBUSD_FXSpot
                  NetPositionView:
                    AverageOpenPrice: 1.32167
                    AverageOpenPriceIncludingCosts: 1.32172
                    CalculationReliability: Ok
                    CurrentPrice: 1.29188
                    CurrentPriceDelayMinutes: 15
                    CurrentPriceType: Mid
                    Exposure: 100000
                    ExposureInBaseCurrency: 129205
                    InstrumentPriceDayPercentChange: 0.27
                    PositionCount: 1
                    PositionsNotClosedCount: 0
                    ProfitLossOnTrade: -2979
                    Status: Open
                    TradeCostsTotal: 0
                    TradeCostsTotalInBaseCurrency: 0
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidClientId
                    - InvalidExchangeId
                    - NetPositionIdNotSpecified
                    - NoValidInput
                    type: string
                    example: None
                    x-enum-descriptions:
                      NoValidInput: No valid input values passed.
                      NetPositionIdNotSpecified: Net position not specified.
                      InvalidClientId: Indicates that the requested client id was invalid.
                      InvalidExchangeId: The provided exchange id is invalid.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '204':
          description: No Content
        '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
  /port/v1/netpositions/me:
    get:
      tags:
      - NetPositions
      summary: Get net positions for the current user's client
      description: "Returns a list of net positions fulfilling the criteria specified by the query string parameters.\n            Each net position may include all related sub positions if fieldGroups includes SubPositions."
      operationId: NetPositionsV1GetNetPositions
      parameters:
      - name: $skip
        in: query
        description: The number of entries to skip from the beginning of the collection
        schema:
          minimum: 0
          type: integer
          format: int32
        example: 1
      - name: $top
        in: query
        description: The number of entries to return from the beginning of the collection
        schema:
          minimum: 0
          type: integer
          format: int32
          default: 0
        example: 1
      - name: FieldGroups
        in: query
        description: Specifies which data to return. Default is [NetPositionBase, NetPositionView].
        required: true
        schema:
          type: array
          items:
            $ref: '#/components/schemas/NetPositionFieldGroup'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetPositionResponseListResult'
              example:
                __next: /openapi/port/....../?$top=1&$skip=1
                Data:
                - NetPositionBase:
                    AccountId: 192134INET
                    Amount: 100000
                    AssetType: FxSpot
                    CanBeClosed: true
                    ClientId: '654321'
                    HasForceOpenPositions: false
                    IsMarketOpen: false
                    NonTradableReason: None
                    NumberOfRelatedOrders: 0
                    OpeningDirection: Buy
                    OpenIpoOrdersCount: 0
                    OpenOrdersCount: 0
                    OpenTriggerOrdersCount: 0
                    PositionsAccount: 192134INET
                    SinglePositionStatus: Open
                    Uic: 31
                    ValueDate: '2017-05-04T00:00:00Z'
                  NetPositionId: GPBUSD_FXSpot
                  NetPositionView:
                    AverageOpenPrice: 1.32167
                    AverageOpenPriceIncludingCosts: 1.32172
                    CalculationReliability: Ok
                    CurrentPrice: 1.29188
                    CurrentPriceDelayMinutes: 15
                    CurrentPriceType: Mid
                    Exposure: 100000
                    ExposureInBaseCurrency: 129205
                    InstrumentPriceDayPercentChange: 0.27
                    PositionCount: 1
                    PositionsNotClosedCount: 0
                    ProfitLossOnTrade: -2979
                    Status: Open
                    TradeCostsTotal: 0
                    TradeCostsTotalInBaseCurrency: 0
        '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: Read
        community: Read
  /port/v1/netpositions/{NetPositionId}/details:
    get:
      tags:
      - NetPositions
      summary: Get detailed information for a single net position
      description: "Obsolete Gets detailed information about a single net position as specified by the query parameters.\n            NOTE: This endpoint will be deprecated by November 2022. All functionality has been migrated to /port/v1/netpositions/{NetpositionId}."
      operationId: NetPositionsV1GetNetPositionDetails
      parameters:
      - name: AccountGroupKey
        in: query
        description: The key of the account group to which the positions belong.
        schema:
          title: The key of the account group to which the positions belong.
          minLength: 1
          type: string
          x-type-name: AccountGroupKey
        example: stringValue
      - name: AccountKey
        in: query
        description: The key of the account to which the positions belong.
        schema:
          title: The key of the account to which the positions belong.
          minLength: 1
          type: string
          x-type-name: AccountKey
        example: 01b64edf-da03-4145-bf33-ae21527d4c86
      - name: ClientKey
        in: query
        description: The key of the client to which the positions belong.
        required: true
        schema:
          title: The key of the client to which the positions belong.
          minLength: 1
          type: string
          x-type-name: ClientKey
        example: 493b43a5-fe85-4d1f-9071-dd4a9d4e42a4
      - name: NetPositionId
        in: path
        description: Unique id of the net position.
        required: true
        schema:
          type: string
        example: 247__Share
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetPositionDetailedResponse'
              example:
                NetPositionBase:
                  AccountId: 192134INET
                  Amount: 100000
                  AssetType: FxSpot
                  CanBeClosed: true
                  ClientId: '654321'
                  HasForceOpenPositions: false
                  IsMarketOpen: false
                  NonTradableReason: None
                  NumberOfRelatedOrders: 0
                  OpeningDirection: Buy
                  OpenIpoOrdersCount: 0
                  OpenOrdersCount: 0
                  OpenTriggerOrdersCount: 0
                  PositionsAccount: 192134INET
                  SinglePositionStatus: Open
                  Uic: 31
                  ValueDate: '2017-05-04T00:00:00Z'
                NetPositionDetails:
                  MarketValue: -2958
                  MarketValueInBaseCurrency: -2958
                  NonTradableReason: None
                NetPositionId: GPBUSD_FXSpot
                NetPositionView:
                  AverageOpenPrice: 1.32167
                  AverageOpenPriceIncludingCosts: 1.32172
                  CalculationReliability: Ok
                  CurrentPrice: 1.29188
                  CurrentPriceDelayMinutes: 15
                  CurrentPriceType: Mid
                  Exposure: 100000
                  ExposureInBaseCurrency: 129205
                  InstrumentPriceDayPercentChange: 0.27
                  PositionCount: 1
                  PositionsNotClosedCount: 0
                  ProfitLossOnTrade: -2979
                  SettlementInstruction:
                    ActualRolloverAmount: 0
                    ActualSettlementAmount: 10
                    Amount: 10
                    IsSettlementInstructionsAllowed: false
                    Month: 7
                    SettlementType: FullSettlement
                    Year: 2020
                  Status: Open
                  TradeCostsTotal: 0
                  TradeCostsTotalInBaseCurrency: 0
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidClientId
                    - NetPositionIdNotSpecified
                    - NoValidInput
                    type: string
                    example: None
                    x-enum-descriptions:
                      NoValidInput: No valid input values passed.
                      NetPositionIdNotSpecified: Net position not specified.
                      InvalidClientId: Indicates that the requested client id was invalid.
                  Message:
                    type: string
                  ModelState:
                    $ref: '#/components/schemas/ModelStateDictionary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      deprecated: true
      security:
      - OpenApiOAuthSecurityScheme: []
      - OpenApiJWTSecurityScheme: []
      x-required-permissions:
        personal: Read
        community: Read
  /port/v1/netpositions/{NetPositionId}:
    get:
      tags:
      - NetPositions
      summary: Get a single net position
      description: "Gets a single net position calculated as specified by the query parameters. \n            The net position may include all related sub positions if fieldGroups includes SubPositions.\n            Note: the net position is fully identified by the supplied netPositionId, but accountId and clientId may be specified\n            to determine whether the netposition values should be calculated at client or account level."
      operationId: NetPositionsV1GetNetPosition
      parameters:
      - name: AccountGroupKey
        in: query
        description: The key of the account group to which the positions belong.
        schema:
          title: The key of the account group to which the positions belong.
          minLength: 1
          type: string
          x-type-name: AccountGroupKey
        example: stringValue
      - name: AccountKey
        in: query
        description: The key of the account to which the positions belong.
        schema:
          title: The key of the account to which the positions belong.
          minLength: 1
          type: string
          x-type-name: AccountKey
        example: 01b64edf-da03-4145-bf33-ae21527d4c86
      - name: ClientKey
        in: query
        description: The key of the client to which the positions belong.
        required: true
        schema:
          title: The key of the client to which the positions belong.
          minLength: 1
          type: string
          x-type-name: ClientKey
        example: 493b43a5-fe85-4d1f-9071-dd4a9d4e42a4
      - name: FieldGroups
        in: query
        description: Specifies which data to return. Default is [NetPositionBase,NetPositionView]
        schema:
          title: Specifies which data to return. Default is [NetPositionBase,NetPositionView]
          type: array
          items:
            $ref: '#/components/schemas/NetPositionFieldGroup'
        example:
        - NetPositionView
      - name: NetPositionId
        in: path
        description: Unique id of the net position.
        required: true
        schema:
          type: string
        example: 247__Share
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetPositionResponse'
              example:
                NetPositionBase:
                  AccountId: 192134INET
                  Amount: 100000
                  AssetType: FxSpot
                  CanBeClosed: true
                  ClientId: '654321'
                  HasForceOpenPositions: false
                  IsMarketOpen: false
                  NonTradableReason: None
                  NumberOfRelatedOrders: 0
                  OpeningDirection: Buy
                  OpenIpoOrdersCount: 0
                  OpenOrdersCount: 0
                  OpenTriggerOrdersCount: 0
                  PositionsAccount: 192134INET
                  SinglePositionStatus: Open
                  Uic: 31
                  ValueDate: '2017-05-04T00:00:00Z'
                NetPositionId: GPBUSD_FXSpot
                NetPositionView:
                  AverageOpenPrice: 1.32167
                  AverageOpenPriceIncludingCosts: 1.32172
                  CalculationReliability: Ok
                  CurrentPrice: 1.29188
                  CurrentPriceDelayMinutes: 15
                  CurrentPriceType: Mid
                  Exposure: 100000
                  ExposureInBaseCurrency: 129205
                  InstrumentPriceDayPercentChange: 0.27
                  PositionCount: 1
                  PositionsNotClosedCount: 0
                  ProfitLossOnTrade: -2979
                  Status: Open
                  TradeCostsTotal: 0
                  TradeCostsTotalInBaseCurrency: 0
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                required:
                - ErrorCode
                - Message
                type: object
                properties:
                  ErrorCode:
                    enum:
                    - InvalidClientId
                    - NetPositionIdNotSpecified
                    - NoValidInput
                    type: string
                    example: None
                    x-enum-descriptions:
                      NoValidInput: No valid input values passed.
                      NetPositionIdNotSpecified: Net position not specified.
                      InvalidClientId: Indicates that the requested client id was invalid.
                  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:
        p

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