> ## Documentation Index
> Fetch the complete documentation index at: https://docs.portalhq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List markets

> List tradable instruments (markets), each with mark and oracle price, funding rate, leverage range, fees and minimum size. Filter by venue and sort by 24h volume, mark price or 24h change.

This is a proxy to the Yield.xyz Perps `GET /v1/markets` endpoint. Portal validates the upstream response against the schema documented here before returning it under `data`, and translates asset `network` values to CAIP-2 (venue slugs pass through unchanged). If Yield.xyz changes the response shape, Portal returns a 500 with `id: INTEGRATION_RESPONSE_SCHEMA_DRIFT` instead of a partial response. Upstream reference: [Yield.xyz Perps API](https://docs.yield.xyz).



## OpenAPI

````yaml /openapi/client-api.yaml get /clients/me/integrations/yield-xyz-perps/markets
openapi: 3.1.0
info:
  title: Portal Client API
  version: '3.0'
  description: >
    The Portal Client API provides endpoints for managing wallets, building
    transactions,

    and interacting with blockchain networks. All endpoints require
    authentication via a

    Client API Key or Client Session Token (CST) passed as a Bearer token.


    ## Base URL

    `https://api.portalhq.io/api/v3`


    ## Authentication

    Include your Client API Key or Client Session Token as a Bearer token in the

    `Authorization` header of every request.


    ## Chain ID Format

    Chain parameters use either friendly names (e.g. `ethereum`, `solana`) or
    CAIP-2 format

    (e.g. `eip155:1`, `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`). When using
    CAIP-2 format

    in URLs, ensure the colon is URI-encoded (`%3A`).
servers:
  - url: https://api.portalhq.io/api/v3
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Clients
    description: Core client management endpoints
  - name: Wallet
    description: >-
      Read wallet state — balances, NFTs, transaction history, capabilities, and
      transaction details
  - name: Transactions
    description: Build, broadcast, and evaluate blockchain transactions
  - name: Funding
    description: Fund wallets with testnet tokens
  - name: Wallet Shares
    description: Manage signing and backup share pairs
  - name: Delegations
    description: Manage token approvals, revocations, and delegated transfers
  - name: Session Keys
    description: Manage EIP-7702 session keys for smart accounts
  - name: 0x
    description: Token swap endpoints powered by the 0x protocol
  - name: Yield.xyz
    description: Yield opportunities and staking actions powered by Yield.xyz
  - name: Yield.xyz Borrow
    description: >-
      Supply collateral, borrow, repay and withdraw from lending markets (Aave
      V3, Morpho Blue, SparkLend, Lista) powered by Yield.xyz Borrow
  - name: Yield.xyz Perps
    description: >-
      Trade perpetual futures — open/close leveraged positions, manage
      stop-loss/take-profit, and fund/withdraw a trading account — powered by
      Yield.xyz Perps
  - name: Li.Fi
    description: Cross-chain swaps and bridging powered by Li.Fi
  - name: Blockaid
    description: Transaction and address security scanning powered by Blockaid
  - name: Hypernative
    description: >-
      Transaction, address, token, and NFT security scanning powered by
      Hypernative
  - name: Noah
    description: KYC onboarding, payins, and payouts powered by Noah
  - name: Meld
    description: Buy and sell crypto with fiat through aggregated providers powered by Meld
  - name: Due
    description: Payins, payouts, virtual accounts, and FX powered by Due
  - name: EIP-7702
    description: EIP-7702 account type detection and authorization management
  - name: Deprecated
    description: >-
      Legacy endpoints scheduled for removal. Use the newer equivalents listed
      in each endpoint's description.
paths:
  /clients/me/integrations/yield-xyz-perps/markets:
    get:
      tags:
        - Yield.xyz Perps
      summary: List markets
      description: >-
        List tradable instruments (markets), each with mark and oracle price,
        funding rate, leverage range, fees and minimum size. Filter by venue and
        sort by 24h volume, mark price or 24h change.


        This is a proxy to the Yield.xyz Perps `GET /v1/markets` endpoint.
        Portal validates the upstream response against the schema documented
        here before returning it under `data`, and translates asset `network`
        values to CAIP-2 (venue slugs pass through unchanged). If Yield.xyz
        changes the response shape, Portal returns a 500 with `id:
        INTEGRATION_RESPONSE_SCHEMA_DRIFT` instead of a partial response.
        Upstream reference: [Yield.xyz Perps API](https://docs.yield.xyz).
      operationId: listYieldXyzPerpsMarkets
      parameters:
        - name: offset
          in: query
          required: false
          schema:
            minimum: 0
            default: 0
            example: 0
            type: integer
          description: Offset for pagination
        - name: limit
          in: query
          required: false
          schema:
            minimum: 1
            maximum: 100
            default: 25
            example: 25
            type: integer
          description: Maximum number of items to return
        - name: providerId
          in: query
          required: false
          example: hyperliquid
          schema:
            type: string
          description: Filter by venue (venue slug).
        - name: sortBy
          in: query
          required: false
          schema:
            type: string
            enum:
              - volume24h
              - markPrice
              - priceChangePercent24h
          description: Sort key.
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
          description: Sort direction.
      responses:
        '200':
          description: Paginated list of markets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/YieldXyzPerpsMarketsResponse'
        '400':
          description: >-
            Invalid request (a field failed validation). Also returned when
            Yield.xyz Perps rejects the request or the configured API key; a
            vendor `details.code` is surfaced when present.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Yield.xyz Perps rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: >-
            Yield.xyz Perps returned a response that does not match the schema
            Portal expects (`id: INTEGRATION_RESPONSE_SCHEMA_DRIFT`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationSchemaDriftErrorResponse'
        '503':
          description: Yield.xyz Perps is unreachable or returned an upstream error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    YieldXyzPerpsMarketsResponse:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/YieldXyzPerpsMarketsPage'
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
    IntegrationSchemaDriftErrorResponse:
      type: object
      description: >-
        Returned (HTTP 500) when a third-party response no longer matches the
        schema Portal proxies for it. The `id` is stable: SDKs should key off it
        and fail gracefully. Portal is alerted automatically and fixes the
        mapping server-side.
      required:
        - error
        - id
        - details
      properties:
        error:
          type: string
          example: >-
            yield-xyz-borrow returned a response for GET /v1/positions that does
            not match the expected schema
        id:
          type: string
          enum:
            - INTEGRATION_RESPONSE_SCHEMA_DRIFT
        details:
          type: object
          required:
            - integration
            - endpoint
            - issues
          properties:
            integration:
              type: string
              example: yield-xyz-borrow
            endpoint:
              type: string
              description: The upstream vendor endpoint whose response drifted.
              example: GET /v1/positions
            issues:
              type: array
              items:
                type: object
                required:
                  - path
                  - message
                  - code
                properties:
                  path:
                    type: string
                    description: Dotted path of the offending field in the vendor response.
                    example: supplyBalances.0.balanceUsd
                  message:
                    type: string
                    example: Expected string, received number
                  code:
                    type: string
                    example: invalid_type
    YieldXyzPerpsMarketsPage:
      type: object
      required:
        - total
        - offset
        - limit
        - items
      properties:
        total:
          type: integer
          example: 150
        offset:
          type: integer
          example: 0
        limit:
          type: integer
          example: 25
        items:
          type: array
          items:
            $ref: '#/components/schemas/YieldXyzPerpsMarket'
    YieldXyzPerpsMarket:
      type: object
      description: A tradable instrument on a venue.
      required:
        - id
        - providerId
        - baseAsset
        - quoteAsset
        - leverageRange
        - supportedMarginModes
        - markPrice
        - oraclePrice
        - priceChange24h
        - priceChangePercent24h
        - volume24h
        - openInterest
        - fundingRate
        - fundingRateIntervalHours
        - minSize
        - metadata
      properties:
        id:
          type: string
          example: hyperliquid-eth-usdc
        providerId:
          type: string
          description: Venue slug (passed through unchanged).
          example: hyperliquid
        baseAsset:
          $ref: '#/components/schemas/YieldXyzPerpsToken'
        quoteAsset:
          $ref: '#/components/schemas/YieldXyzPerpsToken'
        leverageRange:
          type: array
          description: '`[min, max]` leverage.'
          items:
            type: number
          example:
            - 1
            - 50
        supportedMarginModes:
          type: array
          description: 'Known values: `isolated`, `cross`.'
          items:
            type: string
          example:
            - isolated
            - cross
        markPrice:
          type: number
          example: 3125.4
        oraclePrice:
          type: number
          example: 3125.1
        priceChange24h:
          type: number
          example: -1.233
        priceChangePercent24h:
          type: number
          example: -5.01
        volume24h:
          type: number
          example: 12500000
        openInterest:
          type: number
          example: 3400
        makerFee:
          type: string
          nullable: true
          example: '0.0002'
        takerFee:
          type: string
          nullable: true
          example: '0.0004'
        fundingRate:
          type: string
          example: '0.00012'
        fundingRateIntervalHours:
          type: number
          example: 8
        minSize:
          type: number
          example: 10.22
        metadata:
          $ref: '#/components/schemas/YieldXyzPerpsMarketMetadata'
    YieldXyzPerpsToken:
      type: object
      description: A token. `network` is a venue slug or CAIP-2.
      required:
        - symbol
        - network
      properties:
        symbol:
          type: string
          example: USDC
        name:
          type: string
          nullable: true
          example: USD Coin
        network:
          type: string
          example: hyperliquid
        decimals:
          type: number
          nullable: true
          example: 6
        address:
          type: string
          nullable: true
          example: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
        logoURI:
          type: string
          nullable: true
    YieldXyzPerpsMarketMetadata:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          example: ETH-USDC Perpetual
        logoURI:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
          example: https://app.hyperliquid.xyz/trade/ETH
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Client API Key or Client Session Token (CST). Pass as a Bearer token in
        the

        Authorization header.

````