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

# Get private send quote

> Quote a private send: send funds to another wallet via a private (two-hop) route. Same token in and out.

Returns receive amount, fees, ETA, and min/max. Pass a `quoteId` from the response to [Create private send order](/api-reference/private-send/create-private-send-order).
Quotes are valid for about a minute — create the order before they expire.

Look up token ids with [Get tokens](/api-reference/tokens/search-tokens) (`hasSelfPrivate=true`).
See the [Private send](/docs/v2/private-send) guide.

This endpoint only supports private same-token routes. If you want to keep one integration for every exchange type, use [Get quotes](/api-reference/quotes/get-quotes) instead with the same token on `from` and `to` and `types=private`.



## OpenAPI

````yaml https://api-partner.houdiniswap.com/v2/openapi.json get /quotes/private-send
openapi: 3.0.0
info:
  title: houdiniswap-backend
  version: 2.1.2
  description: Houdiniswap Backend
  license:
    name: ISC
  contact: {}
servers:
  - url: https://api-partner.houdiniswap.com/v2
security: []
paths:
  /quotes/private-send:
    get:
      tags:
        - Private Send
        - Quotes
      summary: Get private send quote
      description: >-
        Quote a private send: send funds to another wallet via a private
        (two-hop) route. Same token in and out.


        Returns receive amount, fees, ETA, and min/max. Pass a `quoteId` from
        the response to [Create private send
        order](/api-reference/private-send/create-private-send-order).

        Quotes are valid for about a minute — create the order before they
        expire.


        Look up token ids with [Get tokens](/api-reference/tokens/search-tokens)
        (`hasSelfPrivate=true`).

        See the [Private send](/docs/v2/private-send) guide.


        This endpoint only supports private same-token routes. If you want to
        keep one integration for every exchange type, use [Get
        quotes](/api-reference/quotes/get-quotes) instead with the same token on
        `from` and `to` and `types=private`.
      operationId: GetPrivateSendQuote
      parameters:
        - description: >-
            Amount as a decimal float in the token's display units

            (e.g. `1.5` BTC, `250.75` USDT) — not a base-units / wei integer
            like `100000000000000`.

            Must be strictly greater than 0 and at most the maximum BSON Double
            value

            (`Number.MAX_VALUE` ≈ 1.7976931348623157e308).
          in: query
          name: amount
          required: true
          schema:
            format: double
            type: number
            minimum: 0
            maximum: 1.7976931348623157e+308
        - description: >-
            Token id to send. Use an `id` from GET
            /v2/tokens?hasSelfPrivate=true — not a symbol.
          in: query
          name: token
          required: true
          schema:
            type: string
          example: 6689b73ec90e45f3b3e51566
        - description: |-
            Partner markup for this request, as a percentage (0.5 = 0.5%).
            Accepted range: 0–4. This value overrides your account’s default
            markup for this trade. Send 0 to apply no markup, or leave the field
            empty / set it to null if no markup is requested. Providers that do
            not support the requested markup will be excluded.
          in: query
          name: markup
          required: false
          schema:
            format: double
            type: number
            minimum: 0
            maximum: 4
          example: 0.5
        - description: >-
            Use XMR if true, if false use another token for the anonymous
            transaction
          in: query
          name: useXmr
          required: false
          schema:
            type: boolean
        - description: >-
            Request a fixed-rate quote. Only partners that support fixed rate
            will be returned.

            Available for standard and private CEX quotes; not supported for
            DEX.
          in: query
          name: fixed
          required: false
          schema:
            type: boolean
        - description: Sender's wallet address for refunds if a fixed-rate swap fails.
          in: query
          name: refundAddress
          required: false
          schema:
            type: string
            maxLength: 200
        - description: >-
            Maximum price deviation percentage when rotating wallets. Only used
            if rotatePayoutWallets is true. Default 5
          in: query
          name: deviationThreshold
          required: false
          schema:
            type: number
            format: double
            minimum: 0
            maximum: 100
        - description: >-
            Number of recent orders to check for path rotation. Only used if
            rotatePayoutWallets is true. Default 10
          in: query
          name: rotationLookback
          required: false
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 100
        - description: >-
            Enable payout wallet rotation for better privacy. Only used for
            centralized quotes
          in: query
          name: rotatePayoutWallets
          required: false
          schema:
            type: boolean
        - description: |-
            When strict rotation exhausts every rotated route, fall back to a
            valid non-rotated route instead of failing. Default false. Requires
            rotatePayoutWallets — a no-op on its own.
          in: query
          name: rotateFallback
          required: false
          schema:
            type: boolean
        - description: |-
            Allowlist for the in-leg of anonymous (private, 2-hop) paths.
            When set, only these providers may be used as the in-leg.
            Silently ignored for STANDARD and DEX quotes, which are single-hop
            and have no in/out leg concept.
          in: query
          name: inLegIncludedSwaps
          required: false
          schema:
            items:
              type: string
            type: array
        - description: >-
            Providers excluded from the in-leg of anonymous (private, 2-hop)
            paths.

            Does not affect the out-leg. Silently ignored for STANDARD and DEX

            quotes, which are single-hop and have no in/out leg concept.
          in: query
          name: inLegExcludedSwaps
          required: false
          schema:
            items:
              type: string
            type: array
        - description: |-
            Allowlist for the out-leg of anonymous (private, 2-hop) paths.
            When set, only these providers may be used as the out-leg.
            Silently ignored for STANDARD and DEX quotes, which are single-hop
            and have no in/out leg concept.
          in: query
          name: outLegIncludedSwaps
          required: false
          schema:
            items:
              type: string
            type: array
        - description: >-
            Providers excluded from the out-leg of anonymous (private, 2-hop)
            paths.

            Does not affect the in-leg. Silently ignored for STANDARD and DEX

            quotes, which are single-hop and have no in/out leg concept.
          in: query
          name: outLegExcludedSwaps
          required: false
          schema:
            items:
              type: string
            type: array
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteResultV2'
        '404':
          description: Token not found or unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Token does not support private send
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    QuoteResultV2:
      properties:
        quotes:
          items:
            $ref: '#/components/schemas/QuoteV2'
          type: array
        total:
          type: number
          format: double
      required:
        - quotes
        - total
      type: object
      additionalProperties: false
    ErrorResponse:
      properties:
        message:
          type: string
        code:
          type: string
        requestId:
          type: string
      required:
        - message
        - code
      type: object
      additionalProperties: false
    QuoteV2:
      properties:
        swap:
          type: string
        quoteId:
          type: string
        duration:
          type: number
          format: double
        providerEta:
          type: number
          format: double
        gas:
          type: number
          format: double
        gasUsd:
          type: number
          format: double
        amountIn:
          type: number
          format: double
        amountOut:
          type: number
          format: double
        amountOutUsd:
          type: number
          format: double
        amountInUsd:
          type: number
          format: double
        feeUsd:
          type: number
          format: double
        bridgeFeeUsd:
          type: number
          format: double
        netAmountOut:
          type: number
          format: double
        error:
          type: string
        swapName:
          type: string
        type:
          $ref: '#/components/schemas/QuoteType'
        filtered:
          type: boolean
          default: false
        filteredReason:
          $ref: '#/components/schemas/FilteredReason'
        supportsSignatures:
          type: boolean
        logoUrl:
          type: string
        markupSupported:
          type: boolean
        slippageSupported:
          type: boolean
        apiMarkupValue:
          type: number
          format: double
        markupType:
          type: string
          enum:
            - absolute
            - percentage
            - bp
        restrictedCountries:
          items:
            type: string
          type: array
        rewardsAvailable:
          type: boolean
        min:
          type: number
          format: double
        max:
          type: number
          format: double
        minOut:
          type: number
          format: double
        maxOut:
          type: number
          format: double
        rateId:
          type: string
        fixed:
          type: boolean
        validUntil:
          type: string
        requiresApproval:
          type: boolean
        isPriority:
          type: boolean
        depositAddressSupported:
          type: boolean
        requiresRefundAddress:
          type: boolean
        appliedApiMarkup:
          type: number
          format: double
        refundAddress:
          type: string
        amountType:
          type: string
          enum:
            - send
            - receive
      type: object
      additionalProperties: false
    QuoteType:
      enum:
        - private
        - standard
        - dex
      type: string
    FilteredReason:
      enum:
        - price_impact
        - different_recipient
      type: string
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header

````