保证金模式
接口描述
查询或更改调用者的保证金模式 (cross / isolated)。
ZTDX fapi 仅支持全仓 (cross)
/fapi/* (HMAC) 命名空间下,撮合引擎与统一保证金路径仅支持全仓。GET 始终返回 marginType=CROSSED。POST 接受 marginType=CROSSED (幂等),拒绝 marginType=ISOLATED 并返回 -4046。如需真正的逐仓核算,请使用 JWT 鉴权的 POST /api/v1/account/margin-mode (见 Unified Margin 文档)。
HTTP 请求
- 查询: GET
/fapi/v1/marginType(HMAC SHA256) - 更改: POST
/fapi/v1/marginType(HMAC SHA256)
请求权重
1
GET 请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 交易对。省略时,响应中也省略 symbol 字段。 |
| recvWindow | LONG | NO | 详见 接口鉴权 |
| timestamp | LONG | YES | 时 间戳 |
POST 请求参数
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| marginType | STRING | YES | CROSSED (幂等) 或 ISOLATED (返回 -4046)。大小写不敏感;CROSS 也接受。 |
| recvWindow | LONG | NO | 详见 接口鉴权 |
| timestamp | LONG | YES | 时间戳 |
响应示例 (GET)
{
"symbol": "BTCUSDT",
"marginType": "CROSSED"
}
响应示例 (POST, CROSSED)
{
"code": 200,
"msg": "success"
}
错误
| Code | Message | 原因 |
|---|---|---|
-4046 | Isolated margin is not supported on the developer fapi. ... | marginType=ISOLATED。 |
-1128 | Invalid marginType '<value>'. Expected CROSSED or ISOLATED. | 任何其他值。 |
代码示例
curl (查询)
API_KEY="your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
QUERY_STRING="symbol=BTCUSDT×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "${QUERY_STRING}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $2}')
curl -s -H "X-MBX-APIKEY: ${API_KEY}" \
"https://api.ztdx.io/fapi/v1/marginType?${QUERY_STRING}&signature=${SIGNATURE}"
Python
import time, hmac, hashlib, requests
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api.ztdx.io"
def sign(qs: str) -> str:
return hmac.new(API_SECRET.encode(), qs.encode(), hashlib.sha256).hexdigest()
# 查询保证金模式
ts = int(time.time() * 1000)
qs = f"symbol=BTCUSDT×tamp={ts}"
r = requests.get(
f"{BASE_URL}/fapi/v1/marginType?{qs}&signature={sign(qs)}",
headers={"X-MBX-APIKEY": API_KEY},
)
print(r.json()) # {"symbol":"BTCUSDT","marginType":"CROSSED"}
# 更改保证金模式 (CROSSED 幂等)
import json
ts = int(time.time() * 1000)
body = json.dumps({"symbol": "BTCUSDT", "marginType": "CROSSED"}, separators=(",", ":"))
qs = f"timestamp={ts}"
r = requests.post(
f"{BASE_URL}/fapi/v1/marginType?{qs}&signature={sign(qs + body)}",
data=body,
headers={"X-MBX-APIKEY": API_KEY, "Content-Type": "application/json"},
)
print(r.json()) # {"code":200,"msg":"success"}