---
title: "Returns the best route for the given trade pair using smart settings"
method: POST
path: "/v1/route/smart"
tags: ["Routing"]
---

# Returns the best route for the given trade pair using smart settings

`POST /v1/route/smart`

## Request body

- ApiSmartRouteRequest
  - `input_token` ApiTokenAddress, required
    - `blockchain` string, required
    - `address` string, required
  - `output_token` ApiTokenAddress, required
    - `blockchain` string, required
    - `address` string, required
  - `input_amount` number, double — Input amount in tokens (not nano!) to be swapped
  - `output_amount` number, double — If specified, the route will be built to get the specified output amount. If not specified, the route will be built to get the maximum output amount for the given input amount.
  - `max_splits` integer — Defines the maximum number of independent paths (i.e., transactions) the route can split into. For v4 wallets, you can omit this or set it to 4; for v5 wallets, you can set it to 20 (this is our internal upper limit, and we may reduce it later to something like 10).
  - `additional_data` ApiRouteRequestAdditionalData
    - `sender_address` string
    - `referral_name` string

## Response `200`

resulting route

- ApiRoute
  - `input_token` ApiToken, required
    - `address` ApiTokenAddress, required
      - `blockchain` string, required
      - `address` string, required
    - `metadata` ApiTokenMetadata, required
      - `name` string, required
      - `symbol` string, required
      - `decimals` integer, required
      - `image_url` string
      - `listed` boolean, required
      - `verification` 'whitelisted' | 'blacklisted' | 'community' | 'unknown', required
  - `output_token` ApiToken, required
    - `address` ApiTokenAddress, required
      - `blockchain` string, required
      - `address` string, required
    - `metadata` ApiTokenMetadata, required
      - `name` string, required
      - `symbol` string, required
      - `decimals` integer, required
      - `image_url` string
      - `listed` boolean, required
      - `verification` 'whitelisted' | 'blacklisted' | 'community' | 'unknown', required
  - `input_amount` number, double, required
  - `output_amount` number, double, required
  - `input_usd` number, double, required
  - `output_usd` number, double, required
  - `savings` number, double
  - `left_amount` number, double
  - `recommended_gas` number, double, required
  - `price_impact` number, double, required
  - `estimated_cashback_usd` number, double
  - `partner_commission_ton` number, double
  - `mev_protection_fee` number, double — Fees for the usage of MEV protection.
  - `paths` ApiRoutingStep[], required
    - `blockchain` string, required
    - `dex` string, required
    - `pool_address` string, required
    - `input_token` ApiToken, required
      - `address` ApiTokenAddress, required
        - `blockchain` string, required
        - `address` string, required
      - `metadata` ApiTokenMetadata, required
        - `name` string, required
        - `symbol` string, required
        - `decimals` integer, required
        - `image_url` string
        - `listed` boolean, required
        - `verification` 'whitelisted' | 'blacklisted' | 'community' | 'unknown', required
    - `output_token` ApiToken, required
      - `address` ApiTokenAddress, required
        - `blockchain` string, required
        - `address` string, required
      - `metadata` ApiTokenMetadata, required
        - `name` string, required
        - `symbol` string, required
        - `decimals` integer, required
        - `image_url` string
        - `listed` boolean, required
        - `verification` 'whitelisted' | 'blacklisted' | 'community' | 'unknown', required
    - `swap` ApiSwap, required
      - `result` 'fully_fulfilled' | 'partially_fulfilled' | 'unavailable', required — Result of the swap
      - `input_amount` number, double, required
      - `output_amount` number, double, required
      - `before_reserves` number[], required
      - `after_reserves` number[], required
      - `reason` string
      - `left_amount` number, double
    - `recommended_gas` number, double, required
    - `average_gas` number, double, required
    - `next` ApiRoutingStep[]

## Other responses

- `default` — Some error during request processing

---

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