Skip to content

合约交易

本模块所有接口 baseurl:https://openapi.bitbaby.com/futures/open

完整 URL 格式:{baseurl}{requestPath},例如 https://openapi.bitbaby.com/futures/open/fapi/v1/order

签名时 requestPath 仅使用 /fapi/v1/... 部分,不要带 /futures/open 前缀。详见基本信息 → 需要签名的接口

公共

安全类型: NONE

公共下方的接口不需要 API-Key 或者签名就能自由访问。

测试连接

GET /fapi/v1/ping

测试 REST API 的连通性。

200

json
{}

获取服务器时间

GET /fapi/v1/time

200

json
{
    "serverTime": 1607702400000,
    "timezone": "中国标准时间"
}

Response:

名称类型描述
serverTimelong服务器时间戳(毫秒)
timezonestring服务器时区显示名

合约列表

GET /fapi/v1/contracts

获取所有合约的元信息。可选请求头 brokerId 用于按商户过滤。

200

json
[
    {
        "symbol": "E-BTC-USDT",
        "type": "E",
        "status": 1,
        "side": 1,
        "multiplier": 0.001,
        "multiplierCoin": "BTC",
        "pricePrecision": 2,
        "minOrderVolume": 1,
        "minOrderMoney": 0.001,
        "maxMarketVolume": 100000,
        "maxMarketMoney": 10000000,
        "maxLimitVolume": 1000000,
        "maxLimitMoney": 1000000,
        "maxValidOrder": 20
    }
]

Response:

名称类型描述
symbolstring合约名称,例如 E-BTC-USDT
statusnumber合约状态(0 不可交易,1 可交易)
typestring合约类型 (E 永续,S 模拟,其它为混合)
sidenumber合约方向 (0 反向,1 正向)
multipliernumber合约面值
multiplierCoinstring合约面值单位
pricePrecisionnumber价格精度
minOrderVolumenumber最小下单量
minOrderMoneynumber最小下单金额
maxMarketVolumenumber市价单最大下单数量
maxMarketMoneynumber市价单最大下单金额
maxLimitVolumenumber限价单最大下单数量
maxValidOrdernumber最大有效委托数量

行情

安全类型: NONE

行情下方的接口不需要 API-Key 或者签名就能自由访问。

订单薄

GET /fapi/v1/depth

Query Parameters

NameTypeDescription
contractName*string合约名称,例如 E-BTC-USDT
limitinteger默认 100;最大 100

200

json
{
  "time": 1595563624731,
  "bids": [
    ["3.90000000", "431.00000000"],
    ["4.00000000", "431.00000000"]
  ],
  "asks": [
    ["4.00000200", "12.00000000"],
    ["5.10000000", "28.00000000"]
  ]
}

每档为 [price, size],按最优价排序。

行情ticker

GET /fapi/v1/ticker

24 小时价格变化数据。

Query Parameters

NameTypeDescription
contractName*string合约名称,例如 E-BTC-USDT

200

json
{
    "high": "9279.0301",
    "low": "9279.0301",
    "last": "9200",
    "vol": "1302",
    "rose": "0",
    "time": 1595563624731
}

全部合约 ticker

GET /fapi/v1/all_ticker

返回 Map<contractName, ticker> 结构,字段同上。

获取指数 / 标记价格

GET /fapi/v1/index

Query Parameters

NameTypeDescription
contractName*string合约名称,例如 E-BTC-USDT

200

json
{
    "contractName": "E-ETH-USDT",
    "indexPrice": 646.3933333333333,
    "markPrice": 581.5,
    "lastFundingRate": 0.001,
    "time": 1608273554063
}

全部合约指数价格

GET /fapi/v1/get_all_indexPrice

返回所有合约的指数价格 Map<contractName, BigDecimal>

全部合约指数 + 标记价格

GET /fapi/v1/public_all_index_tag_price

返回每个合约的 symbolindexPricemarkPrice

K 线/蜡烛图数据

GET /fapi/v1/klines

Query Parameters

NameTypeDescription
contractName*string合约名称,例如 E-BTC-USDT
interval*stringK 线区间,可选值:1min, 5min, 15min, 30min, 1h, 1day, 1week, 1month
limitinteger默认 100;最大 300
startTimelong起始时间(毫秒)
endTimelong结束时间(毫秒)

200

json
[
    {
        "idx": 1594640340,
        "open": "6228.77",
        "close": "6228.77",
        "high": "6228.77",
        "low": "6228.77",
        "vol": "111"
    }
]

交易

安全类型: TRADE

所有交易接口必须携带以下 Headers,下文 Headers 表格不再重复列出。

HeaderTypeDescription
X-CH-APIKEY*string您的 API-Key
X-CH-TS*string时间戳(毫秒)
X-CH-SIGN*string签名(hex)
Content-Type*stringapplication/json

创建订单

POST /fapi/v1/order

创建单个新订单(限价 / 市价)。

Request Body

NameTypeDescription
contractName*string合约名称,例如 E-BTC-USDT
volume*number下单数量(张);市价开仓时这里单位是金额
side*string买卖方向,BUY / SELL
type*string订单类型,LIMIT / MARKET
open*string开平仓方向,OPEN / CLOSE
positionType*number持仓类型,1 全仓 / 2 逐仓
pricenumber订单价格,LIMIT 必填
clientOrderIdstring客户端下单标识,长度 < 32 的字符串
timeInForcestring有效方式,IOC / FOK / POST_ONLY

200

json
{
    "orderId": 256609229205684228
}

创建条件单

POST /fapi/v1/conditionOrder

按触发价创建条件单(止损 / 止盈 / 追涨 / 杀跌)。

Request Body

创建订单 的字段基础上额外要求:

NameTypeDescription
triggerType*number条件单类型:3 stop-loss / 4 take-profit
triggerPrice*number触发价
trailCallbackRationumber移动止盈止损回调比例(追踪止损时使用)

200

json
{
    "orderId": 256609229205684228
}

撤销订单

POST /fapi/v1/cancel

限速规则: 20次/2s

Request Body

NameTypeDescription
contractName*string合约名称,例如 E-BTC-USDT
orderId*string订单 ID

200

json
{
    "orderId": 256609229205684228
}

批量下单

POST /fapi/v1/batchOrders

也可使用别名 POST /fapi/v1/placeBatchOrder,行为一致。

Request Body

NameTypeDescription
contractName*string合约名称
orders*array订单列表,每条字段同 创建订单 的 body 字段

200

json
{
    "ids": ["256609229205684228", "256609229205684229"]
}

批量撤单

POST /fapi/v1/batchCancel

Request Body

NameTypeDescription
contractName*string合约名称
orderIds*array要撤销的订单 ID 数组

200

json
{
    "success": ["256609229205684228"],
    "failed":  ["256609229205684229"]
}

订单详情

GET /fapi/v1/order

Query Parameters

NameTypeDescription
contractName*string合约名称
orderIdstring订单 ID(与 clientOrderId 二选一)
clientOrderIdstring客户端订单 ID

200

json
{
    "orderId": 259396989397942275,
    "contractName": "E-BTC-USDT",
    "side": "BUY",
    "action": "OPEN",
    "type": "LIMIT",
    "price": 10000,
    "origQty": 1,
    "executedQty": 0,
    "avgPrice": 0,
    "transactTime": "1607702400000",
    "status": "INIT",
    "fills": []
}

Response:

名称类型描述
orderIdlong订单 ID
contractNamestring合约名称
sidestringBUY / SELL
actionstringOPEN / CLOSE
typestringLIMIT / MARKET
pricenumber委托价格
origQtynumber委托数量
executedQtynumber成交数量
avgPricenumber成交均价
transactTimestring创建时间(毫秒)
statusstringINIT / NEW / PARTIALLY_FILLED / FILLED / CANCELED / REJECTED
fillsarray成交明细

当前委托

GET /fapi/v1/openOrders

获取当前用户的未完结委托。contractName 可选,留空时返回全合约。

Query Parameters

NameTypeDescription
contractNamestring合约名称(可选)

200 返回结构同 订单详情 的数组。

当前委托数量

POST /fapi/v1/openOrdersCount

适合分页查询当前委托。

Request Body

NameTypeDescription
contractIdinteger合约 ID(可选)
pageinteger页码(从 1 开始)
pageSizeinteger每页大小

200

json
{
    "code": "0",
    "data": {
        "count": 12,
        "orderList": [ /* 同 openOrders */ ]
    }
}

历史委托

POST /fapi/v1/orderHistorical

Request Body

NameTypeDescription
contractNamestring合约名称(可选,留空查询全部合约)
limitinteger分页条数;默认 100;最大 1000
fromIdlong从该订单 ID 开始检索

200

json
[
    {
        "orderId": 777293886968070157,
        "contractName": "E-BTC-USDT",
        "side": "BUY",
        "openOrClose": "OPEN",
        "positionType": 2,
        "type": 4,
        "price": 41000,
        "volume": 2,
        "dealVolume": 1,
        "dealMoney": 4.1,
        "avgPrice": 41000,
        "leverageLevel": 26,
        "openTakerFeeRate": 0.00065,
        "openMakerFeeRate": 0.00025,
        "closeTakerFeeRate": 0.00065,
        "closeMakerFeeRate": 0.00025,
        "status": 4,
        "ctime": "2021-09-29T16:16:51",
        "ctimeMs": 1632903411000
    }
]

盈亏记录

POST /fapi/v1/profitHistorical

Request Body历史委托

200

json
[
    {
        "id": 8764,
        "contractId": 1,
        "side": "SELL",
        "positionType": 2,
        "leverageLevel": 26,
        "openPrice": 44500,
        "openEndPrice": 44500,
        "volume": 900,
        "tradeFee": -5.23575,
        "capitalFee": 0,
        "shareAmount": 0,
        "closeProfit": -45,
        "settleProfit": 0,
        "realizedAmount": 0,
        "historyRealizedAmount": -50.23575,
        "ctime": 1632882691000,
        "mtime": 1632882739000
    }
]

成交记录

GET /fapi/v1/myTrades

限速规则: 20次/2s

Query Parameters

NameTypeDescription
contractNamestring合约名称,例如 E-BTC-USDT
limitinteger分页条数;默认 100;最大 1000
fromIdlong从该 tradeId 开始检索

200

json
[
  {
    "tradeId": 100211,
    "symbol": "E-BTC-USDT",
    "contractName": "E-BTC-USDT",
    "bidId": 150695552109032492,
    "askId": 150695552109032493,
    "bidUserId": 10024,
    "askUserId": 10025,
    "price": "4.00000100",
    "qty": "12.00000000",
    "amount": "48.00",
    "time": 1499865549590,
    "side": "BUY",
    "isBuyer": true,
    "isMaker": false,
    "fee": "0.001"
  }
]

主动平仓 / 强平 / 自适应减仓记录

GET /fapi/v1/tradesRecord

按合约维度分页拉取自身成交(含开 / 平方向标记)。参数同 成交记录

GET /fapi/v1/adlRecord

ADL(自动减仓)记录。contractName 必填,分页字段同上。

GET /fapi/v1/liquidationList

强平记录。

计划委托相关

方法路径说明
POST/fapi/v1/profitLossOrder创建一组止盈止损单(与持仓绑定)
POST/fapi/v1/trigger_order_list查询触发条件单列表
POST/fapi/v1/cancel_trigger_order撤销条件单

profitLossOrder 的请求体核心字段:

NameTypeDescription
contractNamestring合约名称
positionIdinteger仓位 ID
sidestringBUY / SELL
positionTypeinteger1 全仓 / 2 逐仓
orderListarray子条件单数组

orderList[] 字段:

NameTypeDescription
triggerTypeinteger3 止损 / 4 止盈
triggerPricenumber触发价
pricenumber触发后委托价
volumenumber触发后委托数量
typeinteger委托类型
expiredTimeinteger过期时间(毫秒)
tagPriceTriggerinteger1 按标记价触发 / 0 按最新价触发

账户

安全类型: USER_DATA

账户下方的接口都需要签名和 API-Key 验证。Headers 同 交易 部分。

账户信息

GET /fapi/v1/account

限速规则: 20次/2s

200

json
{
    "account": [
        {
            "marginCoin": "USDT",
            "accountNormal": 999.5606,
            "accountLock": 23799.5017,
            "partPositionNormal": 9110.7294,
            "totalPositionNormal": 0,
            "achievedAmount": 4156.5072,
            "unrealizedAmount": 650.6385,
            "totalEquity": 99964804.560,
            "partEquity": 13917.8753,
            "totalCost": 0,
            "totalMarginRate": 0,
            "sumMarginRate": 873.4608,
            "positionVos": [
                {
                    "contractId": 1,
                    "contractName": "E-BTC-USDT",
                    "contractSymbol": "BTC-USDT",
                    "positions": [
                        {
                            "id": 13603,
                            "contractId": 1,
                            "positionType": 2,
                            "side": "BUY",
                            "volume": 69642.0,
                            "openPrice": 11840.2394,
                            "avgPrice": 11840.3095,
                            "leverageLevel": 24,
                            "holdAmount": 7014.2111,
                            "marginRate": 0.2097,
                            "reducePrice": 9740.8083,
                            "unRealizedAmount": 2164.5289,
                            "realizedAmount": 8115.9125,
                            "positionBalance": 82458.2839,
                            "indexPrice": 12151.1175,
                            "status": 1
                        }
                    ]
                }
            ]
        }
    ]
}

Response 字段速读

区域关键字段说明
账户marginCoinaccountNormalaccountLocktotalEquitypartEquity保证金币、可用、冻结、全/逐仓权益
账户unrealizedAmountachievedAmountsumMarginRate未实现盈亏、已实现盈亏、账户保证金率
仓位positionVos[].positions[]各合约下的仓位明细
单个仓位volumeavgPriceleverageLevelpositionTypeside持仓规模与杠杆
单个仓位marginRatereducePriceunRealizedAmountindexPrice维持/强减/未实现盈亏,对接风控告警常用

完整字段解释参考下方两张表。

account[] 字段:

名称类型描述
marginCoinstring保证金币种
accountNormalnumber余额账户
accountLocknumber保证金冻结账户
partPositionNormalnumber逐仓保证金余额
totalPositionNormalnumber全仓占用的初始保证金
achievedAmountnumber已实现盈亏
unrealizedAmountnumber未实现盈亏
totalEquitynumber全仓权益
partEquitynumber逐仓权益
totalCostnumber全仓占用成本
totalMarginRatenumber全仓保证金率
sumMarginRatenumber全账户保证金率
positionVosarray仓位合约记录

positionVos[].positions[] 字段:

名称类型描述
idinteger仓位 ID
positionTypeinteger1 全仓 / 2 逐仓
sidestringBUY 多 / SELL
volumenumber持仓数量
openPricenumber开仓价
avgPricenumber持仓均价
leverageLevelnumber杠杆倍数
holdAmountnumber持仓保证金
realizedAmountnumber已实现盈亏
historyRealizedAmountnumber历史累计已实现盈亏
unRealizedAmountnumber未实现盈亏
openRealizedAmountnumber开仓未实现盈亏
positionBalancenumber仓位价值
marginRatenumber保证金率
reducePricenumber强减价
returnRatenumber收益率
indexPricenumber最新标记价
keepRatenumber阶梯最低维持保证金率
maxFeeRatenumber平仓最大手续费率
tradeFeenumber交易手续费
capitalFeenumber资金费用
shareAmountnumber分摊金额
freezeLockinteger0 正常 / 1 爆仓冻结 / 2 交割冻结
statusinteger0 无效 / 1 有效

持仓信息

GET /fapi/v1/positions

Query Parameters

NameTypeDescription
contractNamestring合约名称(可选)

200

json
{
    "positions": [
        /* 单个仓位字段同 account.positionVos[].positions[] */
    ]
}

资金流水

GET /fapi/v1/capital

Query Parameters

NameTypeDescription
beginTimelong起始时间(毫秒)
endTimelong结束时间(毫秒)
pageinteger页码
limitinteger每页数量

200

json
{
    "records": [
        {
            "contractName": "E-BTC-USDT",
            "type": "TRADE_FEE",
            "amount": "-0.123",
            "balance": "1000.5",
            "time": 1607702400000
        }
    ]
}

调整杠杆 / 持仓模式

方法路径说明
POST/fapi/v1/edit_lever调整指定合约的杠杆倍数
POST/fapi/v1/level_edit兼容旧接口,调整杠杆
POST/fapi/v1/edit_user_position_model切换全仓 / 逐仓
POST/fapi/v1/edit_user_margin_model切换保证金模式
POST/fapi/v1/trigger_time_edit修改条件单触发时间

edit_lever 请求示例:

json
{
    "contractName": "E-BTC-USDT",
    "leverageLevel": 20,
    "positionType": 2
}

资金划转(RSA 签名)

与 HMAC 接口不同

以下两个接口使用独立的 RSA 签名机制,需在请求头中携带 Ex-signEx-ts不复用 X-CH-SIGN / X-CH-TS。仅对接机构客户开放,使用前请先联系商务申请密钥对。

Header说明
Ex-ts时间戳(毫秒)
Ex-signJSON.stringify(body) + Ex-ts 做 RSA 签名后的 Base64 字符串
方法路径说明
POST/fapi/v1/futures_transfer现货 ↔ 合约账户资金划转
POST/fapi/v1/futures_balance查询合约账户余额