---
title: "Order Quotes"
method: POST
path: "/orders/{order_id}/quotes"
tags: ["orders"]
---

# Order Quotes

`POST /orders/{order_id}/quotes`

Ranked options for paying an order: source tokens (wallet scan and/or explicit list) ranked against the order fulfillment destination, falling back to a settlement currency. EXACT_OUTPUT only.

## Path parameters

- `order_id` string, required

## Headers

- `X-API-KEY` string, required

## Request body

- OrderQuotesRequest
  - `filter` OrderQuotesFilter
    - `wallet` Wallet
      - `address` string, required
      - `chain_type` 'EVM' | 'SOL' | 'SUI' | 'UTXO', required
      - `chain_ids` ChainID[]
    - `sources` CurrencyBase[]
      - `address` string, nullable
      - `chain_id` 1 | 10 | 56 | 137 | 4663 | 8453 | 42161 | 20000000000001 | 30000000000001 | 30000000000002, required
    - `limit` integer, nullable
    - `min_balance_usd` number, nullable

## Response `200`

Ranked options (best→worst)

- OrderQuotesResponse
  - `result_type` 'OK' | 'NO_ROUTE' | 'HIGH_IMPACT', required — Soft-error result code returned by /v3/swap/quote endpoints. Non-OK values still arrive on a 200 so polling clients don't have to special-case errors.
  - `options` OrderQuoteOption[], required
    - `rank` integer, required
    - `quote_id` string
    - `expires_at` string, date-time, required
    - `input` QuoteInput
      - `currency` Currency, required
        - `id` string, required
        - `chain_id` 1 | 10 | 56 | 137 | 4663 | 8453 | 42161 | 20000000000001 | 30000000000001 | 30000000000002, required
        - `address` string, nullable
        - `symbol` string, required
        - `name` string
        - `decimals` integer, required
        - `image_uri` string, nullable
        - `chain_image_uri` string, nullable
        - `price_usd` number, nullable
      - `amount` Amount, required
        - `ui` string, required
        - `raw` string, required — A big integer represented as a string to preserve precision
        - `value_usd` number, nullable
      - `balance` Amount
        - `ui` string, required
        - `raw` string, required — A big integer represented as a string to preserve precision
        - `value_usd` number, nullable
      - `breakdown` QuoteBreakdown
        - `total` Amount, required
          - `ui` string, required
          - `raw` string, required — A big integer represented as a string to preserve precision
          - `value_usd` number, nullable
        - `base` Amount, required
          - `ui` string, required
          - `raw` string, required — A big integer represented as a string to preserve precision
          - `value_usd` number, nullable
        - `fees` QuoteFees
          - `total_fee` Amount, required
            - `ui` string, required
            - `raw` string, required — A big integer represented as a string to preserve precision
            - `value_usd` number, nullable
          - `protocol_fee` Amount
            - `ui` string, required
            - `raw` string, required — A big integer represented as a string to preserve precision
            - `value_usd` number, nullable
          - `custom_fee` Amount
            - `ui` string, required
            - `raw` string, required — A big integer represented as a string to preserve precision
            - `value_usd` number, nullable
          - `relayer_fee` Amount
            - `ui` string, required
            - `raw` string, required — A big integer represented as a string to preserve precision
            - `value_usd` number, nullable
        - `gas` Amount
          - `ui` string, required
          - `raw` string, required — A big integer represented as a string to preserve precision
          - `value_usd` number, nullable
    - `output` QuoteOutput
      - `currency` Currency, required
        - `id` string, required
        - `chain_id` 1 | 10 | 56 | 137 | 4663 | 8453 | 42161 | 20000000000001 | 30000000000001 | 30000000000002, required
        - `address` string, nullable
        - `symbol` string, required
        - `name` string
        - `decimals` integer, required
        - `image_uri` string, nullable
        - `chain_image_uri` string, nullable
        - `price_usd` number, nullable
      - `amount` Amount, required
        - `ui` string, required
        - `raw` string, required — A big integer represented as a string to preserve precision
        - `value_usd` number, nullable
      - `amount_out_minimum` Amount
        - `ui` string, required
        - `raw` string, required — A big integer represented as a string to preserve precision
        - `value_usd` number, nullable
    - `trade_type` 'EXACT_INPUT' | 'EXACT_OUTPUT' — Whether the source or destination amount is fixed.
    - `slippage_bps` integer, nullable
    - `price_impact` number, nullable
    - `providers` string[]
    - `issues` QuoteIssues
      - `price_impact_warning` PriceImpactWarning
        - `impact` number, required
        - `threshold` number, required

## Other responses

- `401` — Unauthorized
- `404` — Order not found
- `422` — Invalid request body or order status
- `500` — Internal Server Error

---

[API](https://skmtc.net/coinvoyage/apis/coinvoyage-api-v3.md) · [All operations](https://skmtc.net/coinvoyage/apis/coinvoyage-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coinvoyage/coinvoyage-api-v3/revisions/f3a3056f2c83/schema)
