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

# Order Quotes

`POST /orders/{order_id}/quotes`

## Request

- Base URL: `https://api.coinvoyage.io/v3`
- URL: `https://api.coinvoyage.io/v3/orders/{order_id}/quotes`
- Auth: API key in header `X-API-KEY`
- TypeScript: <https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/docs/orders/:order_id/quotes/post.ts> (a function with typed inputs; its response is checked against the schema)

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 | 20000000000002 | 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 | 20000000000002 | 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 | 20000000000002 | 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

## Changes

- **2026-10-13** `9b0a781499e3`: 2 warning, 2 info
  - added the new `20000000000002.00` enum value to the `options/items/input/anyOf[#/components/schemas/QuoteInput]/currency/chain_id` response property for the response status `200`
  - added the new `20000000000002.00` enum value to the `options/items/output/anyOf[#/components/schemas/QuoteOutput]/currency/chain_id` response property for the response status `200`
  - added the new `20000000000002.00` enum value to the request property `filter/anyOf[#/components/schemas/OrderQuotesFilter]/sources/items/chain_id`
  - added the new `20000000000002.00` enum value to the request property `filter/anyOf[#/components/schemas/OrderQuotesFilter]/wallet/anyOf[#/components/schemas/Wallet]/chain_ids/items/`
- **2026-07-31** `9bac53bd1da7`: 2 warning, 2 info
  - added the new `4663.00` enum value to the `options/items/input/anyOf[#/components/schemas/QuoteInput]/currency/chain_id` response property for the response status `200`
  - added the new `4663.00` enum value to the `options/items/output/anyOf[#/components/schemas/QuoteOutput]/currency/chain_id` response property for the response status `200`
  - added the new `4663.00` enum value to the request property `filter/anyOf[#/components/schemas/OrderQuotesFilter]/sources/items/chain_id`
  - added the new `4663.00` enum value to the request property `filter/anyOf[#/components/schemas/OrderQuotesFilter]/wallet/anyOf[#/components/schemas/Wallet]/chain_ids/items/`

[Operation history](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/changes/orders/:order_id/quotes/post.md)

---

[API](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3.md) - [All operations](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/coinvoyage/apis/coinvoyage-api-v3/revisions/3535f46f4c27?raw)
