Skip to content

API.zh_CN

RomanovCaesar edited this page Sep 11, 2026 · 1 revision

English | 简体中文

API 模型

m-ui 提供供自身 Web UI 使用的 JSON API。API 由登录后创建的面板 session cookie 保护,当前版本没有通用 API token 或 Swagger 页面。不要把 API 暴露给不可信网络。

下面的路径都是相对于面板基础 URL 的。例如面板路径是 /secret/ 时,公开请求 /api/state 的完整地址是 /secret/api/state。浏览器使用相对 URL,因此非根路径面板也能正常工作。

认证

登录请求:

POST /api/auth/login
Content-Type: application/json

{"username":"admin","password":"your-password"}

响应会设置 HttpOnly 的 mui_session cookie。之后的受保护请求必须携带该 cookie。退出登录:

POST /api/auth/logout

常用端点

方法 端点 用途
GET /api/state 认证后的仪表盘和面板状态快照。
GET / PUT /api/config 读取或保存 Panel Settings。
POST /api/panel/restart 请求重建面板监听器。
GET / POST / DELETE /api/inbounds 列出、创建/更新或删除 Inbound。
GET / PUT /api/mihomo/settings 读取或保存 Basics、Outbounds 和 Routing Rules。
GET /api/raw-config 读取生成的 YAML。
POST /api/raw-config 重新生成 YAML。
POST /api/core/start 启动 Mihomo。
POST /api/core/stop 停止 Mihomo。
POST /api/core/restart 重启 Mihomo。
POST /api/core/test 校验生成的 Mihomo 配置。
GET /api/core/logs 读取面板保留的 Mihomo 日志。
DELETE /api/core/connections 关闭全部或某一个 Mihomo 连接。
GET /api/core/releases 列出稳定 Mihomo Release。
POST /api/core/install 安装选定 Mihomo Release。
POST /api/geofiles/update 更新官方 Geofiles。
GET /api/backup 下载 ZIP 备份。
POST /api/backup 上传并恢复 multipart 字段 backup 中的备份。
POST /api/traffic/reset 重置 Inbound 或 Client 流量计数。

JSON 形状对应源码中的 StateSettingsInboundMihomoOutboundMihomoRoutingRule 结构。无效或未知字段会被拒绝,不会静默传给 Mihomo。

Mihomo Settings 示例

PUT /api/mihomo/settings
Content-Type: application/json
Cookie: mui_session=...

{
  "basics": {
    "mode": "rule",
    "directIpVersion": "dual",
    "ipv6": true,
    "outboundTestUrl": "https://www.gstatic.com/generate_204"
  },
  "outbounds": [],
  "routingRules": [
    {"id":"default-match","type":"MATCH","target":"DIRECT"}
  ]
}

Multi-control 端点

受保护的 UI API 是:

GET  /api/multi-control
PUT  /api/multi-control/settings
POST /api/multi-control/token
POST /api/multi-control/connect
POST /api/multi-control/disconnect

配对 token 只能通过 HTTPS 或可信的私有网络传输。Peer wire protocol 不是公开 REST API。

Sync 与跨面板端点

GET  /api/inbound-sync
POST /api/inbound-sync
GET  /api/inbound-sync?job=<id>
GET  /api/cross-subscriptions
POST /api/cross-subscriptions
DELETE /api/cross-subscriptions
GET  /api/cross-subscriptions?job=<id>

这些端点会启动异步任务并返回进度记录。固定 Peer wire paths 独立于这些 UI API:

/_m-ui/peer/v1
/_m-ui/peer/inbound/v1

它们使用签名 Peer 消息、重放保护和加密 payload。不要把它们代理到公开订阅监听器。

错误响应

错误通常使用:

{
  "ok": false,
  "message": "human-readable error"
}

成功响应通常使用:

{
  "ok": true,
  "data": {},
  "message": "optional message"
}

不要依赖翻译后的 message 文本编写自动化;尽量使用 HTTP 状态码和稳定的 data 字段。

Clone this wiki locally