---
title: "Get a list of quotes."
method: GET
path: "/quotes"
tags: ["Quote"]
---

# Get a list of quotes.

`GET /quotes`

## Request

- Base URL: `https://chainflip-broker.io`
- URL: `https://chainflip-broker.io/quotes`
- Auth: one of:
  - API key in query parameter `apiKey`
  - API key in header `X-API-Key`

Quotes swapping a human-readable `amount` of `sourceAsset` (for example
`0.5` BTC) into `destinationAsset`, with your broker fee included. Returns a
regular quote and, when available, a DCA quote that spreads the swap over time;
Bitcoin quotes also carry a Boost quote. Each quote has the expected output, every fee
involved, the estimated duration, an estimated price and a recommended slippage
tolerance to use with `startSwap`. `commissionBps` can raise your configured
commission for this quote, never lower it.

## Query parameters

- `apiKey` string
- `sourceAsset` string, required
- `destinationAsset` string, required
- `amount` number, double, required
- `commissionBps` integer
- `isVaultSwap` boolean

## Response `200`

A list of quotes for the given assets and amount.

- ChainflipBaasQuoteQuote[]
  - `type` 'regular' | 'dca', required: `regular`: swapped at once. `dca`: split into `numberOfChunks` chunks swapped `chunkIntervalBlocks` apart, usually at a better price for large amounts.
  - `ingressAsset` string, required: The asset you send.
  - `ingressAmount` number, double, required: The amount you send, in whole units of `ingressAsset`.
  - `ingressAmountNative` string, required: `ingressAmount` in the asset's smallest unit.
  - `intermediateAsset` string, nullable: The asset the swap passes through (USDC), when neither asset is USDC.
  - `intermediateAmount` number, double, nullable: The amount of the intermediate asset, in whole units.
  - `intermediateAmountNative` string, nullable: `intermediateAmount` in the asset's smallest unit.
  - `egressAsset` string, required: The asset you receive.
  - `egressAmount` number, double, required: The amount you receive, in whole units of `egressAsset`, after every fee in `includedFees`. An estimate: the final amount depends on the price when the swap executes.
  - `egressAmountNative` string, required: `egressAmount` in the asset's smallest unit.
  - `includedFees` ChainflipBaasQuoteQuoteFee[], required: Every fee taken from the swap, already accounted for in `egressAmount`.
    - `type` 'ingress' | 'broker' | 'network' | 'liquidity' | 'egress' | 'boost' | 'refund', required: The fee: `ingress` (receiving the deposit on the source chain), `network` (Chainflip's network fee), `broker` (the broker and affiliate commissions), `liquidity` (a pool's liquidity provider fee, also in `poolInfo`), `egress` (sending the output on the destination chain) or `boost` (on Boost quotes). `refund` only appears on swap statuses.
    - `asset` string, required: The asset the fee is processed in.
    - `amount` number, double, required: The fee, in whole units of `asset`.
    - `amountNative` string, required: `amount` in the asset's smallest unit.
  - `recommendedSlippageTolerancePercent` number, double, required: Recommended slippage percentage to use when calculating minimum price.
  - `recommendedRetryDurationInBlocks` integer, nullable: Recommended `retryDurationInBlocks` for `/swap`: Chainflip's recommended retry window (30 minutes when BTC is on either side, otherwise 5 minutes) in 6-second state-chain blocks.
  - `recommendedLivePriceSlippageTolerancePercent` number, double, nullable: Recommended `livePriceSlippageTolerancePercent` for `/swap`: how far, in percent, the execution price may fall below Chainflip's oracle price. Absent when Chainflip has no oracle-based protection to recommend for the pair; `/swap` rejects the parameter when either asset has no oracle price.
  - `lowLiquidityWarning` boolean, required: A warning in case liquidity is low and there is a risk of high slippage.
  - `poolInfo` ChainflipBaasQuotePoolInfo[], required: Liquidity pools involved in the swap, as well as estimated liquidity provider fees.
    - `baseAsset` string, required: The base asset of the pool involved.
    - `quoteAsset` string, required: The quote asset of the pool involved.
    - `fee` ChainflipBaasQuotePoolFee, required: A pool's estimated liquidity provider fee.
      - `asset` string, required: The asset the fee is processed in.
      - `amount` number, double, required: The fee, in whole units of `asset`.
      - `amountNative` string, required: `amount` in the asset's smallest unit.
  - `estimatedDurationSeconds` number, double, required: The estimated time the swap will take.
  - `estimatedDurationsSeconds` ChainflipBaasQuoteEstimatedDurationsSeconds, required: The estimated duration of each step, in seconds: witnessing the deposit, executing the swap and including the output transfer in a block on the destination chain.
    - `deposit` number, double, required: The estimated time for a deposit to be witnessed.
    - `swap` number, double, required: The estimated time for a swap to be fully executed.
    - `egress` number, double, required: The estimated time until the output transaction is included in a block.
  - `estimatedPrice` number, double, required: The estimated price in the destination asset for 1 unit of the source asset. Used for slippage calculations.
  - `chunkIntervalBlocks` integer, nullable: The delay between the "sub-swaps" of a DCA swap in number of blocks.
  - `numberOfChunks` integer, nullable: The number of "sub-swaps" to perform for a DCA swap.
  - `boostQuote` ChainflipBaasQuoteBoostQuote: The same quote with Boost, for Bitcoin deposits: liquidity providers credit the deposit after one confirmation instead of waiting for all of them, so the swap is faster, for the boost fee listed in `includedFees`. To start it, pass `maxBoostFeeBps` as `boostFee` to `startSwap`.
    - `ingressAsset` string, required: The asset you send.
    - `ingressAmount` number, double, required: The amount you send, in whole units of `ingressAsset`.
    - `ingressAmountNative` string, required: `ingressAmount` in the asset's smallest unit.
    - `intermediateAsset` string, nullable: The asset the swap passes through (USDC), when neither asset is USDC.
    - `intermediateAmount` number, double, nullable: The amount of the intermediate asset, in whole units.
    - `intermediateAmountNative` string, nullable: `intermediateAmount` in the asset's smallest unit.
    - `egressAsset` string, required: The asset you receive.
    - `egressAmount` number, double, required: The amount you receive with Boost, in whole units of `egressAsset`, after every fee in `includedFees` including the boost fee. An estimate: the final amount depends on the price when the swap executes.
    - `egressAmountNative` string, required: `egressAmount` in the asset's smallest unit.
    - `includedFees` ChainflipBaasQuoteQuoteFee[], required: Every fee taken from the boosted swap, including the boost fee, already accounted for in `egressAmount`.
      - `type` 'ingress' | 'broker' | 'network' | 'liquidity' | 'egress' | 'boost' | 'refund', required: The fee: `ingress` (receiving the deposit on the source chain), `network` (Chainflip's network fee), `broker` (the broker and affiliate commissions), `liquidity` (a pool's liquidity provider fee, also in `poolInfo`), `egress` (sending the output on the destination chain) or `boost` (on Boost quotes). `refund` only appears on swap statuses.
      - `asset` string, required: The asset the fee is processed in.
      - `amount` number, double, required: The fee, in whole units of `asset`.
      - `amountNative` string, required: `amount` in the asset's smallest unit.
    - `recommendedSlippageTolerancePercent` number, double, required: Recommended slippage percentage to use when calculating minimum price for the boosted swap.
    - `recommendedRetryDurationInBlocks` integer, nullable: Recommended `retryDurationInBlocks` for `/swap`, in 6-second state-chain blocks.
    - `recommendedLivePriceSlippageTolerancePercent` number, double, nullable: Recommended `livePriceSlippageTolerancePercent` for `/swap`. Absent when Chainflip has no oracle-based protection to recommend for the pair.
    - `lowLiquidityWarning` boolean, required: A warning in case liquidity is low and there is a risk of high slippage.
    - `poolInfo` ChainflipBaasQuotePoolInfo[], required: Liquidity pools involved in the swap, as well as estimated liquidity provider fees.
      - `baseAsset` string, required: The base asset of the pool involved.
      - `quoteAsset` string, required: The quote asset of the pool involved.
      - `fee` ChainflipBaasQuotePoolFee, required: A pool's estimated liquidity provider fee.
        - `asset` string, required: The asset the fee is processed in.
        - `amount` number, double, required: The fee, in whole units of `asset`.
        - `amountNative` string, required: `amount` in the asset's smallest unit.
    - `estimatedDurationSeconds` number, double, required: The estimated time the swap will take.
    - `estimatedDurationsSeconds` ChainflipBaasQuoteEstimatedDurationsSeconds, required: The estimated duration of each step, in seconds: witnessing the deposit, executing the swap and including the output transfer in a block on the destination chain.
      - `deposit` number, double, required: The estimated time for a deposit to be witnessed.
      - `swap` number, double, required: The estimated time for a swap to be fully executed.
      - `egress` number, double, required: The estimated time until the output transaction is included in a block.
    - `estimatedBoostFeeBps` number, double, required: The estimated fee (in bps) that the user has to pay (from the deposit amount) to get this swap boosted.
    - `maxBoostFeeBps` integer, required: The maximum boost fee (in bps) to open this boosted swap with: pass it as `boostFee` to `/swap`. The fee actually charged is the lowest one that boosts the deposit, at most this.
    - `estimatedPrice` number, double, required: The estimated price in the destination asset for 1 unit of the source asset. Used for slippage calculations.
    - `chunkIntervalBlocks` integer, nullable: The delay between the "sub-swaps" of a DCA swap in number of blocks.
    - `numberOfChunks` integer, nullable: The number of "sub-swaps" to perform for a DCA swap.
  - `platform` string: The provider that produced this quote. Pass it as `platform` to `startSwap` to open the swap with the same provider.

## Other responses

- `400`: Invalid input (validation errors), or an upstream rejection of the request as sent (code).
- `401`: The partner does not have access.
- `403`: Swaps between these assets are not enabled for the partner.
- `500`: An error occurred.
- `503`: A temporary upstream condition, such as maintenance, a disabled asset or the network channel cap. Retry with backoff.

---

[API](https://skmtc.dev/chainflip-broker/apis/chainflip-broker-as-a-service.md) · [All operations](https://skmtc.dev/chainflip-broker/apis/chainflip-broker-as-a-service/llms.txt) · [OpenAPI document](https://skmtc.dev/chainflip-broker/apis/chainflip-broker-as-a-service/revisions/3c819d79d6b9?raw)
