> ## Documentation Index
> Fetch the complete documentation index at: https://api-portal.etoro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get instrument breakdown (demo)

> **Rate limit:** 60 requests per 60 seconds. This is a **shared quota** — the same budget is consumed by a group of related endpoints, so calling any of them reduces what is left for the others (you cannot call each at the full rate independently). Endpoints sharing this quota:
- `GET /api/v1/trading/info/demo/pnl`
- `GET /api/v1/trading/info/demo/portfolio`

---

Returns the demo portfolio grouped by instrument, including per-position data, pending orders, and PnL.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v2/trading/info/demo/instrument-breakdown
openapi: 3.0.1
info:
  title: eToro Api
  version: v1.352.0
  description: >-
    eToro’s public API provides access to real-time financial data, trading
    insights, and account management features, allowing developers to integrate
    eToro’s services into their applications. With access to market prices,
    historical data, and social trading information, the API empowers users to
    enhance their trading strategies. Designed for security and scalability, the
    eToro API ensures smooth and reliable integration for a variety of financial
    applications.


    For more details on integrating with eToro's public WebSocket service,
    please refer to the dedicated [WebSocket
    documentation](./websocket/websocket-doc.html).


    ## Authentication


    Every request must be authenticated with exactly one of two options: an
    OAuth 2.0 access token (`Authorization: Bearer <token>`), or the
    non-interactive credential pair (`x-api-key` + `x-user-key` headers). The
    two options are mutually exclusive — a request carrying both is rejected.
    Each operation lists the OAuth scopes that grant access as alternative
    security requirements: a bearer token needs only ONE of them, and the same
    permissions govern the credential pair.
servers:
  - url: https://public-api.etoro.com
    description: eToro Public API
security:
  - apiKeyAuth: []
    userKeyAuth: []
  - oauth2: []
tags:
  - name: Agent Portfolios
  - name: Social Feeds
  - name: Balances
  - name: Clubs
  - name: Watchlists
  - name: Top Assets
  - name: App Data
  - name: Market Data
  - name: Identity
  - name: Cash Accounts
  - name: Transfer
  - name: Notifications
  - name: PI Data
  - name: PortfolioSearch
  - name: Price Alerts
  - name: SSO - Applications
  - name: SSO - Scopes
  - name: Sub-Accounts - eToro Trading
  - name: Sub-Accounts
  - name: Trading - Demo
  - name: Trading - Real
  - name: Users Info
  - name: Rankings
  - name: User Stats
  - name: Copy Trading
  - name: Copy Trading - Demo
paths:
  /api/v2/trading/info/demo/instrument-breakdown:
    get:
      tags:
        - Trading - Demo
      summary: Get instrument breakdown (demo)
      description: >-
        **Rate limit:** 60 requests per 60 seconds. This is a **shared quota** —
        the same budget is consumed by a group of related endpoints, so calling
        any of them reduces what is left for the others (you cannot call each at
        the full rate independently). Endpoints sharing this quota:

        - `GET /api/v1/trading/info/demo/pnl`

        - `GET /api/v1/trading/info/demo/portfolio`


        ---


        Returns the demo portfolio grouped by instrument, including per-position
        data, pending orders, and PnL.
      operationId: getTradingInfoDemoPortfolioInstrumentBreakdown
      parameters:
        - name: x-request-id
          in: header
          required: true
          schema:
            type: string
            format: uuid
            example: eab9672c-681b-4cc1-9d05-0161031a2fb0
          description: A unique request identifier.
        - name: CID
          in: header
          required: true
          description: Client identifier.
          schema:
            type: integer
            format: int32
        - name: conversionMode
          in: query
          required: false
          description: >-
            Conversion to use for non-USD assets when the market is closed.
            'eToroApp' uses the last conversion at market close; 'Realtime' uses
            the realtime conversion.
          schema:
            type: string
            enum:
              - eToroApp
              - Realtime
            default: eToroApp
        - name: positionLevel
          in: query
          required: false
          description: >-
            Level of position data to return. 'Normal' returns position-level
            data; 'None' omits it.
          schema:
            type: string
            enum:
              - None
              - Normal
            default: Normal
        - name: orderLevel
          in: query
          required: false
          description: >-
            Level of order data to return. 'Normal' returns order-level data;
            'None' omits it.
          schema:
            type: string
            enum:
              - None
              - Normal
            default: Normal
        - name: mirrorLevel
          in: query
          required: false
          description: >-
            Level of mirror data to return. 'None' returns only the manual part
            of the portfolio; 'Details' includes position/order-level data
            inside mirrors.
          schema:
            type: string
            enum:
              - None
              - Details
            default: None
        - name: instrumentIds
          in: query
          required: false
          description: 'Filter by instrument IDs. Default: all instruments. Maximum 100 IDs.'
          schema:
            type: array
            items:
              type: integer
              format: int32
            maxItems: 100
        - name: mirrorIds
          in: query
          required: false
          description: >-
            Filter by mirror IDs. MirrorId=0 means the manual part of the
            portfolio. When mirrorLevel=None the default is manual only ([0]);
            otherwise the default is all mirrors and manual. Maximum 100 IDs.
          schema:
            type: array
            items:
              type: integer
              format: int32
            maxItems: 100
      responses:
        '200':
          description: Demo portfolio instrument breakdown.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstrumentBreakdownResponseDemo'
              example:
                accountCurrency: USD
                timestamp: '2026-07-21T09:30:00Z'
                instruments:
                  - instrumentId: 1001
                    symbol: AAPL
                    positions:
                      - redeemEligibility: notAllowed
                        positionId: 2150896073
                        symbol: AAPL
                        instrumentId: 1001
                        assetCurrency: USD
                        settlementType: real
                        direction: long
                        leverage: 1
                        isSettled: true
                        openTime: '2026-07-01T13:45:00Z'
                        openRate: 2020.7784
                        openConversionRate: 1
                        totalFeesAcctCcy: 0.5
                        totalTaxesAcctCcy: 0
                        takeProfitRate: null
                        stopLossRate: 0.0001
                        stopLossType: fixed
                        units: 0.049485
                        contracts: 1
                        marginAcctCcy: 100
                        margin: 100
                        addedFundsAcctCcy: 0
                        addedFunds: 0
                        overnightFeesAndDividends: 0
                        currentRate: 2035.12
                        currentConversionRate: 1
                        rateTimestamp: '2026-07-21T09:29:58Z'
                        currentExposure: 100.71
                        currentExposureAcctCcy: 100.71
                        acctCcyReturn: 0.71
                        acctCcyRoePercent: 0.71
                        liquidationValueAcctCcy: 100.71
                        liquidationValue: 100.71
                        pnl: 0.71
                        pnlPercent: 0.71
                        fxValueImpact: 0
                        roePercent: 0.71
                    orders:
                      - orderId: 123456789
                        requestTime: '2026-07-20T10:00:00Z'
                        transaction: buy
                        action: open
                        status: received
                        type: mkt
                        eToroOrderTypeId: 19
                        requestType: byAmount
                        openActionType: customer
                        closeActionType: null
                        orderCurrency: USD
                        requestedTriggerRate: null
                        requestedUnits: 0.05
                        requestedContracts: 1
                        requestedAmountAcctCcy: 100
                        additionalMarginAcctCcy: 0
                        estimatedExternalCosts: null
                        stopLossType: null
                        openStopLossRate: null
                        openStopLossAmount: null
                        openStopLossPercent: null
                        openTakeProfitRate: null
                        openTakeProfitAmount: null
                        openTakeProfitPercent: null
                        closePositionsIds: null
                        closePositionDetails: null
                        unitsToDeduct: null
                        asset:
                          instrumentId: 1001
                          symbol: AAPL
                          direction: long
                          settlementType: real
                          leverage: 1
                          currency: USD
                mirrors: []
          headers:
            RateLimit-Limit:
              description: >-
                Maximum number of requests allowed per window. This budget is
                SHARED across 3 endpoints (it is NOT per-endpoint): a request to
                any endpoint in the group spends the same budget. See this
                operation's description for the full list of endpoints sharing
                it.
              schema:
                type: integer
              example: 60
            RateLimit-Remaining:
              description: Requests remaining in the current window for this quota.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the current window resets.
              schema:
                type: integer
            RateLimit-Policy:
              description: Quota policy in the form `<limit>;w=<window-seconds>`.
              schema:
                type: string
              example: 60;w=60
        '400':
          description: Validation error — one or more query parameters are invalid.
        '401':
          description: Unauthorized.
        '429':
          description: Too Many Requests.
          headers:
            RateLimit-Limit:
              description: >-
                Maximum number of requests allowed per window. This budget is
                SHARED across 3 endpoints (it is NOT per-endpoint): a request to
                any endpoint in the group spends the same budget. See this
                operation's description for the full list of endpoints sharing
                it.
              schema:
                type: integer
              example: 60
            RateLimit-Remaining:
              description: Requests remaining in the current window for this quota.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the current window resets.
              schema:
                type: integer
            RateLimit-Policy:
              description: Quota policy in the form `<limit>;w=<window-seconds>`.
              schema:
                type: string
              example: 60;w=60
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
              example: 60
        '500':
          description: Internal Server Error.
      security:
        - apiKeyAuth: []
          userKeyAuth: []
        - oauth2:
            - etoro-public:trade.demo:read
components:
  schemas:
    InstrumentBreakdownResponseDemo:
      type: object
      properties:
        accountCurrency:
          type: string
          description: >-
            ISO 4217 code (uppercase) of the account's base currency, e.g.
            'USD'.
        timestamp:
          type: string
          format: date-time
          description: Time the snapshot was generated.
        instruments:
          type: array
          description: >-
            Manually held (non copy-trading) positions/orders, grouped by
            instrument.
          items:
            $ref: '#/components/schemas/InstrumentBreakdownInstrumentDemo'
        mirrors:
          type: array
          description: Copy-trading mirrors. Empty unless mirrorLevel=details.
          items:
            $ref: '#/components/schemas/InstrumentBreakdownMirrorDemo'
    InstrumentBreakdownInstrumentDemo:
      type: object
      properties:
        instrumentId:
          type: integer
          format: int32
          description: eToro instrument identifier.
        symbol:
          type: string
          nullable: true
          description: Instrument symbol.
        positions:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/InstrumentBreakdownPositionDemo'
          description: Null when positionLevel=none.
        orders:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/InstrumentBreakdownOrderDemo'
          description: Null when orderLevel=none.
    InstrumentBreakdownMirrorDemo:
      type: object
      properties:
        mirrorId:
          type: integer
          format: int32
          description: eToro mirror identifier.
        instruments:
          type: array
          items:
            $ref: '#/components/schemas/InstrumentBreakdownInstrumentDemo'
          description: >-
            Copy-trading positions/orders held within this mirror, grouped by
            instrument.
    InstrumentBreakdownPositionDemo:
      type: object
      properties:
        redeemEligibility:
          type: string
          enum:
            - allowed
            - partialAllowed
            - notAllowed
          description: >-
            Current redeem decision. Missing/invalid eligibility inputs fail
            closed to 'notAllowed'.
        positionId:
          type: integer
          format: int64
          description: eToro position identifier.
        symbol:
          type: string
          nullable: true
          description: Instrument symbol.
        instrumentId:
          type: integer
          format: int32
          description: eToro instrument identifier.
        assetCurrency:
          type: string
          nullable: true
          description: >-
            ISO 4217 code (uppercase) of the instrument's own currency, e.g.
            'USD', 'EUR'. Distinct from the account currency at the response
            root.
        settlementType:
          type: string
          enum:
            - cfd
            - real
            - trs
            - cmt
            - realFutures
            - marginTrade
          description: Settlement type of the position.
        direction:
          type: string
          enum:
            - long
            - short
          description: Position direction.
        leverage:
          type: integer
          format: int32
          description: Leverage multiplier of the position.
        isSettled:
          type: boolean
          description: Whether the position has settled.
        openTime:
          type: string
          format: date-time
          description: Time the position was opened.
        openRate:
          type: number
          description: Rate at which the position was opened.
        openConversionRate:
          type: number
          description: >-
            Conversion rate to account currency at the time the position was
            opened.
        totalFeesAcctCcy:
          type: number
          description: Sum of transaction fees, in account currency.
        totalTaxesAcctCcy:
          type: number
          description: Sum of taxes, in account currency.
        takeProfitRate:
          type: number
          nullable: true
          description: Null when no take-profit is set.
        stopLossRate:
          type: number
          nullable: true
          description: Null when no stop-loss is set.
        stopLossType:
          type: string
          nullable: true
          enum:
            - fixed
            - trailing
          description: >-
            Whether the stop-loss is fixed or trailing. Null when no stop-loss
            is set.
        units:
          type: number
          description: Position size in units of the instrument.
        contracts:
          type: number
          description: >-
            The number of contracts in the position. Used for instruments such
            as real Futures.
        marginAcctCcy:
          type: number
          description: Position amount in account currency.
        margin:
          type: number
          description: Position amount in the instrument's own currency.
        addedFundsAcctCcy:
          type: number
          description: Additional funds added to the position, in account currency.
        addedFunds:
          type: number
          description: >-
            Additional funds added to the position, in the instrument's own
            currency.
        overnightFeesAndDividends:
          type: number
          description: >-
            Accumulated overnight fees and dividend adjustments, in the
            instrument's own currency.
        currentRate:
          type: number
          nullable: true
          description: Current market rate. Null when unavailable.
        currentConversionRate:
          type: number
          nullable: true
          description: Current conversion rate to account currency. Null when unavailable.
        rateTimestamp:
          type: string
          format: date-time
          nullable: true
          description: Time the current rate was captured. Null when unavailable.
        currentExposure:
          type: number
          description: >-
            direction x (units x currentRate) in the instrument's own currency.
            Signed: positive for long, negative for short.
        currentExposureAcctCcy:
          type: number
          description: >-
            direction x (units x currentRate x currentConversionRate) in account
            currency.
        acctCcyReturn:
          type: number
          nullable: true
          description: Unrealized P&L in account currency.
        acctCcyRoePercent:
          type: number
          description: Return on equity percentage, in account currency.
        liquidationValueAcctCcy:
          type: number
          description: Current liquidation value in account currency.
        liquidationValue:
          type: number
          description: Current liquidation value in the instrument's own currency.
        pnl:
          type: number
          description: Unrealized P&L in the instrument's own currency.
        pnlPercent:
          type: number
          description: Unrealized P&L percentage.
        fxValueImpact:
          type: number
          description: >-
            Impact of currency-conversion rate movement on P&L, in account
            currency.
        roePercent:
          type: number
          description: Return on equity percentage, in the instrument's own currency.
    InstrumentBreakdownOrderDemo:
      type: object
      properties:
        orderId:
          type: integer
          format: int64
          description: A unique order ID for this order.
        requestTime:
          type: string
          format: date-time
          description: Time the order was requested.
        transaction:
          type: string
          enum:
            - buy
            - sellShort
            - sell
            - buyToCover
          description: >-
            open long = buy, close long = sell, open short = sellShort, close
            short = buyToCover
        action:
          type: string
          enum:
            - open
            - close
          description: Whether the order opens a new position or closes an existing one.
        status:
          type: string
          enum:
            - received
            - placed
            - pendingTriggerRate
            - filled
            - rejected
            - partiallyFilled
            - pendingCancel
            - canceled
            - expired
            - canceledPartiallyFilled
            - rejectedPartiallyFilled
            - waitingForMarket
          description: Current order status.
        type:
          type: string
          enum:
            - mit
            - mkt
            - limitIoc
            - unknown
          description: >-
            The order type: 'mkt' is a market order, 'mit' is a
            market-if-touched order that waits for the requested trigger rate to
            be reached in the market, and 'limitIoc' is an immediate-or-cancel
            limit order.
        eToroOrderTypeId:
          type: integer
          format: int32
          description: Internal eToro order-type code.
        requestType:
          type: string
          enum:
            - byAmount
            - byUnits
            - position
          description: >-
            Whether the order was requested by monetary amount, by units, or by
            target position(s) (close orders).
        openActionType:
          type: string
          nullable: true
          enum:
            - undefined
            - customer
            - hierarchicalOpen
            - reopen
            - openOpen
            - stockDividend
            - corporateAction
            - technicalIssue
            - operationalOpen
            - addFunds
            - reinvestment
            - admin
            - staking
            - promotion
            - acatsIn
            - redeemForNft
            - technical
            - alignment
            - recurringInvestment
            - tradeTheNews
            - reclassify
          description: >-
            How the originating position open was initiated. Only set for open
            orders.
        closeActionType:
          type: string
          nullable: true
          enum:
            - positionCloseActionTypeCustomerClose
            - positionCloseActionTypeStopLossDb
            - positionCloseActionTypeEndOfWeek
            - positionCloseActionTypeStopLoss
            - positionCloseActionTypeReturnToMarket
            - positionCloseActionTypeTakeProfitDb
            - positionCloseActionTypeTakeProfit
            - positionCloseActionTypeContractRollover
            - positionCloseActionTypeBackofficeClose
            - positionCloseActionTypeHierarchicalClose
            - positionCloseActionTypeHierarchicalCloseRecovery
            - positionCloseActionTypeCustomerCloseAll
            - positionCloseActionTypeCopyStopLoss
            - positionCloseActionTypeManualCloseMirrorPosition
            - positionCloseActionTypeManualLiquidation
            - positionCloseActionTypeBslLiquidation
            - positionCloseActionTypeManualUnregister
            - positionCloseActionTypeBackofficeUnregister
            - positionCloseForRedeem
            - positionCloseOperational
            - orphanedPosition
            - transferOut
            - alignment
            - delist
            - closeByRate
            - expiry
            - reclassify
          description: How the close was initiated. Only set for close orders.
        orderCurrency:
          type: string
          nullable: true
          description: >-
            ISO 4217 code (uppercase) of the currency the order was placed in.
            Currently always the account's currency (USD), since eToro only
            supports single-currency accounts today.
        requestedTriggerRate:
          type: number
          nullable: true
          description: The Trigger Rate for MIT orders.
        requestedUnits:
          type: number
          nullable: true
          description: Requested position size in units of the instrument, when applicable.
        requestedContracts:
          type: number
          nullable: true
          description: Requested position size in contracts, when applicable.
        requestedAmountAcctCcy:
          type: number
          nullable: true
          description: Requested amount in account currency.
        additionalMarginAcctCcy:
          type: number
          nullable: true
          description: >-
            Additional margin allowed to be added to the position in order to
            deepen the stop loss beyond what is normally acceptable.
        estimatedExternalCosts:
          type: number
          nullable: true
          description: This is the estimated costs of the order in account currency.
        stopLossType:
          type: string
          nullable: true
          enum:
            - fixed
            - trailing
          description: >-
            Whether the stop-loss is fixed or trailing. Null when no stop-loss
            is set.
        openStopLossRate:
          type: number
          nullable: true
          description: Stop-loss rate requested on open. Null when no stop-loss is set.
        openStopLossAmount:
          type: number
          nullable: true
          description: >-
            Stop-loss amount requested on open, in account currency. Null when
            no stop-loss is set.
        openStopLossPercent:
          type: number
          nullable: true
          description: >-
            Stop-loss percentage requested on open. Null when no stop-loss is
            set.
        openTakeProfitRate:
          type: number
          nullable: true
          description: Take-profit rate requested on open. Null when no take-profit is set.
        openTakeProfitAmount:
          type: number
          nullable: true
          description: >-
            Take-profit amount requested on open, in account currency. Null when
            no take-profit is set.
        openTakeProfitPercent:
          type: number
          nullable: true
          description: >-
            Take-profit percentage requested on open. Null when no take-profit
            is set.
        closePositionsIds:
          type: array
          nullable: true
          items:
            type: integer
            format: int64
          description: >-
            Position IDs targeted by this close order. Present only for close
            orders.
        closePositionDetails:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/InstrumentBreakdownClosePositionDetailDemo'
          description: >-
            Full snapshots for the positions in closePositionsIds, where
            available. Present only for close orders.
        unitsToDeduct:
          type: number
          nullable: true
          description: The number of units to close when closing a position partially.
        asset:
          allOf:
            - $ref: '#/components/schemas/InstrumentBreakdownAssetDemo'
          description: The traded instrument for this order.
    InstrumentBreakdownClosePositionDetailDemo:
      type: object
      description: >-
        Snapshot of a position targeted by a close order. Positions not fully
        resolved are represented only by their ID in closePositionsIds.
      properties:
        positionId:
          type: integer
          format: int64
          description: eToro position identifier.
        instrumentId:
          type: integer
          format: int32
          description: eToro instrument identifier.
        symbol:
          type: string
          nullable: true
          description: Instrument symbol.
        direction:
          type: string
          enum:
            - long
            - short
          description: Position direction.
        isSettled:
          type: boolean
          description: Whether the position has settled.
        leverage:
          type: integer
          format: int32
          description: Leverage multiplier of the position.
        openRate:
          type: number
          description: Rate at which the position was opened.
        openTime:
          type: string
          format: date-time
          description: Time the position was opened.
        units:
          type: number
          description: Position size in units of the instrument.
        contracts:
          type: number
          description: >-
            The number of contracts in the position. Used for instruments such
            as real Futures.
        settlementType:
          type: string
          enum:
            - cfd
            - real
            - trs
            - cmt
            - realFutures
            - marginTrade
          description: Settlement type of the position.
    InstrumentBreakdownAssetDemo:
      type: object
      description: The traded instrument.
      properties:
        instrumentId:
          type: integer
          format: int32
          description: eToro instrument identifier.
        symbol:
          type: string
          nullable: true
          description: Instrument symbol.
        direction:
          type: string
          enum:
            - long
            - short
          description: Position/order direction.
        settlementType:
          type: string
          enum:
            - cfd
            - real
            - trs
            - cmt
            - realFutures
            - marginTrade
          description: Requested settlement type of the position/order.
        leverage:
          type: integer
          format: int32
          description: The leverage multiplier of the requested position.
        currency:
          type: string
          nullable: true
          description: >-
            ISO 4217 code (uppercase) of the instrument's own currency, e.g.
            'USD', 'EUR'. Distinct from the account currency at the response
            root.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key of the application. Only valid together with the x-user-key
        header — the pair is an alternative to OAuth bearer authentication,
        never sent alongside it. The pair is granted the same permissions the
        operation's OAuth scopes describe.


        Demo credential for trying the API from these docs:
        `lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663`
      x-default: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
    userKeyAuth:
      type: apiKey
      in: header
      name: x-user-key
      description: >-
        User-specific authentication key. Only valid together with the x-api-key
        header — the pair is an alternative to OAuth bearer authentication,
        never sent alongside it.


        Demo credential for trying the API from these docs:
        `eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_`
      x-default: >-
        eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
    oauth2:
      type: oauth2
      description: >-
        eToro OAuth2 — send the access token as `Authorization: Bearer <token>`.
        Each operation lists the scopes that grant access as separate `security`
        requirements (OpenAPI OR semantics): the caller's token only needs ONE
        of them — you do NOT need all of them. Mutually exclusive with the
        x-api-key/x-user-key credential pair: never send both.
      flows:
        authorizationCode:
          authorizationUrl: ''
          tokenUrl: ''
          scopes:
            etoro-public:agent-portfolio:read: Grants access to the 'etoro-public:agent-portfolio:read' scope.
            etoro-public:agent-portfolio:write: Grants access to the 'etoro-public:agent-portfolio:write' scope.
            etoro-public:club:read: Grants access to the 'etoro-public:club:read' scope.
            etoro-public:demo:read: Grants access to the 'etoro-public:demo:read' scope.
            etoro-public:demo:write: Grants access to the 'etoro-public:demo:write' scope.
            etoro-public:feed:read: Grants access to the 'etoro-public:feed:read' scope.
            etoro-public:feed:write: Grants access to the 'etoro-public:feed:write' scope.
            etoro-public:money.balance:read: Grants access to the 'etoro-public:money.balance:read' scope.
            etoro-public:money.cash-transactions:read: >-
              Grants access to the 'etoro-public:money.cash-transactions:read'
              scope.
            etoro-public:money.transfer:read: Grants access to the 'etoro-public:money.transfer:read' scope.
            etoro-public:money.transfer:write: Grants access to the 'etoro-public:money.transfer:write' scope.
            etoro-public:money:transfer: Grants access to the 'etoro-public:money:transfer' scope.
            etoro-public:notifications:read: Grants access to the 'etoro-public:notifications:read' scope.
            etoro-public:notifications:write: Grants access to the 'etoro-public:notifications:write' scope.
            etoro-public:pi-data:read: Grants access to the 'etoro-public:pi-data:read' scope.
            etoro-public:price-alerts:read: Grants access to the 'etoro-public:price-alerts:read' scope.
            etoro-public:price-alerts:write: Grants access to the 'etoro-public:price-alerts:write' scope.
            etoro-public:real:read: Grants access to the 'etoro-public:real:read' scope.
            etoro-public:real:write: Grants access to the 'etoro-public:real:write' scope.
            etoro-public:sso-applications:read: Grants access to the 'etoro-public:sso-applications:read' scope.
            etoro-public:sso-applications:write: Grants access to the 'etoro-public:sso-applications:write' scope.
            etoro-public:sso-scopes:read: Grants access to the 'etoro-public:sso-scopes:read' scope.
            etoro-public:sso-scopes:write: Grants access to the 'etoro-public:sso-scopes:write' scope.
            etoro-public:sub-accounts:read: Grants access to the 'etoro-public:sub-accounts:read' scope.
            etoro-public:sub-accounts:write: Grants access to the 'etoro-public:sub-accounts:write' scope.
            etoro-public:trade.demo:read: Grants access to the 'etoro-public:trade.demo:read' scope.
            etoro-public:trade.demo:write: Grants access to the 'etoro-public:trade.demo:write' scope.
            etoro-public:trade.real:read: Grants access to the 'etoro-public:trade.real:read' scope.
            etoro-public:trade.real:write: Grants access to the 'etoro-public:trade.real:write' scope.
            etoro-public:user-info:read: Grants access to the 'etoro-public:user-info:read' scope.
            etoro-public:watchlist:read: Grants access to the 'etoro-public:watchlist:read' scope.
            etoro-public:watchlist:write: Grants access to the 'etoro-public:watchlist:write' scope.

````