WanOS Open API

系统能力与 API 接口

WanOS 后端开放了文件、存储、分享、应用、网络、Docker、计划任务等接口。你可以用这些接口对接自己的脚本、面板、自动化工具或第三方应用。

http://设备IP/api/statusCookie: wanos_session=...

接入方式

认证

大多数接口需要先通过 Web 登录,浏览器会自动携带会话 Cookie。第三方脚本可先调用登录接口获取会话。

请求格式

GET 接口使用 query 参数;POST 接口通常使用 JSON,文件上传使用 multipart/form-data。

返回格式

接口主要返回 JSON。下载、导出和预览类接口会返回文件流或代理内容。

curl -b "wanos_session=你的会话" http://设备IP/api/status
curl -b "wanos_session=你的会话" "http://设备IP/api/list?path=/"

常用能力

GET

读取设备状态

/api/status

获取 CPU、内存、运行状态等基础信息,用于监控面板或自动化巡检。

GET

列出存储目录

/api/list?path=/mnt/sda1

读取目录、文件和存储入口,适合接入自定义文件管理器。

POST

上传文件

/api/upload

通过 multipart/form-data 上传文件,常用于备份、同步和资料投递。

POST

创建分享

/api/share/create

把指定文件或目录生成分享链接,可用于外部工作流。

POST

第三方内网穿透

/api/tunnel/start

填写 NPC/NPS 服务端地址和 key,启用第三方穿透服务。

POST

应用商店安装

/api/store/install

按应用 ID 安装应用,可用于定制装机流程。

GET/POST

Docker 容器管理

/api/docker/containers

读取和管理容器,扩展轻量服务编排。

GET/POST

计划任务

/api/cron/tasks

查看和管理计划任务,实现定时脚本、备份和自动化。

JS/API

悬浮窗口

/api/window/open

由系统托管第三方应用的小窗口、任务面板、迷你播放器和 AI 助手面板。

JS/API

系统文件预览

/api/preview/open

第三方应用可直接调用系统图片、视频、音频、PDF 和文本预览能力。

JS/API

设置桌面壁纸

/api/wallpaper/set

第三方壁纸应用可把 NAS 图片一键设置为 WanOS 桌面壁纸。

JS/API

打开应用详情

WanOSAppStore.openAppDetail()

第三方页面或系统广告可直接打开应用商店指定应用详情。

POST

应用公网访问

/api/tunnel/app-domain

应用声明支持公网访问后,桌面右键可开启公网入口,之后直接复制公网链接。

悬浮窗口 API

WanOS 可以在桌面托管第三方应用的小窗口。应用不需要直接修改桌面 DOM,就能打开、更新、聚焦、列出或关闭一个系统悬浮 iframe。

POST

打开窗口

/api/window/open

创建或替换悬浮窗口。请求体支持 id、app_id、title、url、width、height、x、y、resizable、always_on_top。

POST

更新窗口

/api/window/update

更新位置、尺寸、标题、地址、最小化状态和是否可缩放。

POST

关闭窗口

/api/window/close

关闭悬浮窗口,并从桌面持久状态中移除。

GET

窗口列表

/api/window/list

返回已持久化的悬浮窗口,刷新桌面后可自动恢复。

window.WanOS.openFloatWindow({
  id: "download-tasks",
  title: "Download Tasks",
  url: "/apps/downloader/tasks",
  width: 420,
  height: 560,
  x: "right",
  y: "bottom",
  resizable: true
});

iframe 应用也可以用 postMessage 调用同一能力,消息类型为 wanos:float-window:open。结果消息为 wanos:float-window-resultwanos:float-window-error

系统文件预览 API

第三方应用可以把 NAS 文件路径交给 WanOS,由系统统一打开图片预览、视频播放器、音频播放器、PDF 或文本预览。比如下载器下载完成后,可以直接调用系统视频预览播放视频。

POST

校验并打开预览

/api/preview/open

请求体传 path 和可选 name。后端校验文件存在、路径安全、类型可预览,前端随后拉起系统预览器。

JS

主页面调用

window.WanOS.previewFile()

同源应用可直接调用,参数为 path、name。视频会复用系统播放器和现有播放兼容逻辑。

postMessage

iframe 调用

wanos:preview-file

第三方 iframe 应用可向父窗口发送消息调用预览,结果返回 wanos:preview-file-result 或 wanos:preview-file-error。

window.parent.postMessage({
  type: "wanos:preview-file",
  requestId: "preview-1",
  path: "/mnt/wanos/mmcblk0p1-tf/downloads/demo.mp4",
  name: "demo.mp4"
}, "*");

桌面壁纸 API

第三方壁纸应用可以把已保存到 NAS 的图片交给 WanOS 设为桌面壁纸。接口会校验路径、文件存在和图片格式,支持 PNG、JPG、WebP、GIF。

POST

设置 NAS 图片为壁纸

/api/wallpaper/set

请求体传 path。接口复用系统自定义壁纸保存逻辑,成功后返回 custom 壁纸地址。

JS

主页面调用

window.WanOS.setWallpaper()

同源应用可直接调用,系统会立即刷新当前桌面壁纸。

postMessage

iframe 调用

wanos:set-wallpaper

第三方 iframe 应用可向父窗口发送消息设置壁纸,结果返回 wanos:set-wallpaper-result 或 wanos:set-wallpaper-error。

window.parent.postMessage({
  type: "wanos:set-wallpaper",
  requestId: "wallpaper-1",
  path: "/mnt/wanos/mmcblk0p1-tf/wallpapers/demo.jpg"
}, "*");

应用商店详情打开 API

第三方页面、系统广告和壁纸应用可以直接打开 WanOS 应用商店,并定位到指定应用详情页。

URL

参数打开

?store_app=wanos-wallpaper

进入 WanOS 桌面后自动打开应用商店,并展示对应应用详情页。

JS

主页面调用

window.WanOSAppStore.openAppDetail()

传入应用 ID,系统会打开应用商店并定位到详情页。

window.WanOSAppStore.openAppDetail("wanos-wallpaper");

// 或直接访问:
http://设备IP/?store_app=wanos-wallpaper

应用公网访问能力

应用商店应用可以声明支持公网访问。用户在桌面或应用导航里右键应用时,WanOS 会显示“公网访问”;开启成功后系统保存公网地址,下次右键直接显示“复制公网链接”。

清单字段

声明支持公网

public_access_supported: true

应用必须同时提供本地服务端口 port,WanOS 才能自动创建公网入口。

POST

创建应用入口

/api/tunnel/app-domain

请求体传 app_id、app_name、port。接口会把公网域名转发到 127.0.0.1:port。

菜单

右键操作

公网访问 / 复制公网链接

未开启时显示公网访问;开启后持久保存 public_url,刷新应用列表后仍显示复制公网链接。

{
  "id": "demo-web-app",
  "name": "示例网页应用",
  "port": 8787,
  "path": "/",
  "public_access_supported": true,
  "public_access": true
}

fetch("/api/tunnel/app-domain", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    app_id: "demo-web-app",
    app_name: "示例网页应用",
    port: "8787"
  })
});

公网访问依赖 WanOS 远程访问能力。用户需要先在“远程访问”里开通内网穿透;未声明公网能力的普通应用不会显示右键公网菜单。

应用文件选择能力

第三方应用在 WanOS 弹窗 iframe 内可以通过 postMessage 调用系统 NAS 文件选择器,统一实现离线包导入、保存目录选择、媒体目录选择等能力。

postMessage

选择 NAS 文件

wanos:pick-file

打开 NAS 文件选择器,可通过 accept / acceptExt 限制扩展名,也可通过 fileType / category 使用 video、image、audio、document、archive、subtitle 等类型。

postMessage

选择 NAS 目录

wanos:pick-directory

选择已有目录,可用于媒体库、相册、下载保存目录等配置。

postMessage

选择保存目录

wanos:pick-save-directory

引导用户选择保存位置,支持 TF 卡、USB 盘或 NAS 目录。

postMessage

打开所在位置

wanos:open-file-location

根据文件路径打开 WanOS 文件管理器,并定位到该文件所在目录。

window.parent.postMessage({
  type: "wanos:pick-file",
  requestId: "pick-video-1",
  title: "选择视频文件",
  hint: "请选择要处理的视频文件",
  startPath: "/mnt",
  fileType: "video"
}, "*");

window.addEventListener("message", event => {
  const data = event.data || {};
  if (data.type === "wanos:pick-result" && data.requestId === "pick-video-1") {
    console.log("用户选择的文件:", data.path);
  }
});

window.parent.postMessage({
  type: "wanos:open-file-location",
  requestId: "open-location-1",
  path: "/mnt/wanos/mmcblk0p1-tf/downloads/demo.mp4"
}, "*");

回调消息为 wanos:open-location-resultwanos:open-location-error。路径会限制在 /mnt/media/.vol/srv/opt/wanos-data/apps 等 WanOS 安全目录内。

完整接口清单

以下列表由当前 WanOS 后端路由生成。带 /api/remote/ 的远程兼容别名未重复列出,对应短路径接口可直接在本机使用。

认证与系统

方法接口说明认证
GET/api/backup/exportbackup / export需要 Web 登录会话 Cookie
GET/api/backup/importbackup / import需要 Web 登录会话 Cookie
POST/api/backup/startbackup / start需要 Web 登录会话 Cookie
GET/api/backup/statusbackup / status需要 Web 登录会话 Cookie
GET/api/backup/volumesbackup / volumes需要 Web 登录会话 Cookie
GET/api/dashboarddashboard需要 Web 登录会话 Cookie
POST/api/diagnosticsdiagnostics需要 Web 登录会话 Cookie
GET/api/diagnostics/exportdiagnostics / export需要 Web 登录会话 Cookie
GET/api/healthhealth需要 Web 登录会话 Cookie
POST/api/login登录登录前可用/会话接口
POST/api/logout退出登录登录前可用/会话接口
GET/api/me当前登录与设备资料登录前可用/会话接口
GET/api/mediamedia需要 Web 登录会话 Cookie
GET/api/media-player/media player / 需要 Web 登录会话 Cookie
POST/api/powerpower需要 Web 登录会话 Cookie
GET/POST/api/settingssettings需要 Web 登录会话 Cookie
POST/api/settings/wallpapersettings / wallpaper需要 Web 登录会话 Cookie
GET/api/status系统状态需要 Web 登录会话 Cookie
POST/api/systemsystem需要 Web 登录会话 Cookie
GET/api/system/cleanup/previewsystem / cleanup / preview需要 Web 登录会话 Cookie
POST/api/system/cleanup/runsystem / cleanup / run需要 Web 登录会话 Cookie
POST/api/system/commandsystem / command需要 Web 登录会话 Cookie
POST/api/system/resetsystem / reset需要 Web 登录会话 Cookie

文件与存储

方法接口说明认证
POST/api/cloud-mount/applycloud mount / apply需要 Web 登录会话 Cookie
GET/api/cloud-mount/statuscloud mount / status需要 Web 登录会话 Cookie
POST/api/cloud-mount/unmountcloud mount / unmount需要 Web 登录会话 Cookie
POST/api/copycopy需要 Web 登录会话 Cookie
POST/api/deletedelete需要 Web 登录会话 Cookie
POST/api/disk/ejectdisk / eject需要 Web 登录会话 Cookie
POST/api/disk/format-ext4disk / format ext4需要 Web 登录会话 Cookie
POST/api/disk/format-partition-ext4disk / format partition ext4需要 Web 登录会话 Cookie
POST/api/disk/mountdisk / mount需要 Web 登录会话 Cookie
GET/api/disk/operation/statusdisk / operation / status需要 Web 登录会话 Cookie
POST/api/disk/partitiondisk / partition需要 Web 登录会话 Cookie
POST/api/disk/partition-layoutdisk / partition layout需要 Web 登录会话 Cookie
POST/api/disk/repairdisk / repair需要 Web 登录会话 Cookie
GET/api/disk/sleep/applydisk / sleep / apply需要 Web 登录会话 Cookie
GET/api/disk/sleep/install-tooldisk / sleep / install tool需要 Web 登录会话 Cookie
GET/api/disk/sleep/statusdisk / sleep / status需要 Web 登录会话 Cookie
POST/api/disk/unmountdisk / unmount需要 Web 登录会话 Cookie
GET/api/disks磁盘列表需要 Web 登录会话 Cookie
GET/api/download下载文件需要 Web 登录会话 Cookie
POST/api/downloads/adddownloads / add需要 Web 登录会话 Cookie
GET/api/downloads/detailsdownloads / details需要 Web 登录会话 Cookie
GET/api/downloads/reannouncedownloads / reannounce需要 Web 登录会话 Cookie
POST/api/downloads/removedownloads / remove需要 Web 登录会话 Cookie
GET/api/downloads/startdownloads / start需要 Web 登录会话 Cookie
GET/api/downloads/stopdownloads / stop需要 Web 登录会话 Cookie
GET/api/downloads/tasksdownloads / tasks需要 Web 登录会话 Cookie
POST/api/downloads/trackersdownloads / trackers需要 Web 登录会话 Cookie
GET/api/downloads/verifydownloads / verify需要 Web 登录会话 Cookie
GET/api/extractextract需要 Web 登录会话 Cookie
GET/api/file/contentfile / content需要 Web 登录会话 Cookie
GET/api/list目录列表需要 Web 登录会话 Cookie
POST/api/mkdirmkdir需要 Web 登录会话 Cookie
POST/api/movemove需要 Web 登录会话 Cookie
GET/api/renamerename需要 Web 登录会话 Cookie
POST/api/search搜索文件需要 Web 登录会话 Cookie
GET/api/thumbnailthumbnail需要 Web 登录会话 Cookie
POST/api/touchtouch需要 Web 登录会话 Cookie
POST/api/upload上传文件需要 Web 登录会话 Cookie
GET/api/volumes存储入口需要 Web 登录会话 Cookie

分享与媒体

方法接口说明认证
GET/api/musicmusic需要 Web 登录会话 Cookie
GET/api/music/file/music / file / 需要 Web 登录会话 Cookie
POST/api/share/create创建分享需要 Web 登录会话 Cookie
POST/api/share/deleteshare / delete需要 Web 登录会话 Cookie
GET/api/share/downloadshare / download需要 Web 登录会话 Cookie
POST/api/share/infoshare / info需要 Web 登录会话 Cookie
GET/api/share/listshare / list需要 Web 登录会话 Cookie
POST/api/share/verifyshare / verify需要 Web 登录会话 Cookie

下载与计划任务

方法接口说明认证
POST/api/aria2/aria2 / 需要 Web 登录会话 Cookie
POST/api/aria2/jsonrpcaria2 / jsonrpc需要 Web 登录会话 Cookie
POST/api/aria2/startaria2 / start需要 Web 登录会话 Cookie
POST/api/cron/deletecron / delete需要 Web 登录会话 Cookie
GET/POST/api/cron/tasks计划任务列表需要 Web 登录会话 Cookie
POST/api/cron/togglecron / toggle需要 Web 登录会话 Cookie

网络与远程访问

方法接口说明认证
GET/api/backend/applybackend / apply需要 Web 登录会话 Cookie
GET/api/backend/restartbackend / restart需要 Web 登录会话 Cookie
GET/api/backend/startbackend / start需要 Web 登录会话 Cookie
GET/api/backend/statusbackend / status需要 Web 登录会话 Cookie
GET/api/backend/stopbackend / stop需要 Web 登录会话 Cookie
POST/api/network/healnetwork / heal需要 Web 登录会话 Cookie
GET/POST/api/network/macnetwork / mac需要 Web 登录会话 Cookie
GET/POST/api/network/overviewnetwork / overview需要 Web 登录会话 Cookie
GET/POST/api/network/statusnetwork / status需要 Web 登录会话 Cookie
GET/POST/api/network/watchdognetwork / watchdog需要 Web 登录会话 Cookie
GET/api/pro/devicespro / devices需要 Web 登录会话 Cookie
POST/api/pro/orderpro / order需要 Web 登录会话 Cookie
GET/api/pro/order/statuspro / order / status需要 Web 登录会话 Cookie
GET/api/pro/statuspro / status需要 Web 登录会话 Cookie
POST/api/samba/applysamba / apply需要 Web 登录会话 Cookie
GET/api/samba/statussamba / status需要 Web 登录会话 Cookie
POST/api/site/applysite / apply需要 Web 登录会话 Cookie
GET/api/site/statussite / status需要 Web 登录会话 Cookie
POST/api/terminal/terminal / 需要 Web 登录会话 Cookie
POST/api/tunnel/custom-domaintunnel / custom domain需要 Web 登录会话 Cookie
GET/POST/api/tunnel/diagnosetunnel / diagnose需要 Web 登录会话 Cookie
POST/api/tunnel/ordertunnel / order需要 Web 登录会话 Cookie
GET/api/tunnel/order/statustunnel / order / status需要 Web 登录会话 Cookie
POST/api/tunnel/planstunnel / plans需要 Web 登录会话 Cookie
POST/api/tunnel/start启用第三方 NPC/NPS 穿透需要 Web 登录会话 Cookie
GET/api/tunnel/status内网穿透状态需要 Web 登录会话 Cookie
POST/api/tunnel/stoptunnel / stop需要 Web 登录会话 Cookie
POST/api/tunnel/test测试 NPC/NPS 服务端需要 Web 登录会话 Cookie
POST/api/wifi/connectwifi / connect需要 Web 登录会话 Cookie
POST/api/wifi/disablewifi / disable需要 Web 登录会话 Cookie
GET/POST/api/wifi/scanwifi / scan需要 Web 登录会话 Cookie
GET/POST/api/wifi/statusWiFi 状态需要 Web 登录会话 Cookie

应用与服务

方法接口说明认证
GET/api/alistalist需要 Web 登录会话 Cookie
GET/api/alist/alist / 需要 Web 登录会话 Cookie
POST/api/alist/startalist / start需要 Web 登录会话 Cookie
GET/api/appsapps需要 Web 登录会话 Cookie
GET/api/apps/saveapps / save需要 Web 登录会话 Cookie
GET/api/apps/script/installapps / script / install需要 Web 登录会话 Cookie
GET/api/apps/script/statusapps / script / status需要 Web 登录会话 Cookie
GET/api/apps/script/uninstallapps / script / uninstall需要 Web 登录会话 Cookie
POST/api/docker/actiondocker / action需要 Web 登录会话 Cookie
GET/api/docker/composedocker / compose需要 Web 登录会话 Cookie
GET/api/docker/compose-projectsdocker / compose projects需要 Web 登录会话 Cookie
POST/api/docker/configdocker / config需要 Web 登录会话 Cookie
POST/api/docker/container-actiondocker / container action需要 Web 登录会话 Cookie
GET/api/docker/container-logsdocker / container logs需要 Web 登录会话 Cookie
GET/api/docker/containersDocker 容器需要 Web 登录会话 Cookie
POST/api/docker/image-actiondocker / image action需要 Web 登录会话 Cookie
GET/api/docker/imagesdocker / images需要 Web 登录会话 Cookie
POST/api/docker/installdocker / install需要 Web 登录会话 Cookie
GET/api/docker/logsdocker / logs需要 Web 登录会话 Cookie
POST/api/docker/network-actiondocker / network action需要 Web 登录会话 Cookie
GET/api/docker/networksdocker / networks需要 Web 登录会话 Cookie
GET/api/docker/registry-searchdocker / registry search需要 Web 登录会话 Cookie
POST/api/docker/rundocker / run需要 Web 登录会话 Cookie
GET/api/docker/statusdocker / status需要 Web 登录会话 Cookie
GET/api/store/apps应用商店列表需要 Web 登录会话 Cookie
GET/api/store/casaos/appsstore / casaos / apps需要 Web 登录会话 Cookie
GET/api/store/casaos/installstore / casaos / install需要 Web 登录会话 Cookie
GET/api/store/casaos/uninstallstore / casaos / uninstall需要 Web 登录会话 Cookie
GET/api/store/home-assistant/importstore / home assistant / import需要 Web 登录会话 Cookie
GET/api/store/home-assistant/statusstore / home assistant / status需要 Web 登录会话 Cookie
GET/api/store/home-assistant/uploadstore / home assistant / upload需要 Web 登录会话 Cookie
GET/api/store/import/registerstore / import / register需要 Web 登录会话 Cookie
GET/api/store/import/startstore / import / start需要 Web 登录会话 Cookie
GET/api/store/import/statusstore / import / status需要 Web 登录会话 Cookie
GET/api/store/import/uploadstore / import / upload需要 Web 登录会话 Cookie
GET/api/store/install安装应用需要 Web 登录会话 Cookie
GET/api/store/startstore / start需要 Web 登录会话 Cookie
GET/api/store/stopstore / stop需要 Web 登录会话 Cookie
GET/api/store/uninstallstore / uninstall需要 Web 登录会话 Cookie
GET/api/store/updatestore / update需要 Web 登录会话 Cookie

其他接口

方法接口说明认证
GET/api/mobile/discovermobile / discover需要 Web 登录会话 Cookie
POST/api/scrapescrape需要 Web 登录会话 Cookie
POST/api/setupsetup需要 Web 登录会话 Cookie
POST/api/task-managertask manager需要 Web 登录会话 Cookie
POST/api/task-manager/killtask manager / kill需要 Web 登录会话 Cookie
POST/api/trash/emptytrash / empty需要 Web 登录会话 Cookie
GET/api/trash/listtrash / list需要 Web 登录会话 Cookie
POST/api/trash/restoretrash / restore需要 Web 登录会话 Cookie
POST/api/update/applyupdate / apply需要 Web 登录会话 Cookie
POST/api/update/checkupdate / check需要 Web 登录会话 Cookie
POST/api/update/uploadupdate / upload需要 Web 登录会话 Cookie