跳转至

API 概述

Base URL: http://{host}:{port}/api/v1

认证

请求头 X-API-Token: <token>。服务端 Token 优先级为:

XQM_API_TOKEN > QMT_API_TOKEN > xtquant_manager_config.json/api_token

未配置 Token 时,仅本机访问(127.0.0.1 / ::1)可省略;非本机访问会被拒绝。对外提供网关服务时必须设置强随机 Token。

GET /api/v1/accounts
X-API-Token: your-secret-token

/api/v1/health(全局)免认证可达,供存活探针使用,但不带 Token 时只返回 total / healthy 计数,不返回 accounts 账号明细。 /api/v1/health/{account_id} 与其余所有端点(含 /api/* Flask 兼容只读端点)均需 Token。

统一响应格式

{
  "success": true,
  "data": { ... },
  "error": null
}

失败时 success=falseerror 字段包含错误信息:

{
  "success": false,
  "data": null,
  "error": "账号不存在: 55009640"
}

HTTP 状态码

状态码 含义
200 成功
201 创建成功(注册账号、下单)
401 Token 错误或缺失
403 IP 未在白名单
404 账号不存在
422 请求参数格式错误
429 超过速率限制
502 xtquant 调用失败
504 操作超时(超过 call_timeout

接口分组

分组 端点前缀 说明
账号管理 /api/v1/accounts 注册、注销、列表、状态
交易操作 /api/v1/accounts/{id}/orders 下单、撤单、持仓、资产、委托、成交
行情接口 /api/v1/market 实时 Tick、历史行情、下载数据
可观测性 /api/v1/health /api/v1/metrics 健康检查、调用指标
止盈止损 /api/v1/stop-profit 状态查询、配置更新、启停切换

Flask 兼容端点

为支持 web2.0 网关模式,server.py 还暴露少量不带 /api/v1 前缀的兼容端点:/api/status/api/positions/api/positions-all/api/accounts/api/connection/status/api/config/api/trade-records/api/grid/sessions。这些端点通过 X-Account-Id 请求头选择账号;未指定时回退到第一个已注册账号。

兼容端点不是完整 Flask API 替代:配置保存、自动操作总开关、模拟买入、初始化持仓、网格启停和模板保存仍由 web_server.py 的 Flask 直连模式提供。网关侧 /api/grid/sessions 只从账号 SQLite 读取会话快照,盈亏使用兼容降级口径。