创建交易对
描述
创建一个新的现货交易对。新交易对创建后立即可查询和交易,无需重启服务。状态默认为 listed (已上线)。
仅管理员。 服务器须设置 ADMIN_API_KEY 环境变量,且请求头中须传入 X-API-Key。
HTTP 请求
POST /admin/spot/markets (X-API-Key: ADMIN_API_KEY)
权重
0 — 管理员接口不设权重限制。每次市场变更都会向撮合引擎发送 ReloadMarket 命令,使内存中的 MarketCache 无需重启即可获取最新配置。
请求参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | STRING | 必填 | 交易对标识符(如 DFUSDT)。区分大小写。必须唯一——重复时返回 409 MARKET_EXISTS。 |
base_token | STRING | 必填 | 基础代币符号(如 DF)。 |
quote_token | STRING | 必填 | 报价代币符号(如 USDT)。 |
tick_size | DECIMAL | 必填 | 最小价格变动单位,以字符串表示(如 "0.0001")。 |
lot_size | DECIMAL | 必填 | 最小数量变动单位,以字符串表示(如 "0.01")。 |
min_notional | DECIMAL | 必填 | 订单最小名义价值(price * quantity),以字符串表示(如 "1")。 |
maker_fee_bps | NUMBER | 必填 | Maker 费率,以基点表示(整数)。0 表示免费。 |
taker_fee_bps | NUMBER | 必填 | Taker 费率,以基点表示(整数)。0 表示免费。 |
响应示例
200 OK
{
"ok": true,
"id": "DFUSDT"
}
| 字段 | 说明 |
|---|---|
ok | 成功时始终为 true。 |
id | 已创建的交易对标识符,原样返回。 |
错误响应
| HTTP | error | 触发条件 |
|---|---|---|
409 | MARKET_EXISTS | 该 id 的交易对已存在。 |
500 | DB_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"])