跳到主要内容

创建交易对

描述

创建一个新的现货交易对。新交易对创建后立即可查询和交易,无需重启服务。状态默认为 listed (已上线)。

仅管理员。 服务器须设置 ADMIN_API_KEY 环境变量,且请求头中须传入 X-API-Key

HTTP 请求

POST /admin/spot/markets (X-API-Key: ADMIN_API_KEY)

权重

0 — 管理员接口不设权重限制。每次市场变更都会向撮合引擎发送 ReloadMarket 命令,使内存中的 MarketCache 无需重启即可获取最新配置。

请求参数

名称类型必填描述
idSTRING必填交易对标识符(如 DFUSDT)。区分大小写。必须唯一——重复时返回 409 MARKET_EXISTS
base_tokenSTRING必填基础代币符号(如 DF)。
quote_tokenSTRING必填报价代币符号(如 USDT)。
tick_sizeDECIMAL必填最小价格变动单位,以字符串表示(如 "0.0001")。
lot_sizeDECIMAL必填最小数量变动单位,以字符串表示(如 "0.01")。
min_notionalDECIMAL必填订单最小名义价值(price * quantity),以字符串表示(如 "1")。
maker_fee_bpsNUMBER必填Maker 费率,以基点表示(整数)。0 表示免费。
taker_fee_bpsNUMBER必填Taker 费率,以基点表示(整数)。0 表示免费。

响应示例

200 OK

{
"ok": true,
"id": "DFUSDT"
}
字段说明
ok成功时始终为 true
id已创建的交易对标识符,原样返回。

错误响应

HTTPerror触发条件
409MARKET_EXISTSid 的交易对已存在。
500DB_ERROR插入时发生意外的 Postgres 错误。请查看服务器日志。

完整列表:错误代码

代码示例

cURL

ADMIN_API_KEY="your_admin_api_key"

curl -s -X POST "https://api-sepolia.p99.world/api/v1/admin/spot/markets" \
-H "X-API-Key: ${ADMIN_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"id": "DFUSDT",
"base_token": "DF",
"quote_token": "USDT",
"tick_size": "0.0001",
"lot_size": "0.01",
"min_notional": "1",
"maker_fee_bps": 0,
"taker_fee_bps": 0
}'

Python

import requests

ADMIN_API_KEY = "your_admin_api_key"
BASE_URL = "https://api-sepolia.p99.world/api/v1"

def admin_post(path: str, body: dict) -> dict:
r = requests.post(
f"{BASE_URL}{path}",
json=body,
headers={"X-API-Key": ADMIN_API_KEY, "Content-Type": "application/json"},
timeout=5,
)
r.raise_for_status()
return r.json()

result = admin_post("/admin/spot/markets", {
"id": "DFUSDT",
"base_token": "DF",
"quote_token": "USDT",
"tick_size": "0.0001",
"lot_size": "0.01",
"min_notional": "1",
"maker_fee_bps": 0,
"taker_fee_bps": 0,
})
print(result["ok"], result["id"])