合约账户与交易
概览¶
更改持仓模式(TRADE)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/positionSide/dual (HMAC SHA256)
变换用户在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| dualSidePosition | STRING | YES | "true": 双向持仓模式;"false": 单向持仓模式 |
查询持仓模式(USER_DATA)¶
响应:
{
"dualSidePosition": true // "true": 双向持仓模式;"false": 单向持仓模式
}
GET /fapi/v3/positionSide/dual (HMAC SHA256)
查询用户目前在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 30
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
更改STP模式(TRADE)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/stpMode
变换用户在 所有symbol 合约上的STP(自成交防止)模式。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| stpMode | ENUM | YES | EXPIRE_TAKER: 撤销taker订单;EXPIRE_MAKER: 撤销maker订单;EXPIRE_BOTH: 同时撤销双方订单 |
| nonce | LONG | YES | 微秒级时间戳 |
| signer | STRING | YES | API钱包地址 |
| signature | STRING | YES | 签名 |
查询STP模式(USER_DATA)¶
响应:
{
"stpMode": "EXPIRE_TAKER" // 当前STP模式
}
GET /fapi/v3/stpMode
查询用户目前在 所有symbol 合约上的STP(自成交防止)模式。
权重: 30
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| nonce | LONG | YES | 微秒级时间戳 |
| signer | STRING | YES | API钱包地址 |
| signature | STRING | YES | 签名 |
更改联合保证金模式(TRADE)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/multiAssetsMargin (HMAC SHA256)
变换用户在 所有symbol 合约上的联合保证金模式:开启或关闭联合保证金模式。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| multiAssetsMargin | STRING | YES | "true": 联合保证金模式开启;"false": 联合保证金模式关闭 |
查询联合保证金模式(USER_DATA)¶
响应:
{
"multiAssetsMargin": true // "true": 联合保证金模式开启;"false": 联合保证金模式关闭
}
GET /fapi/v3/multiAssetsMargin (HMAC SHA256)
查询用户目前在 所有symbol 合约上的联合保证金模式。
权重: 30
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
下单 (TRADE)¶
响应:
{
"clientOrderId": "testOrder", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 22542179, // 系统订单号
"avgPrice": "0.00000", // 平均成交价
"origQty": "10", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "0", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1566818724722, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
POST /fapi/v3/order (HMAC SHA256)
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | 买卖方向 SELL, BUY |
| positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
| type | ENUM | YES | 订单类型 LIMIT, MARKET, STOP, TAKE_PROFIT, STOP_MARKET, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET |
| reduceOnly | STRING | NO | true, false; 非双开模式下默认false;双开模式下不接受此参数; 使用closePosition不支持此参数。 |
| quantity | DECIMAL | NO | 下单数量,使用closePosition不支持此参数。 |
| price | DECIMAL | NO | 委托价格 |
| newClientOrderId | STRING | NO | 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值。必须满足正则规则 ^[\.A-Z\:/a-z0-9_-]{1,36}$ |
| stopPrice | DECIMAL | NO | 触发价, 仅 STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET 需要此参数 |
| closePosition | STRING | NO | true, false;触发后全部平仓,仅支持STOP_MARKET和TAKE_PROFIT_MARKET;不与quantity合用;自带只平仓效果,不与reduceOnly 合用 |
| activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType) |
| callbackRate | DECIMAL | NO | 追踪止损回调比例,可取值范围[0.1, 5],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
| timeInForce | ENUM | NO | 有效方法 |
| workingType | ENUM | NO | stopPrice 触发类型: MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价). 默认 CONTRACT_PRICE |
| priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET 需要此参数 |
| newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
| pegPriceType | ENUM | NO | BBO peg 模式: COUNTERPARTY_1 或 QUEUE_1。在 LIMIT 订单上设置此参数后,撮合引擎在触发时基于订单簿的 BBO 加 pegOffset 解析实际价格。默认不使用 peg。 |
| pegOffset | DECIMAL | NO | 当 pegPriceType 已设置时,相对 BBO 的有符号偏移量。买单应为非正值(如 -0.5),卖单为非负值。单位与 price 相同,必须是 tickSize 的倍数。 |
| priceLimit | DECIMAL | NO | BBO peg 订单的绝对价格上下限。买单:上限——peg 不会高于此;卖单:下限。必须 > 0 且为 tickSize 倍数。默认无限制。 |
| stpMode | ENUM | NO | 本订单的自成交防止(STP)模式,覆盖账户级默认设置。EXPIRE_TAKER:撤销taker订单;EXPIRE_MAKER:撤销maker订单;EXPIRE_BOTH:同时撤销双方订单。 |
根据 order type的不同,某些参数强制要求,具体如下:
| Type | 强制要求的参数 |
|---|---|
LIMIT |
timeInForce, quantity, price |
MARKET |
quantity |
STOP, TAKE_PROFIT |
quantity, price, stopPrice |
STOP_MARKET, TAKE_PROFIT_MARKET |
stopPrice |
TRAILING_STOP_MARKET |
callbackRate |
-
条件单的触发必须:
-
如果订单参数
priceProtect为true:- 达到触发价时,
MARK_PRICE(标记价格)与CONTRACT_PRICE(合约最新价)之间的价差不能超过改symbol触发保护阈值 - 触发保护阈值请参考接口
GET /fapi/v3/exchangeInfo返回内容相应symbol中"triggerProtect"字段
- 达到触发价时,
-
STOP,STOP_MARKET止损单:- 买入: 最新合约价格/标记价格高于等于触发价
stopPrice - 卖出: 最新合约价格/标记价格低于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格高于等于触发价
-
TAKE_PROFIT,TAKE_PROFIT_MARKET止盈单:- 买入: 最新合约价格/标记价格低于等于触发价
stopPrice - 卖出: 最新合约价格/标记价格高于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格低于等于触发价
-
TRAILING_STOP_MARKET跟踪止损单:- 买入: 当合约价格/标记价格区间最低价格低于激活价格
activationPrice,且最新合约价格/标记价高于等于最低价设定回调幅度。 - 卖出: 当合约价格/标记价格区间最高价格高于激活价格
activationPrice,且最新合约价格/标记价低于等于最高价设定回调幅度。
- 买入: 当合约价格/标记价格区间最低价格低于激活价格
-
-
TRAILING_STOP_MARKET跟踪止损单如果遇到报错{"code": -2021, "msg": "Order would immediately trigger."}
表示订单不满足以下条件:- 买入: 指定的
activationPrice必须小于 latest price - 卖出: 指定的
activationPrice必须大于 latest price
- 买入: 指定的
-
newOrderRespType如果传RESULT:MARKET订单将直接返回成交结果;- 配合使用特殊
timeInForce的LIMIT订单将直接返回成交或过期拒绝结果。
-
STOP_MARKET,TAKE_PROFIT_MARKET配合closePosition=true:- 条件单触发依照上述条件单触发逻辑
- 条件触发后,平掉当时持有所有多头仓位(若为卖单)或当时持有所有空头仓位(若为买单)
- 不支持
quantity参数 - 自带只平仓属性,不支持
reduceOnly参数 - 双开模式下,
LONG方向上不支持BUY;SHORT方向上不支持SELL
修改订单 (TRADE)¶
响应:
{
'orderId': 405, //订单号
'symbol': 'GOOGLUSDT', //交易对
'status': 'NEW', //订单状态
'clientOrderId': 'uOLCC3aiCou3z2YL0sxWIX', //用户自定义的订单号
'price': '295.50', //委托价格
'avgPrice': '0.00000', // 平均成交价
'origQty': '0.150', // 原始委托数量
'executedQty': '0', // 成交量
'cumQty': '0',
'cumQuote': '0', // 成交金额
'timeInForce': 'GTC', // 有效方法
'type': 'LIMIT', // 订单类型
'reduceOnly': False, // 仅减仓
'closePosition': False, // 是否条件全平仓
'side': 'BUY', //买卖方向
'positionSide': 'BOTH', // 持仓方向
'stopPrice': '0', // 触发价,对`TRAILING_STOP_MARKET`无效
'workingType': 'CONTRACT_PRICE', // 条件价格触发类型
'priceProtect': False, // 是否开启条件单触发保护
'origType': 'LIMIT', // 触发前订单类型
'updateTime': 1776311274450 //更新时间
}
PUT /fapi/v3/order
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| orderId | LONG | NO | 系统订单号 |
| origClientOrderId | STRING | NO | 用户自定义的订单号 |
| symbol | STRING | YES | 交易对 |
| quantity | DECIMAL | NO | 下单数量 |
| price | DECIMAL | NO | 委托价格 |
- orderId 与 origClientOrderId 必须至少发送一个,同时发送则以 order id为准
- quantity 与 price 均必须发送
- 当新订单的quantity 或 price不满足PRICE_FILTER / PERCENT_FILTER / LOT_SIZE限制,修改会被拒绝,原订单依旧被保留 订单只支持limit类型
- 同一订单修改次数最多10000次
- BBO peg 订单(使用
pegPriceType=COUNTERPARTY_1/QUEUE_1下的订单):撮合引擎在触发时从订单簿解析实际价格。普通 modify 无法改变 peg 解析后的价格。若需要持续追踪 BBO,请使用追单接口POST /fapi/v3/chase。
追单 (TRADE)¶
响应:
{
"strategyId": 12345,
"clientStrategyId": "my_chase_1",
"symbol": "BTCUSDT",
"side": "BUY",
"positionSide": "BOTH",
"quantity": "0.1",
"quantityUnit": "BASE",
"reduceOnly": false,
"chaseOffset": "0.5",
"chaseOffsetType": "ABSOLUTE",
"maxChaseOffset": "10.0",
"maxChaseOffsetType": "ABSOLUTE",
"priceLimit": "50100.00",
"timeInForce": "GTX",
"strategyStatus": "NEW",
"bookTime": 1747728000000,
"updateTime": 1747728000000
}
POST /fapi/v3/chase
下一笔追单策略订单 —— BBO peg GTX 限价单,自动跟随最优买/卖价重新挂单。策略服务每个 tick 轮询订单簿,实时修改委托价格,使订单保持在盘口前列,直到成交或市场偏离原始 BBO 超过 maxChaseOffset。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对。 |
| side | ENUM | YES | BUY 或 SELL。缺失/空值返回 "Mandatory parameter 'side' was not sent, was empty/null, or malformed." |
| positionSide | ENUM | NO | 单向持仓模式默认 BOTH;双向持仓模式必须传 LONG 或 SHORT。 |
| quantityUnit | STRING | YES | BASE(数量以标的资产计价,如 BTC)或 QUOTE(数量以计价资产计价,如 USDT)。QUOTE 时系统按 mark price 换算到 BASE。 |
| quantity | DECIMAL | YES | 数量,单位由 quantityUnit 决定。 |
| reduceOnly | STRING | NO | "true" 或 "false"(大小写不敏感)。任何其他值会被拒绝。默认 "false"。 |
| chaseOffset | DECIMAL | NO | 距 BBO 的偏移量。默认 "0"(完全贴近 BBO)。必须 ≥ 0 且为 tickSize 的倍数。买单价 = bid1 − chaseOffset;卖单价 = ask1 + chaseOffset。 |
| chaseOffsetType | STRING | NO | ABSOLUTE(默认)。v1 仅支持 ABSOLUTE。PERCENTAGE 后续支持。 |
| maxChaseOffset | DECIMAL | NO | 相对原始 BBO 允许偏移的最大距离,超出后追单自动撤销。当 maxChaseOffsetType 已传时必填。必须 > 0。 |
| maxChaseOffsetType | STRING | NO | ABSOLUTE 或 PERCENTAGE(默认 ABSOLUTE)。ABSOLUTE:同价格单位,必须为 tickSize 倍数;PERCENTAGE:≤ 2 位小数。 |
| priceLimit | DECIMAL | NO | 绝对价格上下限。买单:上限(追单不会高于此);卖单:下限。必须 > 0 且为 tickSize 倍数。 |
| timeInForce | ENUM | NO | 默认 GTX(post-only)。不允许 NO_FILL,否则返回 INVALID_TIF。 |
| clientStrategyId | STRING | NO | 用户自定义策略 id。未传则自动生成。长度 ≤ 28 字符(DB 字段为 varchar(28))。须满足 ^[\.A-Z\:/a-z0-9_-]{1,28}$。 |
| recvWindow | LONG | NO | |
| timestamp | LONG | YES |
校验规则:
side必填。reduceOnly仅接受"true"/"false"(大小写不敏感)。其他值返回INVALID_PARAMETER,参数名为reduceOnly。chaseOffset必须 ≥ 0 且为tickSize倍数。chaseOffsetType/maxChaseOffsetType必须为ABSOLUTE或PERCENTAGE;非法值返回INVALID_PARAMETER(不再误用INVALID_CHASE_OFFSET)。maxChaseOffsetType = PERCENTAGE时,输入值小数位数 ≤ 2(线上以 ×100 存储,如"1"→ 1.00%,"100"→ 100.00%)。maxChaseOffsetType = ABSOLUTE时,maxChaseOffset必须为tickSize倍数。timeInForce不允许NO_FILL。clientStrategyId长度必须 ≤ 28 字符。- OI cap 校验:
quantityUnit = QUOTE时按 mark price 换算到 BASE 数量进行 symbol-leverage OI 档位校验,公式qtyBase = qtyQuote × 10^quantityDecimal / markPrice。
行为:
- 初始订单以 GTX(post-only)LIMIT 形式发出,
pegPriceType = QUEUE_1、pegOffset取符号(买单为负,卖单为正)。 - 策略服务每秒轮询,将订单价格修改为
bid1 − chaseOffset(买单)或ask1 + chaseOffset(卖单),跟随 BBO 移动。 - 当市场偏移超过
maxChaseOffset时自动撤销,原因为OFFSET_CANCELLED。 - 新的 peg 价若会突破
priceLimit,追单将 clamp 在priceLimit并在该方向停止继续追价。 - 追单在以下情形终止:成交、用户撤单(
DELETE /fapi/v3/order)、maxChaseOffset触发、priceLimitclamp 且无新的优化空间。
批量下单 (TRADE)¶
响应:
[
{
"clientOrderId": "testOrder", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 22542179, // 系统订单号
"avgPrice": "0.00000", // 平均成交价
"origQty": "10", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "0", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1566818724722, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
},
{
"code": -2022,
"msg": "ReduceOnly Order is rejected."
}
]
POST /fapi/v3/batchOrders (HMAC SHA256)
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| batchOrders | list |
YES | 订单列表,最多支持5个订单 |
其中batchOrders应以list of JSON格式填写订单参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | 买卖方向 SELL, BUY |
| positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
| type | ENUM | YES | 订单类型 LIMIT, MARKET, STOP, TAKE_PROFIT, STOP_MARKET, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET |
| reduceOnly | STRING | NO | true, false; 非双开模式下默认false;双开模式下不接受此参数。 |
| quantity | DECIMAL | YES | 下单数量 |
| price | DECIMAL | NO | 委托价格 |
| newClientOrderId | STRING | NO | 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值. 必须满足正则规则 ^[\.A-Z\:/a-z0-9_-]{1,36}$ |
| stopPrice | DECIMAL | NO | 触发价, 仅 STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET 需要此参数 |
| activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType) |
| callbackRate | DECIMAL | NO | 追踪止损回调比例,可取值范围[0.1, 4],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
| timeInForce | ENUM | NO | 有效方法 |
| workingType | ENUM | NO | stopPrice 触发类型: MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价). 默认 CONTRACT_PRICE |
| priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET 需要此参数 |
| newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
- 具体订单条件规则,与普通下单一致
- 批量下单采取并发处理,不保证订单撮合顺序
- 批量下单的返回内容顺序,与订单列表顺序一致
期货现货互转 (USER_DATA)¶
响应:
{
"tranId": 21841, //交易id
"status": "SUCCESS" //状态
}
POST /fapi/v3/asset/wallet/transfer (USER_DATA)
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| amount | DECIMAL | YES | 数量 |
| asset | STRING | YES | 资产 |
| clientTranId | STRING | YES | 交易id |
| kindType | STRING | YES | 交易类型 |
- kindType 取值为FUTURE_SPOT(期货转现货),SPOT_FUTURE(现货转期货)
查询订单 (USER_DATA)¶
响应:
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1573346959, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
GET /fapi/v3/order (HMAC SHA256)
查询订单状态
- 请注意,如果订单满足如下条件,不会被查询到:
- 订单的最终状态为
CANCELED或者EXPIRED, 并且 - 订单没有任何的成交记录, 并且
- 订单生成时间 + 7天 < 当前时间
- 订单的最终状态为
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderId | LONG | NO | 系统订单号 |
| origClientOrderId | STRING | NO | 用户自定义的订单号 |
注意:
- 至少需要发送
orderId与origClientOrderId中的一个
撤销订单 (TRADE)¶
响应:
{
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1571110484038, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
DELETE /fapi/v3/order (HMAC SHA256)
权重: 1
Parameters:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderId | LONG | NO | 系统订单号 |
| origClientOrderId | STRING | NO | 用户自定义的订单号 |
orderId 与 origClientOrderId 必须至少发送一个
撤销全部订单 (TRADE)¶
响应:
{
"code": "200",
"msg": "The operation of cancel all open order is done."
}
DELETE /fapi/v3/allOpenOrders (HMAC SHA256)
权重: 1
Parameters:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
批量撤销订单 (TRADE)¶
响应:
[
{
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1571110484038, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
},
{
"code": -2011,
"msg": "Unknown order sent."
}
]
DELETE /fapi/v3/batchOrders (HMAC SHA256)
权重: 1
Parameters:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderIdList | LIST\<LONG> | NO | 系统订单号, 最多支持10个订单 比如 [1234567,2345678] |
| origClientOrderIdList | LIST\<STRING> | NO | 用户自定义的订单号, 最多支持10个订单 比如 ["my_id_1","my_id_2"] 需要encode双引号。逗号后面没有空格。 |
orderIdList 与 origClientOrderIdList 必须至少发送一个,不可同时发送
倒计时撤销所有订单 (TRADE)¶
响应:
{
"symbol": "BTCUSDT",
"countdownTime": "100000"
}
POST /fapi/v3/countdownCancelAll (HMAC SHA256)
权重: 10
Parameters:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | |
| countdownTime | LONG | YES | 倒计时。 1000 表示 1 秒; 0 表示取消倒计时撤单功能。 |
-
该接口可以被用于确保在倒计时结束时撤销指定symbol上的所有挂单。 在使用这个功能时,接口应像心跳一样在倒计时内被反复调用,以便可以取消既有的倒计时并开始新的倒数计时设置。
-
用法示例: 以30s的间隔重复此接口,每次倒计时countdownTime设置为120000(120s)。
如果在120秒内未再次调用此接口,则您指定symbol上的所有挂单都会被自动撤销。
如果在120秒内以将countdownTime设置为0,则倒数计时器将终止,自动撤单功能取消。 -
系统会大约每10毫秒检查一次所有倒计时情况,因此请注意,使用此功能时应考虑足够的冗余。
我们不建议将倒记时设置得太精确或太小。
查询当前挂单 (USER_DATA)¶
响应:
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"status": "NEW", // 订单状态
"positionSide": "SHORT", // 持仓方向
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
GET /fapi/v3/openOrder (HMAC SHA256)
请小心使用不带symbol参数的调用
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderId | LONG | NO | 系统订单号 |
| origClientOrderId | STRING | NO | 用户自定义的订单号 |
orderId与origClientOrderId中的一个为必填参数- 查询的订单如果已经成交或取消,将返回报错 "Order does not exist."
查看当前全部挂单 (USER_DATA)¶
响应:
[
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
]
GET /fapi/v3/openOrders (HMAC SHA256)
请小心使用不带symbol参数的调用
权重: - 带symbol 1 - 不带 40
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 交易对 |
- 不带symbol参数,会返回所有交易对的挂单
查询所有订单(包括历史订单) (USER_DATA)¶
响应:
[
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
]
GET /fapi/v3/allOrders (HMAC SHA256)
- 请注意,如果订单满足如下条件,不会被查询到:
- 订单的最终状态为
CANCELED或者EXPIRED, 并且 - 订单没有任何的成交记录, 并且
- 订单生成时间 + 7天 < 当前时间
- 订单的最终状态为
权重: 5
Parameters:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| orderId | LONG | NO | 只返回此orderID及之后的订单,缺省返回最近的订单 |
| startTime | LONG | NO | 起始时间 |
| endTime | LONG | NO | 结束时间 |
| limit | INT | NO | 返回的结果集数量 默认值:500 最大值:1000 |
- 查询时间范围最大不得超过7天
- 默认查询最近7天内的数据
账户余额v3 (USER_DATA)¶
响应:
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "USDT", // 资产
"balance": "122607.35137903", // 总余额
"crossWalletBalance": "23.72469206", // 全仓余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 下单可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1617939110373
}
]
GET /fapi/v3/balance (HMAC SHA256)
Weight: 5
Parameters:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
账户信息v3 (USER_DATA)¶
响应:
{
"feeTier": 0, // 手续费等级
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以入金
"canWithdraw": true, // 是否可以出金
"updateTime": 0,
"totalInitialMargin": "0.00000000", // 但前所需起始保证金总额(存在逐仓请忽略), 仅计算usdt资产
"totalMaintMargin": "0.00000000", // 维持保证金总额, 仅计算usdt资产
"totalWalletBalance": "23.72469206", // 账户总余额, 仅计算usdt资产
"totalUnrealizedProfit": "0.00000000", // 持仓未实现盈亏总额, 仅计算usdt资产
"totalMarginBalance": "23.72469206", // 保证金总余额, 仅计算usdt资产
"totalPositionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalOpenOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格), 仅计算usdt资产
"totalCrossWalletBalance": "23.72469206", // 全仓账户余额, 仅计算usdt资产
"totalCrossUnPnl": "0.00000000", // 全仓持仓未实现盈亏总额, 仅计算usdt资产
"availableBalance": "23.72469206", // 可用余额, 仅计算usdt资产
"maxWithdrawAmount": "23.72469206" // 最大可转出余额, 仅计算usdt资产
"assets": [
{
"asset": "USDT", //资产
"walletBalance": "23.72469206", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206", // 最大可转出余额
"marginAvailable": true, // 是否可用作联合保证金
"updateTime": 1625474304765 //更新时间
},
{
"asset": "BUSD", //资产
"walletBalance": "103.12345678", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "103.12345678", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "103.12345678", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "103.12345678", // 可用余额
"maxWithdrawAmount": "103.12345678", // 最大可转出余额
"marginAvailable": true, // 否可用作联合保证金
"updateTime": 0 // 更新时间
}
],
"positions": [ // 头寸,将返回所有市场symbol。
//根据用户持仓模式展示持仓方向,即单向模式下只返回BOTH持仓情况,双向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"initialMargin": "0", // 当前所需起始保证金(基于最新标记价格)
"maintMargin": "0", //维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0", // 当前挂单所需起始保证金(基于最新标记价格)
"leverage": "100", // 杠杆倍率
"isolated": true, // 是否是逐仓模式
"entryPrice": "0.00000", // 持仓成本价
"maxNotional": "250000", // 当前杠杆下用户可用的最大名义价值
"positionSide": "BOTH", // 持仓方向
"positionAmt": "0", // 持仓数量
"updateTime": 0 // 更新时间
}
]
}
GET /fapi/v3/account (HMAC SHA256)
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
调整开仓杠杆 (TRADE)¶
响应:
{
"leverage": 21, // 杠杆倍数
"maxNotionalValue": "1000000", // 当前杠杆倍数下允许的最大名义价值
"symbol": "BTCUSDT" // 交易对
}
POST /fapi/v3/leverage (HMAC SHA256)
调整用户在指定symbol合约的开仓杠杆。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| leverage | INT | YES | 目标杠杆倍数:1 到 125 整数 |
变换逐全仓模式 (TRADE)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/marginType (HMAC SHA256)
变换用户在指定symbol合约上的保证金模式:逐仓或全仓。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| marginType | ENUM | YES | 保证金模式 ISOLATED(逐仓), CROSSED(全仓) |
调整逐仓保证金 (TRADE)¶
响应:
{
"amount": 100.0,
"code": 200,
"msg": "Successfully modify position margin.",
"type": 1
}
POST /fapi/v3/positionMargin (HMAC SHA256)
针对逐仓模式下的仓位,调整其逐仓保证金资金。
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
| amount | DECIMAL | YES | 保证金资金 |
| type | INT | YES | 调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金 |
- 只针对逐仓symbol 与 positionSide(如有)
逐仓保证金变动历史 (TRADE)¶
响应:
[
{
"amount": "23.36332311", // 数量
"asset": "USDT", // 资产
"symbol": "BTCUSDT", // 交易对
"time": 1578047897183, // 时间
"type": 1, // 调整方向
"positionSide": "BOTH" // 持仓方向
},
{
"amount": "100",
"asset": "USDT",
"symbol": "BTCUSDT",
"time": 1578047900425,
"type": 1,
"positionSide": "LONG"
}
]
GET /fapi/v3/positionMargin/history (HMAC SHA256)
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| type | INT | NO | 调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金 |
| startTime | LONG | NO | 起始时间 |
| endTime | LONG | NO | 结束时间 |
| limit | INT | NO | 返回的结果集数量 默认值: 500 |
用户持仓风险v3 (USER_DATA)¶
响应:
单向持仓模式下:
[
{
"entryPrice": "0.00000", // 开仓均价
"marginType": "isolated", // 逐仓模式或全仓模式
"isAutoAddMargin": "false",
"isolatedMargin": "0.00000000", // 逐仓保证金
"leverage": "10", // 当前杠杆倍数
"liquidationPrice": "0", // 参考强平价格
"markPrice": "6679.50671178", // 当前标记价格
"maxNotionalValue": "20000000", // 当前杠杆倍数允许的名义价值上限
"positionAmt": "0.000", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"symbol": "BTCUSDT", // 交易对
"unRealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionSide": "BOTH", // 持仓方向
"updateTime": 1625474304765 // 更新时间
}
]
双向持仓模式下:
[
{
"entryPrice": "6563.66500", // 开仓均价
"marginType": "isolated", // 逐仓模式或全仓模式
"isAutoAddMargin": "false",
"isolatedMargin": "15517.54150468", // 逐仓保证金
"leverage": "10", // 当前杠杆倍数
"liquidationPrice": "5930.78", // 参考强平价格
"markPrice": "6679.50671178", // 当前标记价格
"maxNotionalValue": "20000000", // 当前杠杆倍数允许的名义价值上限
"positionAmt": "20.000", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"symbol": "BTCUSDT", // 交易对
"unRealizedProfit": "2316.83423560" // 持仓未实现盈亏
"positionSide": "LONG", // 持仓方向
"updateTime": 1625474304765 // 更新时间
},
{
"entryPrice": "0.00000", // 开仓均价
"marginType": "isolated", // 逐仓模式或全仓模式
"isAutoAddMargin": "false",
"isolatedMargin": "5413.95799991", // 逐仓保证金
"leverage": "10", // 当前杠杆倍数
"liquidationPrice": "7189.95", // 参考强平价格
"markPrice": "6679.50671178", // 当前标记价格
"maxNotionalValue": "20000000", // 当前杠杆倍数允许的名义价值上限
"positionAmt": "-10.000", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"symbol": "BTCUSDT", // 交易对
"unRealizedProfit": "-1156.46711780" // 持仓未实现盈亏
"positionSide": "SHORT", // 持仓方向
"updateTime": 1625474304765 //更新时间
}
]
GET /fapi/v3/positionRisk (HMAC SHA256)
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO |
注意
请与账户推送信息ACCOUNT_UPDATE配合使用,以满足您的及时性和准确性需求。
账户成交历史 (USER_DATA)¶
响应:
[
{
"buyer": false, // 是否是买方
"commission": "-0.07819010", // 手续费
"commissionAsset": "USDT", // 手续费计价单位
"id": 698759, // 交易ID
"maker": false, // 是否是挂单方
"orderId": 25851813, // 订单编号
"price": "7819.01", // 成交价
"qty": "0.002", // 成交量
"quoteQty": "15.63802", // 成交额
"realizedPnl": "-0.91539999", // 实现盈亏
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"symbol": "BTCUSDT", // 交易对
"time": 1569514978020 // 时间
}
]
GET /fapi/v3/userTrades (HMAC SHA256)
获取某交易对的成交历史
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| startTime | LONG | NO | 起始时间 |
| endTime | LONG | NO | 结束时间 |
| fromId | LONG | NO | 返回该fromId及之后的成交,缺省返回最近的成交 |
| limit | INT | NO | 返回的结果集数量 默认值:500 最大值:1000. |
- 如果
startTime和endTime均未发送, 只会返回最近7天的数据。 - startTime 和 endTime 的最大间隔为7天
获取账户损益资金流水(USER_DATA)¶
响应:
[
{
"symbol": "", // 交易对,仅针对涉及交易对的资金流
"incomeType": "TRANSFER", // 资金流类型
"income": "-0.37500000", // 资金流数量,正数代表流入,负数代表流出
"asset": "USDT", // 资产内容
"info":"TRANSFER", // 备注信息,取决于流水类型
"time": 1570608000000, // 时间
"tranId":"9689322392", // 划转ID
"tradeId":"" // 引起流水产生的原始交易ID
},
{
"symbol": "BTCUSDT",
"incomeType": "COMMISSION",
"income": "-0.01000000",
"asset": "USDT",
"info":"COMMISSION",
"time": 1570636800000,
"tranId":"9689322392",
"tradeId":"2059192"
}
]
GET /fapi/v3/income (HMAC SHA256)
权重: 30
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 交易对 |
| incomeType | STRING | NO | 收益类型 "TRANSFER","WELCOME_BONUS", "REALIZED_PNL","FUNDING_FEE", "COMMISSION", "INSURANCE_CLEAR", and "MARKET_MERCHANT_RETURN_REWARD" |
| startTime | LONG | NO | 起始时间 |
| endTime | LONG | NO | 结束时间 |
| limit | INT | NO | 返回的结果集数量 默认值:100 最大值:1000 |
- 如果
startTime和endTime均未发送, 只会返回最近7天的数据。 - 如果
incomeType没有发送,返回所有类型账户损益资金流水。 - "trandId" 在相同用户的同一种收益流水类型中是唯一的。
杠杆分层标准 (USER_DATA)¶
响应:
[
{
"symbol": "ETHUSDT",
"brackets": [
{
"bracket": 1, // 层级
"initialLeverage": 75, // 该层允许的最高初始杠杆倍数
"notionalCap": 10000, // 该层对应的名义价值上限
"notionalFloor": 0, // 该层对应的名义价值下限
"maintMarginRatio": 0.0065, // 该层对应的维持保证金率
"cum":0 // 速算数
},
]
}
]
或 (若发送symbol)
{
"symbol": "ETHUSDT",
"brackets": [
{
"bracket": 1,
"initialLeverage": 75,
"notionalCap": 10000,
"notionalFloor": 0,
"maintMarginRatio": 0.0065,
"cum":0
},
]
}
GET /fapi/v3/leverageBracket
权重: 1
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO |
持仓ADL队列估算 (USER_DATA)¶
响应:
[
{
"symbol": "ETHUSDT",
"adlQuantile":
{
// 对于全仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "HEDGE", 其中"HEDGE"的存在仅作为标记;如果多空均有持仓的情况下,"LONG"和"SHORT"应返回共同计算后相同的队列分数。
"LONG": 3,
"SHORT": 3,
"HEDGE": 0 // HEDGE 仅作为指示出现,请忽略数值
}
},
{
"symbol": "BTCUSDT",
"adlQuantile":
{
// 对于单向持仓模式或者是逐仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "BOTH" 分别表示不同持仓方向上持仓的adl队列分数
"LONG": 1, // 双开模式下多头持仓的ADL队列估算分
"SHORT": 2, // 双开模式下空头持仓的ADL队列估算分
"BOTH": 0 // 单开模式下持仓的ADL队列估算分
}
}
]
GET /fapi/v3/adlQuantile
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO |
-
每30秒更新数据
-
队列分数0,1,2,3,4,分数越高说明在ADL队列中的位置越靠前
-
对于单向持仓模式或者是逐仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "BOTH" 分别表示不同持仓方向上持仓的adl队列分数
-
对于全仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "HEDGE", 其中"HEDGE"的存在仅作为标记;其中如果多空均有持仓的情况下,"LONG"和"SHORT"返回共同计算后相同的队列分数。
用户强平单历史 (USER_DATA)¶
响应:
[
{
"orderId": 6071832819,
"symbol": "BTCUSDT",
"status": "FILLED",
"clientOrderId": "autoclose-1596107620040000020",
"price": "10871.09",
"avgPrice": "10913.21000",
"origQty": "0.001",
"executedQty": "0.001",
"cumQuote": "10.91321",
"timeInForce": "IOC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "SELL",
"positionSide": "BOTH",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"origType": "LIMIT",
"time": 1596107620044,
"updateTime": 1596107620087
}
{
"orderId": 6072734303,
"symbol": "BTCUSDT",
"status": "FILLED",
"clientOrderId": "adl_autoclose",
"price": "11023.14",
"avgPrice": "10979.82000",
"origQty": "0.001",
"executedQty": "0.001",
"cumQuote": "10.97982",
"timeInForce": "GTC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "BUY",
"positionSide": "SHORT",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"origType": "LIMIT",
"time": 1596110725059,
"updateTime": 1596110725071
}
]
GET /fapi/v3/forceOrders
权重: 带symbol 20, 不带symbol 50
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | |
| autoCloseType | ENUM | NO | "LIQUIDATION": 强平单, "ADL": ADL减仓单. |
| startTime | LONG | NO | |
| endTime | LONG | NO | |
| limit | INT | NO | Default 50; max 100. |
- 如果没有传 "autoCloseType", 强平单和ADL减仓单都会被返回
- 如果没有传"startTime", 只会返回"endTime"之前7天内的数据
用户手续费率 (USER_DATA)¶
响应:
{
"symbol": "BTCUSDT",
"makerCommissionRate": "0.0002", // 0.02%
"takerCommissionRate": "0.0004" // 0.04%
}
GET /fapi/v3/commissionRate (HMAC SHA256)
权重: 20
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES |
绑定子账户 (USER_DATA)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/sub-accounts/bind
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| childAddress | STRING | YES | 子账户钱包地址 |
| name | STRING | YES | 子账户名称 |
| nonce | LONG | YES | 微秒级时间戳,用于防重放 |
| user | STRING | YES | 母账户钱包地址 |
| childSignature | STRING | YES | 子账户对消息体的签名(见下方签名说明) |
| signature | STRING | YES | 母账户对消息体的签名,必须使用母账户钱包私钥签名(见下方签名说明) |
签名说明¶
本接口需要两次独立签名,两次签名的消息体不同:
第一步:子账户签名(childSignature)¶
子账户使用自己的钱包私钥对以下消息体签名:
childAddress={childAddress}&name={name}&nonce={nonce}&user={user}
第二步:母账户签名(signature)¶
母账户使用自己的钱包私钥(非 API Key)对以下消息体签名,消息体在第一步基础上追加了 childSignature:
childAddress={childAddress}&name={name}&nonce={nonce}&user={user}&childSignature={childSignature}
两次签名消息体的关键区别:母账户的签名消息体包含
childSignature,子账户的不包含。
支持的签名算法¶
| 账户类型 | 签名算法 | 编码格式 |
|---|---|---|
| EVM 地址 | EIP-712 Typed Data(chainId=1666,message.msg=消息体) | Hex |
| Solana 地址 | Ed25519 | Base58 |
母账户与子账户的地址类型必须一致(EVM 对 EVM,Solana 对 Solana)。
注意事项¶
signature必须使用母账户钱包私钥签名,不可使用 signer 私钥替代childSignature与signature不可互换user字段必须与已认证的母账户地址一致,不可伪造- 只支持白名单地址创建,需要联系项目方配置
创建子账户 (TRADE)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/createSubAccount
权重: 5
所需权限: TRADE
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| subSourceAddr | STRING | YES | 子账户钱包地址 |
| subAccountName | STRING | YES | 子账户名称 |
| nonce | LONG | YES | 微秒级时间戳,用于防重放攻击 |
| user | STRING | YES | 母账户钱包地址 |
| signer | STRING | YES | 与母账户关联的 signer 地址 |
| childSignature | STRING | YES | 子账户对消息体的签名(见下方签名说明) |
| signature | STRING | YES | 母账户对消息体的签名,必须使用母账户钱包私钥签名(见下方签名说明) |
签名说明¶
本接口需要两次独立签名,两次签名的消息体不同:
第一步:子账户签名(childSignature)¶
子账户使用自己的钱包私钥对以下消息体签名:
subAccountName={subAccountName}&subSourceAddr={subSourceAddr}&nonce={nonce}&user={user}&signer={signer}
第二步:母账户签名(signature)¶
母账户使用自己的钱包私钥(非 signer 私钥)对以下消息体签名,消息体在第一步基础上追加了 childSignature:
subAccountName={subAccountName}&subSourceAddr={subSourceAddr}&nonce={nonce}&user={user}&signer={signer}&childSignature={childSignature}
两次签名消息体的关键区别:母账户的签名消息体包含
childSignature,子账户的不包含。
支持的签名算法¶
| 账户类型 | 签名算法 | 编码格式 |
|---|---|---|
| EVM 地址 | EIP-712 Typed Data(chainId=1666,message.msg=消息体) | Hex |
| Solana 地址 | Ed25519 | Base58 |
母账户与子账户的地址类型必须一致(EVM 对 EVM,Solana 对 Solana)。
注意事项¶
signature必须使用母账户钱包私钥签名,不可使用 signer 私钥替代。childSignature与signature不可互换。user字段必须与已认证的母账户地址一致,不可伪造。
查询子账户列表 (USER_DATA)¶
响应:
[
{
"accountId": 123456,
"subAccountName": "trading-desk-1",
"parentAccount": false
},
{
"accountId": 100000,
"subAccountName": "",
"parentAccount": true
}
]
GET /fapi/v3/getSubAccountList
权重: 5
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| nonce | LONG | YES | 微秒级时间戳,用于防重放攻击 |
| user | STRING | YES | 母账户钱包地址 |
| signer | STRING | YES | 与母账户关联的 signer 地址 |
| signature | STRING | YES | 对消息体的签名(见下方签名说明) |
响应字段:
| 名称 | 类型 | 描述 |
|---|---|---|
| accountId | LONG | 账户 ID |
| subAccountName | STRING | 子账户名称 |
| parentAccount | BOOLEAN | 是否为母账户(true 表示母账户,false 表示子账户) |
签名说明¶
使用 signer 私钥(EIP-712)对以下消息体签名(无论母账户是 EVM 还是 Solana 地址,均使用 EIP-712):
nonce={nonce}&user={user}&signer={signer}
签名算法¶
| 算法 | 编码格式 |
|---|---|
| EIP-712 Typed Data(chainId=1666,message.msg=消息体) | Hex |
与其他子账户接口不同,
getSubAccountList始终使用 signer 私钥(EIP-712)签名,即使母账户为 Solana 地址也不例外。
更新子账户 (TRADE)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/updateSubAccount
权重: 5
所需权限: TRADE
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| subSourceAddr | STRING | YES | 待更新的子账户钱包地址 |
| nonce | LONG | YES | 微秒级时间戳,用于防重放攻击 |
| user | STRING | YES | 母账户钱包地址 |
| signer | STRING | YES | 与母账户关联的 signer 地址 |
| subAccountName | STRING | NO | 新的子账户名称(subAccountName 与 status 至少需传其一) |
| status | STRING | NO | 子账户状态:NORMAL(正常)或 FROZEN(冻结) |
| signature | STRING | YES | 母账户对消息体的签名,必须使用母账户钱包私钥签名(见下方签名说明) |
签名说明¶
母账户使用自己的钱包私钥(非 signer 私钥)对以下消息体签名:
subSourceAddr={subSourceAddr}&nonce={nonce}&user={user}&signer={signer}[&subAccountName={subAccountName}][&status={status}]
可选字段(
subAccountName、status)仅在请求中包含时才加入消息体。
支持的签名算法¶
| 账户类型 | 签名算法 | 编码格式 |
|---|---|---|
| EVM 地址 | EIP-712 Typed Data(chainId=1666,message.msg=消息体) | Hex |
| Solana 地址 | Ed25519 | Base58 |
注意事项¶
signature必须使用母账户钱包私钥签名,不可使用 signer 私钥替代。subAccountName与status至少需传其一。status取值:NORMAL(解冻 / 正常),FROZEN(冻结)。- 已冻结的子账户无法发起划转。
子账户划转 (TRADE)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/subAccountTransfer
权重: 5
所需权限: TRADE
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| toAccountAddress | STRING | YES | 目标钱包地址 |
| asset | STRING | YES | 资产名称(如 USDT) |
| amount | STRING | YES | 划转金额 |
| kindType | ENUM | YES | 划转方向(见下表) |
| nonce | LONG | YES | 微秒级时间戳,用于防重放攻击 |
| user | STRING | YES | 签名账户的钱包地址(通常为母账户地址;子账户向母账户划转时为子账户地址) |
| signer | STRING | YES | 与 user 关联的 signer 地址 |
| fromAccountAddress | STRING | NO | 转出钱包地址。当转出账户与 user 不一致时必传(如子→子划转,或以第三方身份发起的母→子划转) |
| signature | STRING | YES | 对消息体的签名,必须使用 user 账户的钱包私钥签名(见下方签名说明) |
kindType 取值:
| 取值 | 说明 |
|---|---|
FUTURE_FUTURE |
合约账户 → 合约账户 |
FUTURE_SPOT |
合约账户 → 现货账户 |
SPOT_FUTURE |
现货账户 → 合约账户 |
SPOT_SPOT |
现货账户 → 现货账户 |
签名说明¶
使用 user 账户的钱包私钥(非 signer 私钥)对以下消息体签名:
不含 fromAccountAddress:
toAccountAddress={toAccountAddress}&asset={asset}&amount={amount}&kindType={kindType}&nonce={nonce}&user={user}&signer={signer}
含 fromAccountAddress:
toAccountAddress={toAccountAddress}&asset={asset}&amount={amount}&kindType={kindType}&nonce={nonce}&user={user}&signer={signer}&fromAccountAddress={fromAccountAddress}
支持的签名算法¶
| 账户类型 | 签名算法 | 编码格式 |
|---|---|---|
| EVM 地址 | EIP-712 Typed Data(chainId=1666,message.msg=消息体) | Hex |
| Solana 地址 | Ed25519 | Base58 |
划转场景说明¶
| 场景 | user |
fromAccountAddress |
签名私钥 |
|---|---|---|---|
| 母账户 → 子账户 | 母账户地址 | (无需传入) | 母账户钱包私钥 |
| 子账户 → 母账户 | 子账户地址 | (无需传入) | 子账户钱包私钥 |
| 子账户 A → 子账户 B | 母账户地址 | 子账户 A 地址 | 母账户钱包私钥 |
| 子账户 A → 子账户 B | 子账户地址 | (无需传入) | 子账户钱包私钥 |
注意事项¶
signature必须使用user账户的钱包私钥签名,不可使用 signer 私钥替代。user字段必须与签名所用私钥对应的地址一致。- 使用子账户私钥签名时,支持向母账户划转;也支持子→子划转,此时转账的来源地址为签名的子账户
- 向已冻结的子账户划转或从已冻结的子账户划出均会失败。
- 不支持向非子账户关系内的外部地址划转。
用户资产迁移 (WITHDRAW)¶
响应:
{
"batchId": "a1B2c3D4e5F6g7H8i9J0k1" // 批次 ID,用于查询迁移历史
}
POST /fapi/v3/asset/migrateUser
权重: 50
所需权限: WITHDRAW
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| user | STRING | YES | 来源账户钱包地址,即待迁移资产所在的账户 |
| nonce | LONG | YES | 微秒级时间戳,用于防重放攻击 |
| signature | STRING | YES | 对请求体的签名,必须使用 user 账户的钱包私钥签名(EVM 地址使用 EIP-712,Solana 地址使用 Ed25519) |
注意事项:
- 来源账户必须无持仓,否则请求将被拒绝。
- 来源账户必须无挂单,否则请求将被拒绝。
- 所有可用余额大于 0 的资产将自动包含在迁移批次中;余额为 0 的资产将被跳过。
- 单次迁移批次最多处理 300 种资产。
- 资产将转移至当前已认证用户的账户(目标账户)。
- 若来源账户无可用资产,接口将返回空响应,不发起实际转账。
- 请记录返回的
batchId,以便通过下方「用户资产迁移历史」接口查询迁移状态。
用户资产迁移历史 (USER_DATA)¶
响应:
{
"batchId": "a1B2c3D4e5F6g7H8i9J0k1",
"fromUserId": 12345678,
"toUserId": 87654321,
"status": "SUCCESS", // 迁移状态
"items": [
{
"asset": "USDT",
"amount": "500.00000000"
},
{
"asset": "BTC",
"amount": "0.05000000"
}
]
}
GET /fapi/v3/asset/migrateUser/history
权重: 50
所需权限: USER_DATA
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| batchId | STRING | YES | 调用「用户资产迁移」接口时返回的批次 ID |
| nonce | LONG | YES | 微秒级时间戳,用于防重放攻击 |
| user | STRING | YES | 当前认证用户的钱包地址 |
| signer | STRING | YES | 与 user 关联的 signer 地址 |
| signature | STRING | YES | 对请求体的签名 |
注意事项:
batchId为必传参数,每个batchId对应一次迁移批次。- 查询结果仅限当前认证用户——只返回与该账户相关的迁移记录。
注册并授权 Agent (PUBLIC)¶
响应:
{
"code": 200,
"msg": "success"
}
POST /fapi/v3/registerAndApproveAgent
注册新的 API Agent 账户并一次性授予其交易/提现权限。Agent 授权后,可使用 API Key 在指定权限范围内代表用户进行操作。
权重: 50
参数:
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| user | STRING | YES | 用户钱包地址 |
| nonce | LONG | YES | 微秒级时间戳,用于防重放攻击 |
| agentName | STRING | YES | Agent 的显示名称 |
| agentAddress | STRING | YES | Agent 的钱包地址 |
| expired | LONG | YES | Agent 到期时间戳(毫秒) |
| signatureChainId | LONG | YES | 生成签名时所使用的链 ID(EVM 地址填 56,Solana 地址填 101) |
| signature | STRING | YES | 对消息体的签名,必须使用用户钱包私钥签名(见下方签名说明) |
| canSpotTrade | BOOLEAN | YES | 是否允许 Agent 下现货订单 |
| canPerpTrade | BOOLEAN | YES | 是否允许 Agent 下永续合约订单 |
| canWithdraw | BOOLEAN | YES | 是否允许 Agent 发起提现 |
| ipWhitelist | STRING | NO | 允许访问的 IP 地址或 CIDR 段列表,以空格分隔(如 192.168.1.1 10.0.0.0/24)。当 canWithdraw 为 true 时必填,不可为空。 |
| agentCode | STRING | NO | Agent 注册邀请码 |
签名说明¶
使用用户钱包私钥对以下消息体签名:
msg: user={user}&nonce={nonce}&agentName={agentName}&agentAddress={agentAddress}&expired={expired}&signatureChainId={signatureChainId}&canSpotTrade={canSpotTrade}&canPerpTrade={canPerpTrade}&canWithdraw={canWithdraw}&ipWhitelist={ipWhitelist}
EVM 地址专用: 将上述
msg字符串作为 EIP-712 结构化数据中message.msg的值进行签名,结构如下:
typed_data = {
"types": {
"EIP712Domain": [
{"name": "name", "type": "string"},
{"name": "version", "type": "string"},
{"name": "chainId", "type": "uint256"},
{"name": "verifyingContract", "type": "address"}
],
"Message": [
{ "name": "msg", "type": "string" }
]
},
"primaryType": "Message",
"domain": {
"name": "AsterSignTransaction",
"version": "1",
"chainId": 714,
"verifyingContract": "0x0000000000000000000000000000000000000000"
},
"message": {
"msg": "$msg"
}
}
支持的签名算法¶
| 账户类型 | 签名算法 | 编码格式 |
|---|---|---|
| EVM 地址 | EIP-712 Typed Data(chainId=56,message.msg=消息体) | Hex |
| Solana 地址 | Ed25519 | Base58 |
注意事项¶
nonce必须为微秒精度时间戳,与服务器时间差不得超过 10 秒,且同一 nonce 不可重复使用。expired为 Agent 的有效期截止时间,单位为毫秒,超时后 Agent 将自动失效。ipWhitelist以空格作为分隔符,支持 CIDR 格式(如192.168.1.1 10.0.0.0/24)。当canWithdraw为true时,ipWhitelist必填且不可为空。- 本接口无需鉴权——无需传入 API Key 或 HMAC 请求头,所有授权均通过链上
signature验证。 - 本接口将 Agent 注册与权限授予合并为单次调用,等同于独立注册接口与
approveAgent接口的组合操作。