DEX API
获取兑换价格

获取兑换价格#

通过 DEX 聚合器获取最优报价。

请求地址#

GET https://www.okx.com/api/v5/dex/aggregator/quote

请求参数#

参数类型必传描述
chainIdString链 ID (如1: Ethereum,更多可查看链 ID 列表)
amountString币种询价数量 (数量需包含精度,如兑换 1.00 USDT 需输入 1000000,兑换 1.00 DAI 需输入 1000000000000000000),币种精度可通过币种列表取得。
fromTokenAddressString询价币种合约地址 (如0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee)
toTokenAddressString目标币种合约地址 (如0xa892e1fef8b31acc44ce78e7db0a2dc610f92d00)
dexIdsString限定询价的流动性池 dexId , 多个组合按 , 分隔 (如 1,50,180 ,更多可查看流动性列表)
priceImpactProtectionPercentageStringNo(可选,默认值为 90%) 允许的价格影响百分比 (介于 0 和 1.0 之间)。

当用户设置了 priceImpactProtectionPercentage 后,如果估算的价格影响超过了指定的百分比,将会返回一个错误。例如,如果 PriceImpactProtectionPercentage = .25 (25%),任何价格影响高于 25% 的报价都将返回错误。

这是一个可选开启的功能,默认值为 0.9。当百分比被设置为 1.0 (100%) 时,此功能将被禁用,也就是说,每一笔交易都会被允许通过。

注意:当我们无法计算价格影响时,我们会返回 null,并且价格影响保护也会被禁用。
feePercentString发送到分佣地址的询价币种数量百分比 最小百分比:0 最大百分比:3

响应参数#

参数类型描述
chainIdString链 ID (如1: Ethereum,更多可查看链 ID 列表)
dexRouterListObject[]询价路径数据集合
fromTokenAmountString询价币种的兑换数量 (如500000000000000000000009)
toTokenAmountString目标币种的兑换数量 (如168611907733361)
routerString币种兑换的一条路径
routerPercentString当前兑换路径处理的资产占所有资产的百分比 (如5)
subRouterListObject[]子路径列表
dexProtocolObject[]兑换路径中执行的 DEX 协议 (如Verse)
percentString一条路径中单一 DEX 协议的兑换资产占所有 DEX 协议百分比 (如100)
dexNameStringDEX 协议名称
fromTokenObject询价币种信息
tokenContractAddressString币种合约地址 (如0xa892e1fef8b31acc44ce78e7db0a2dc610f92d00)
tokenSymbolString币种简称 (如WETH)
tokenUnitPriceString该接口返回的币种单价是一个结合了链上、交易所以及其他第三方来源数据的综合美元价格。注:此价格仅为推荐价格,在一些特殊情况中,币种单价可能为 null
decimalString币种精度定义了单个的该币种可以被分成多少份的最小单位。例如,如果一个币种的精度是 8,则表示单个的这种代币可以被分成 100,000,000 份的最小单位。注意:该参数仅供参考,币种精度会随着合约拥有者的设置改变等原因发生变化。
toTokenObject路径中目标币种信息
quoteCompareListObject[]询价路径对比列表
dexNameString询价路径 DEX 名称
dexLogoStringDEX 协议名称
tradeFeeString询价路径预估消耗的网络费用 (USD 计价)
receiveAmountString询价路径的接收数量

请求示例#

shell
curl --location --request GET 'https://www.okx.com/api/v5/dex/aggregator/quote?amount=10000000000000000000&chainId=1&toTokenAddress=0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48&fromTokenAddress=0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' \
--header 'OK-ACCESS-PROJECT: 86af********d1bc' \
--header 'OK-ACCESS-KEY: 37c541a1-****-****-****-10fe7a038418' \
--header 'OK-ACCESS-SIGN: leaV********3uw=' \de
--header 'OK-ACCESS-PASSPHRASE: 1****6' \
--header 'OK-ACCESS-TIMESTAMP: 2023-10-18T12:21:41.274Z'

响应示例#

200
{
        "code": "0",
        "data": [
              {
                    "chainId": "1",
                    "dexRouterList": [
                          {
                                "router": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee--0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
                                "routerPercent": "100",
                                "subRouterList": [
                                      {
                                            "dexProtocol": [
                                                  {
                                                        "dexName": "Uniswap V3",
                                                        "percent": "100"
                                                  }
                                            ],
                                            "fromToken": {
                                                  "decimal": "18",
                                                  "tokenContractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
                                                  "tokenSymbol": "WETH",
                                                  "tokenUnitPrice": "3083.47233955226"
                                            },
                                            "toToken": {
                                                  "decimal": "6",
                                                  "tokenContractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
                                                  "tokenSymbol": "USDC",
                                                  "tokenUnitPrice": "0.9998542668416743"
                                            }
                                      }
                                ]
                          }
                    ],
                    "estimateGasFee": "135000",
                    "fromToken": {
                          "decimal": "18",
                          "tokenContractAddress": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
                          "tokenSymbol": "ETH",
                          "tokenUnitPrice": "3083.47233955226"
                    },
                    "fromTokenAmount": "10000000000000000000",
                    "quoteCompareList": [
                          {
                                "amountOut": "30765.431033",
                                "dexLogo": "https://static.okx.com/cdn/wallet/logo/Curve.png",
                                "dexName": "Curve TNG",
                                "tradeFee": "13.883083203"
                          },
                          {
                                "amountOut": "30718.488726",
                                "dexLogo": "https://static.okx.com/cdn/wallet/logo/pancake.png",
                                "dexName": "PancakeSwap V3",
                                "tradeFee": "9.452311968"
                          },
                          {
                                "amountOut": "30712.217539",
                                "dexLogo": "https://static.okx.com/cdn/wallet/logo/UNI.png",
                                "dexName": "Uniswap V2",
                                "tradeFee": "9.452311968"
                          },
                          {
                                "amountOut": "30587.988076",
                                "dexLogo": "https://static.okx.com/cdn/wallet/logo/SUSHI.png",
                                "dexName": "SushiSwap",
                                "tradeFee": "9.452311968"
                          },
                          {
                                "amountOut": "30542.173078",
                                "dexLogo": "https://static.okx.com/cdn/wallet/logo/UNI.png",
                                "dexName": "Uniswap V3",
                                "tradeFee": "9.452311968"
                          }
                    ],
                    "toToken": {
                          "decimal": "6",
                          "tokenContractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
                          "tokenSymbol": "USDC",
                          "tokenUnitPrice": "0.9998542668416743"
                    },
                    "toTokenAmount": "30794623157"
              }
        ],
        "msg": ""
  }