字节笔记本
2026年2月23日
Synology Download Station 官方 API 开发指南
本文介绍 Synology Download Station 官方 API 的完整开发指南,帮助开发者基于 Download Station API 构建应用程序,通过 HTTP 请求与群晖 NAS 的下载服务进行交互。
文档概述
Synology Download Station 是群晖 NAS 中最受欢迎的套件之一,提供强大的下载管理功能。本文档详细介绍 Download Station API 的结构和规范,包括基础 API 和 Download Station 专用 API 的完整说明。
API 工作流程
使用 Download Station API 需要遵循以下四个步骤:
1. 获取 API 信息
首先需要查询目标 DiskStation 上可用的 API 列表,通过 SYNO.API.Info API 的 query.cgi 接口获取。
请求示例:
GET /webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=all
响应包含:
- API 名称
- CGI 路径
- 支持的版本信息
2. 会话登录
使用 DSM 账号和密码通过 SYNO.API.Auth API 登录会话。
请求示例:
GET /webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=login&account=admin&passwd=12345&session=DownloadStation&format=cookie
3. 调用 Download API
登录成功后,可以调用所有可用的 Download Station API。
4. 会话注销
完成操作后,通过 SYNO.API.Auth API 的 logout 方法结束会话。
请求构造规范
所有 API 请求需要包含以下基本元素:
| 参数 | 说明 |
|---|---|
| api | API 名称 |
| version | API 版本 |
| path | CGI 路径(通过 SYNO.API.Info 获取) |
| method | 请求方法 |
| _sid | 授权会话 ID(通过 Cookie 或 GET/POST 参数传递) |
请求语法:
GET /webapi/<CGI_PATH>?api=<API_NAME>&version=<VERSION>&method=<METHOD>[&<PARAMS>][&_sid=<SID>]
响应解析
所有 API 响应均采用 JSON 格式,包含以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| success | boolean | 请求是否成功 |
| data | object | 响应数据对象 |
| error | integer | 错误代码(请求失败时返回) |
成功响应示例:
{
"success": true,
"data": {
"is_manager": true,
"version": 2269,
"version_string": "3.2-2269"
}
}失败响应示例:
{
"success": false,
"error": 101
}通用错误代码
| 代码 | 说明 |
|---|---|
| 100 | 未知错误 |
| 101 | 参数无效 |
| 102 | API 不存在 |
| 103 | 方法不存在 |
| 104 | 版本不支持该功能 |
| 105 | 会话无权限 |
| 106 | 会话超时 |
| 107 | 会话被重复登录中断 |
基础 API
SYNO.API.Info
提供可用 API 信息查询。
方法: query
参数:
query: API 名称列表(逗号分隔)或使用ALL获取所有支持的 API
响应对象:
path: API CGI 路径minVersion: 最小支持版本maxVersion: 最大支持版本
SYNO.API.Auth
执行会话登录和注销。
登录方法: login
参数:
account: 登录账号passwd: 登录密码session: 会话名称format: 会话 ID 返回格式(cookie或sid)otp_code: 2步验证代码(DSM 4.2+)
注销方法: logout
参数:
session: 要注销的会话名称
错误代码:
- 400: 账号不存在或密码错误
- 401: 账号已禁用
- 402: 权限被拒绝
- 403: 需要2步验证码
- 404: 2步验证失败
Download Station API
SYNO.DownloadStation.Info
提供 Download Station 信息和设置管理。
方法:
getinfo: 获取 Download Station 信息getconfig: 获取服务器配置setserverconfig: 设置服务器配置
配置参数包括:
bt_max_download: BT 最大下载速度(KB/s,0 表示无限制)bt_max_upload: BT 最大上传速度(KB/s)emule_max_download: eMule 最大下载速度emule_max_upload: eMule 最大上传速度nzb_max_download: NZB 最大下载速度http_max_download: HTTP 最大下载速度ftp_max_download: FTP 最大下载速度emule_enabled: eMule 服务是否启用unzip_service_enabled: 自动解压服务是否启用default_destination: 默认下载路径emule_default_destination: eMule 默认路径
SYNO.DownloadStation.Schedule
提供高级下载计划设置。
方法:
getconfig: 获取计划配置setconfig: 设置计划配置
参数:
enabled: 下载计划是否启用emule_enabled: eMule 下载计划是否启用
SYNO.DownloadStation.Task
提供下载任务管理和操作。
方法:
list: 获取任务列表getinfo: 获取任务详细信息create: 创建下载任务delete: 删除任务pause: 暂停任务resume: 恢复任务edit: 编辑任务
List 方法参数:
offset: 起始记录位置(默认 0)limit: 请求记录数量(-1 表示所有任务)additional: 额外信息选项(逗号分隔)detail: 任务详情transfer: 传输信息file: 文件信息(仅 BT)tracker: Tracker 信息(仅 BT)peer: Peer 信息(仅 BT)
任务对象字段:
id: 任务 IDtype: 任务类型(bt/http/ftp/emule/nzb)username: 用户名title: 任务标题size: 文件大小status: 任务状态status_extra: 额外状态信息
Create 方法参数:
uri: 下载链接(HTTP/FTP/magnet/ED2K)或文件路径file: 上传的文件username: 登录用户名password: 登录密码unzip_password: 解压密码destination: 下载目标路径
SYNO.DownloadStation.Statistic
提供总下载/上传统计信息。
方法: getinfo
响应包含:
- 总下载速度
- 总上传速度
SYNO.DownloadStation.RSS.Site
提供 RSS 站点管理。
方法:
list: 获取 RSS 站点列表refresh: 刷新 RSS 站点
SYNO.DownloadStation.RSS.Feed
提供 RSS 订阅源管理。
方法: list
参数:
offset: 起始位置limit: 数量限制
SYNO.DownloadStation.BTSearch
提供 BT 搜索功能。
方法:
start: 开始搜索list: 获取搜索结果
完整工作示例
以下是从登录到获取下载任务列表的完整示例:
步骤 1: 获取 API 信息
GET http://myds.com:5000/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=SYNO.API.Auth,SYNO.DownloadStation.Task
步骤 2: 会话登录
GET http://myds.com:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=2&method=login&account=admin&passwd=12345&session=DownloadStation&format=cookie
响应:
{
"data": {
"sid": "ohOCjwhHhwghw"
},
"success": true
}步骤 3: 请求下载任务列表
GET http://myds.com:5000/webapi/DownloadStation/task.cgi?api=SYNO.DownloadStation.Task&version=1&method=list&additional=detail,transfer
步骤 4: 会话注销
GET http://myds.com:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=1&method=logout&session=DownloadStation
任务状态说明
| 状态 | 说明 |
|---|---|
| waiting | 等待中 |
| downloading | 下载中 |
| paused | 已暂停 |
| finished | 已完成 |
| error | 错误 |
| hashing | 校验中 |
| seeding | 做种中(BT) |
| filehosting_waiting | 网盘等待中 |
| extracting | 解压中 |
注意事项
- 版本兼容性:所有 Download Station API 需要 DSM 4.0 或更高版本
- 权限要求:部分配置操作需要管理员权限
- 速率限制:HTTP 和 FTP 最大下载速率共享同一配置值
- 会话管理:建议操作完成后及时注销会话
- 2步验证:DSM 4.2+ 支持 2步验证,需要在登录时提供
otp_code参数