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

# List market pairs

> List supported trading pairs with filters for pair identifiers, asset tickers, layers, and pagination. This endpoint is safe to poll and cache.



## OpenAPI

````yaml /openapi.json get /api/v1/market/pairs
openapi: 3.1.0
info:
  title: Kaleidoswap RGB-LSP API
  summary: Public KaleidoSwap Maker API contract
  description: >-
    Public Maker API for KaleidoSwap market data, quotes, atomic swaps, and RGB
    LSPS1

    channel operations.


    Maker endpoints support Bearer API-key authentication. During rollout,

    deployments may accept anonymous requests while attribution is collected;
    once

    API-key enforcement is enabled, requests without a valid `kld_...` key
    return

    `401`.


    Use the per-order `access_token` returned by LSPS1 channel-order creation
    when

    polling protected order status endpoints or submitting a rate decision after
    the

    maker requests client confirmation.
  version: 0.2.0
  termsOfService: https://kaleidoswap.com/terms
  contact:
    name: Kaleidoswap Team
    email: info@kaleidoswap.com
    url: https://kaleidoswap.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  x-support:
    email: contact@kaleidoswap.com
    documentation: https://docs.kaleidoswap.com/api-reference/introduction
  x-build-info:
    version: archive/settlement-backends-pre-removal-7-gb8788aa2
    commit: b8788aa257ea4a01ac0dffc1826cf3bcf1caf09f
    buildDate: '2026-08-05T09:57:35.455127+00:00'
servers:
  - url: http://localhost:8000
    description: Local development
security: []
tags:
  - name: lsps1
    description: >-
      RGB LSPS1 liquidity endpoints for capability discovery, channel-order
      creation, fee estimation, order tracking, rate decisions, and asset
      delivery retries.
  - name: market
    description: >-
      Public market discovery APIs for assets, trading pairs, routes, and
      RFQ-based quote requests.
  - name: swaps
    description: >-
      Atomic swap APIs used by direct RLN integrations to initialize, execute,
      and track swaps.
paths:
  /api/v1/market/pairs:
    get:
      tags:
        - market
      summary: List market pairs
      description: >-
        List supported trading pairs with filters for pair identifiers, asset
        tickers, layers, and pagination. This endpoint is safe to poll and
        cache.
      operationId: getMarketPairs
      parameters:
        - name: pair_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Pair ID (UUID)
            title: Pair Id
          description: Pair ID (UUID)
        - name: from_asset_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Base asset ID
            title: From Asset Id
          description: Base asset ID
        - name: quote_asset_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Quote asset ID
            title: Quote Asset Id
          description: Quote asset ID
        - name: pair_ticker
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Pair ticker 'BASE/QUOTE'
            title: Pair Ticker
          description: Pair ticker 'BASE/QUOTE'
        - name: base_ticker
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Base asset ticker
            title: Base Ticker
          description: Base asset ticker
        - name: quote_ticker
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Quote asset ticker
            title: Quote Ticker
          description: Quote asset ticker
        - name: layer
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Filter by layer (e.g., BTC_LN, RGB_LN, BTC_L1)
            title: Layer
          description: Filter by layer (e.g., BTC_LN, RGB_LN, BTC_L1)
        - name: asset
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Filter by asset ticker or ID
            title: Asset
          description: Filter by asset ticker or ID
        - name: active_only
          in: query
          required: false
          schema:
            type: boolean
            description: Only return active pairs
            default: true
            title: Active Only
          description: Only return active pairs
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Items per page (max 100)
            default: 50
            title: Limit
          description: Items per page (max 100)
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            description: Offset for pagination
            default: 0
            title: Offset
          description: Offset for pagination
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradingPairsResponse'
        '400':
          description: The pair filter is malformed.
          content:
            application/json:
              example:
                detail: 'pair_ticker must be in format ''BASE/QUOTE'', got: BTC-USDT'
              schema:
                $ref: '#/components/schemas/DetailOnlyErrorResponse'
        '401':
          description: Missing or invalid Bearer API key.
          content:
            application/json:
              example:
                error: missing_api_key
              schema:
                $ref: '#/components/schemas/ApiKeyAuthErrorResponse'
        '422':
          description: Request validation failed before reaching application logic.
          content:
            application/json:
              example:
                detail:
                  - loc:
                      - body
                      - rfq_id
                    msg: Field required
                    type: missing
              schema:
                $ref: '#/components/schemas/FastAPIValidationErrorResponse'
        '429':
          description: Too many requests. Respect the rate-limit headers before retrying.
          content:
            application/json:
              example:
                error_code: RATE_LIMIT_EXCEEDED
                message: Too many requests
                details:
                  retry_after: 60
                request_id: req_01HV8Q9X7G0Q7Y3Z
              schema:
                $ref: '#/components/schemas/KaleidoErrorResponse'
        '500':
          description: Unhandled server error.
          content:
            application/json:
              example:
                error_code: INTERNAL_ERROR
                message: Internal Server Error
                details: {}
                request_id: req_01HV8Q9X7G0Q7Y3Z
              schema:
                $ref: '#/components/schemas/KaleidoErrorResponse'
      security:
        - KaleidoApiKey: []
components:
  schemas:
    TradingPairsResponse:
      properties:
        pairs:
          items:
            $ref: '#/components/schemas/TradingPairResponseModel'
          type: array
          title: Pairs
        total:
          type: integer
          title: Total
        limit:
          type: integer
          title: Limit
        offset:
          type: integer
          title: Offset
        timestamp:
          type: integer
          title: Timestamp
      type: object
      required:
        - pairs
        - total
        - limit
        - offset
        - timestamp
      title: TradingPairsResponse
      description: Response containing list of trading pairs with pagination support.
    DetailOnlyErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable error detail
          examples:
            - pair_ticker must be in format 'BASE/QUOTE'
      type: object
      required:
        - detail
      title: DetailOnlyErrorResponse
    ApiKeyAuthErrorResponse:
      properties:
        error:
          type: string
          title: Error
          description: API-key authentication error code
          examples:
            - missing_api_key
            - invalid_api_key
      type: object
      required:
        - error
      title: ApiKeyAuthErrorResponse
    FastAPIValidationErrorResponse:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationErrorDetail'
          type: array
          title: Detail
      type: object
      required:
        - detail
      title: FastAPIValidationErrorResponse
    KaleidoErrorResponse:
      properties:
        error_code:
          type: string
          title: Error Code
          description: Stable machine-readable application error code
          examples:
            - PAIR_NOT_FOUND
        message:
          type: string
          title: Message
          description: Human-readable error message
          examples:
            - 'Trading pair not found: BTC/USDT'
        details:
          additionalProperties: true
          type: object
          title: Details
          description: Optional structured error details
        request_id:
          type: string
          title: Request Id
          description: Request correlation identifier for support and debugging
          examples:
            - req_01HV8Q9X7G0Q7Y3Z
      type: object
      required:
        - error_code
        - message
        - request_id
      title: KaleidoErrorResponse
    TradingPairResponseModel:
      properties:
        id:
          type: string
          title: Id
        base:
          $ref: '#/components/schemas/TradableAssetResponseModel'
        quote:
          $ref: '#/components/schemas/TradableAssetResponseModel'
        price:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Price
        routes:
          items:
            $ref: '#/components/schemas/SwapRoute'
          type: array
          title: Routes
        is_active:
          type: boolean
          title: Is Active
          default: true
        ticker:
          type: string
          title: Ticker
        base_asset:
          type: string
          title: Base Asset
        base_asset_id:
          type: string
          title: Base Asset Id
        quote_asset:
          type: string
          title: Quote Asset
        quote_asset_id:
          type: string
          title: Quote Asset Id
      type: object
      required:
        - id
        - base
        - quote
        - ticker
        - base_asset
        - base_asset_id
        - quote_asset
        - quote_asset_id
      title: TradingPairResponseModel
      description: API response model for trading pairs.
    ValidationErrorDetail:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Loc
          description: Location of the validation failure
          examples:
            - - body
              - rfq_id
        msg:
          type: string
          title: Msg
          description: Validation error message
          examples:
            - Field required
        type:
          type: string
          title: Type
          description: FastAPI/Pydantic validation error type
          examples:
            - missing
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationErrorDetail
    TradableAssetResponseModel:
      properties:
        ticker:
          type: string
          title: Ticker
        asset_id:
          type: string
          title: Asset Id
        name:
          type: string
          title: Name
        precision:
          type: integer
          title: Precision
        protocol_ids:
          additionalProperties:
            type: string
          type: object
          title: Protocol Ids
        media:
          anyOf:
            - $ref: '#/components/schemas/Media'
            - type: 'null'
        issued_supply:
          anyOf:
            - type: integer
            - type: 'null'
          title: Issued Supply
        timestamp:
          anyOf:
            - type: integer
            - type: 'null'
          title: Timestamp
        endpoints:
          items:
            $ref: '#/components/schemas/TradingLimits'
          type: array
          title: Endpoints
      type: object
      required:
        - ticker
        - asset_id
        - name
        - precision
        - protocol_ids
      title: TradableAssetResponseModel
      description: API response model for tradable assets.
    SwapRoute:
      properties:
        from_layer:
          type: string
        to_layer:
          type: string
      type: object
      required:
        - from_layer
        - to_layer
      title: SwapRoute
      description: >-
        Pre-computed valid swap route between two layers.


        Represents a specific path for swapping: from_layer -> to_layer.

        Frozen for immutability and hashability (enables use in sets, dict
        keys).
    Media:
      properties:
        file_path:
          type: string
          title: File Path
          examples:
            - /path/to/media
        digest:
          type: string
          title: Digest
          examples:
            - 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03
        mime:
          type: string
          title: Mime
          examples:
            - text/plain
      type: object
      required:
        - file_path
        - digest
        - mime
      title: Media
    TradingLimits:
      properties:
        layer:
          type: string
          description: Settlement layer (e.g., 'BTC_LN', 'RGB_LN')
        min_amount:
          type: integer
          format: int64
          title: Min Amount
          description: Minimum amount for trading (in smallest unit)
        max_amount:
          type: integer
          format: int64
          title: Max Amount
          description: Maximum amount for trading (in smallest unit)
        is_active:
          type: boolean
          title: Is Active
          description: Whether this layer is active for trading
          default: true
      type: object
      required:
        - layer
        - min_amount
        - max_amount
      title: TradingLimits
      description: >-
        Trading limits for a layer.


        Combines a Layer (protocol/network) with min/max amount limits for
        trading.
  securitySchemes:
    KaleidoApiKey:
      type: http
      scheme: bearer
      bearerFormat: Kaleido API key
      description: Pass a Kaleido API key such as `kld_live_c_...`.

````