-
-
Notifications
You must be signed in to change notification settings - Fork 2
API.zh_CN
RomanovCaesar edited this page Sep 11, 2026
·
1 revision
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 形状对应源码中的 State、Settings、Inbound、MihomoOutbound 和 MihomoRoutingRule 结构。无效或未知字段会被拒绝,不会静默传给 Mihomo。
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"}
]
}受保护的 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。
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 字段。