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

# Swap quote — fans out to all providers, returns ranked best route



## OpenAPI

````yaml /openapi.json post /api/swaps/quote
openapi: 3.1.0
info:
  title: WalletSuite REST API
  description: >-
    Multi-chain wallet operations, balances, prices, and transaction lifecycle
    as a REST API.
  contact:
    name: WalletSuite
    url: https://walletsuite.io
  version: prod
servers:
  - url: https://api.walletsuite.io
    description: WalletSuite API
security:
  - ApiKeyAuth: []
tags:
  - name: Transactions
    description: >-
      Get transaction history by address, check live transaction status, and
      send signed transactions.
  - name: Fees
    description: Fee estimation endpoints
  - name: Balances
    description: Fetch balances on any supported chain (Ethereum, Tron).
  - name: Assets
    description: >-
      List supported blockchain assets from the database loaded at startup from
      bundled resources
  - name: Asset Status
    description: Asset enablement and restrictions.
  - name: Prices
    description: Fiat prices for symbols and contract addresses
  - name: Swaps
    description: Swap quote, route, and transaction building.
  - name: Approvals
    description: Allowance, approval tx data, and approval status.
  - name: NFTs
    description: NFT collections, tokens, owners, and transfer building.
  - name: Staking
    description: Native staking APR, validators, positions, and transaction building.
  - name: Name Service
    description: Name resolution and reverse resolution.
  - name: Chains
    description: Chain registry and chain capabilities.
  - name: Chain Specific
    description: Chain specific endpoints consumable by SDK.
  - name: Blocks
    description: View most recently indexed block information.
  - name: Info
    description: General information and summary counts.
paths:
  /api/swaps/quote:
    post:
      tags:
        - Swaps
      summary: Swap quote — fans out to all providers, returns ranked best route
      operationId: quote
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwapQuoteRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiResponseSwapAggregateResult'
components:
  schemas:
    SwapQuoteRequestDto:
      type: object
      description: 'Quote request: returns the best route across all enabled providers.'
      properties:
        srcChain:
          type: string
          description: Source chain key (lowercase).
          example: ethereum
        dstChain:
          type: string
          description: Destination chain key (lowercase).
          example: ethereum
        srcToken:
          type: string
          description: >-
            Source token address (EVM hex / Solana mint), `native`, or the EVM
            EEEE sentinel.
          example: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'
        dstToken:
          type: string
          description: Destination token address.
          example: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
        srcAmount:
          type: integer
          description: Source amount in raw base units (wei, lamports, sats).
          example: 10000000000000000
        fromAddress:
          type: string
          description: Sender address on `srcChain`.
          example: 0xYourEvmWalletHere
        toAddress:
          type: string
          description: Recipient address on `dstChain`. Defaults to `fromAddress`.
          example: 0xYourEvmWalletHere
        slippageBps:
          type: integer
          format: int32
          default: 100
          description: Slippage tolerance in basis points (10 = 0.1%).
          example: 100
        srcSymbol:
          type: string
          description: Optional source token symbol (required for THORChain ERC-20 pools).
          example: WETH
        dstSymbol:
          type: string
          description: Optional destination token symbol.
          example: USDC
        srcDecimals:
          type: integer
          format: int32
          description: Source token decimals (required for non-EVM aggregator routing).
          example: 18
        dstDecimals:
          type: integer
          format: int32
          description: Destination token decimals.
          example: 6
        provider:
          type: string
          description: Restrict the fanout to a single provider id.
          example: oneinch
        excludeProviders:
          type: array
          description: Provider ids to skip during fanout.
          example:
            - odos
          items:
            type: string
      required:
        - dstChain
        - dstToken
        - fromAddress
        - srcAmount
        - srcChain
        - srcToken
    ApiResponseSwapAggregateResult:
      type: object
      properties:
        ok:
          type: boolean
        code:
          type: string
        message:
          type: string
        data:
          $ref: '#/components/schemas/SwapAggregateResult'
      required:
        - code
        - message
        - ok
    SwapAggregateResult:
      type: object
      properties:
        quoteId:
          type: string
        request:
          $ref: '#/components/schemas/SwapQuoteRequest'
        winner:
          $ref: '#/components/schemas/SwapQuote'
        ranked:
          type: array
          items:
            $ref: '#/components/schemas/RankedSwapQuote'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/SwapProviderError'
        quotedAt:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
      required:
        - errors
        - expiresAt
        - quotedAt
        - ranked
        - request
    SwapQuoteRequest:
      type: object
      properties:
        srcChain:
          type: string
        dstChain:
          type: string
        srcToken:
          type: string
        dstToken:
          type: string
        srcAmount:
          type: integer
        fromAddress:
          type: string
        toAddress:
          type: string
        slippageBps:
          type: integer
          format: int32
        srcDecimals:
          type: integer
          format: int32
        dstDecimals:
          type: integer
          format: int32
        srcSymbol:
          type: string
        dstSymbol:
          type: string
        feeBps:
          type: integer
          format: int32
        feeRecipient:
          type: string
        integratorTag:
          type: string
        onlyProviders:
          type: array
          items:
            type: string
            enum:
              - 1inch
              - 0x
              - paraswap
              - kyberswap
              - openocean
              - lifi
              - odos
              - jupiter
              - thorchain
              - mayachain
              - rango
              - squid
              - mayan
              - chainflip
              - aggregator
          uniqueItems: true
        excludeProviders:
          type: array
          items:
            type: string
            enum:
              - 1inch
              - 0x
              - paraswap
              - kyberswap
              - openocean
              - lifi
              - odos
              - jupiter
              - thorchain
              - mayachain
              - rango
              - squid
              - mayan
              - chainflip
              - aggregator
          uniqueItems: true
        timeoutMs:
          type: integer
          format: int64
      required:
        - dstChain
        - dstToken
        - excludeProviders
        - feeBps
        - fromAddress
        - integratorTag
        - slippageBps
        - srcAmount
        - srcChain
        - srcToken
        - timeoutMs
        - toAddress
    SwapQuote:
      type: object
      properties:
        provider:
          type: string
          enum:
            - 1inch
            - 0x
            - paraswap
            - kyberswap
            - openocean
            - lifi
            - odos
            - jupiter
            - thorchain
            - mayachain
            - rango
            - squid
            - mayan
            - chainflip
            - aggregator
        srcChain:
          type: string
        dstChain:
          type: string
        srcToken:
          type: string
        dstToken:
          type: string
        srcAmount:
          type: integer
        dstAmount:
          type: integer
        minDstAmount:
          type: integer
        priceImpactBps:
          type: integer
          format: int32
        estimatedGas:
          type: integer
        gasUsd:
          type: number
        estimatedDurationSec:
          type: integer
          format: int32
        approvalSpender:
          type: string
        tx:
          $ref: '#/components/schemas/SwapTxPayload'
        rawProviderRef:
          type: string
        expiresAt:
          type: string
          format: date-time
        fees:
          $ref: '#/components/schemas/SwapFees'
        warnings:
          type: array
          items:
            type: string
        notes:
          type: string
      required:
        - dstAmount
        - dstChain
        - dstToken
        - expiresAt
        - fees
        - minDstAmount
        - provider
        - rawProviderRef
        - srcAmount
        - srcChain
        - srcToken
        - warnings
    RankedSwapQuote:
      type: object
      properties:
        rank:
          type: integer
          format: int32
        netDstAmount:
          type: integer
        integratorFeeInDstAmount:
          type: integer
        quote:
          $ref: '#/components/schemas/SwapQuote'
      required:
        - integratorFeeInDstAmount
        - netDstAmount
        - quote
        - rank
    SwapProviderError:
      type: object
      properties:
        provider:
          type: string
          enum:
            - 1inch
            - 0x
            - paraswap
            - kyberswap
            - openocean
            - lifi
            - odos
            - jupiter
            - thorchain
            - mayachain
            - rango
            - squid
            - mayan
            - chainflip
            - aggregator
        code:
          type: string
        message:
          type: string
        durationMs:
          type: integer
          format: int64
      required:
        - code
        - durationMs
        - message
        - provider
    SwapTxPayload:
      type: object
      properties:
        type:
          type: string
          enum:
            - EVM
            - COSMOS
            - BTC
            - SOLANA
            - TRON
        chain:
          type: string
        chainId:
          type: integer
          format: int64
        from:
          type: string
        to:
          type: string
        data:
          type: string
        valueWei:
          type: integer
        gasLimit:
          type: integer
        maxPriorityFeePerGas:
          type: integer
        maxFeePerGas:
          type: integer
        gasPrice:
          type: integer
        nonce:
          type: integer
        memo:
          type: string
        approvalRequired:
          type: boolean
        approvalSpender:
          type: string
        approvalToken:
          type: string
        approvalAmount:
          type: integer
        solanaTransactionBase64:
          type: string
        depositAddress:
          type: string
        depositExpiresAt:
          type: string
          format: date-time
      required:
        - approvalRequired
        - chain
        - from
        - to
        - type
    SwapFees:
      type: object
      properties:
        total:
          type: integer
        totalBps:
          type: integer
          format: int32
        integratorBps:
          type: integer
          format: int32
        integratorAmount:
          type: integer
        protocolBps:
          type: integer
          format: int32
        protocolAmount:
          type: integer
        gasBaseFee:
          type: integer
        outboundFee:
          type: integer
        liquidityFee:
          type: integer
        priceImpactBps:
          type: integer
          format: int32
        feeAsset:
          type: string
      required:
        - integratorBps
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: API key provided by WalletSuite team
      name: x-api-key
      in: header

````