🚀 青龙面板 API 在线调试文档

完整的接口文档,支持在线调试和参数示例

⚙️ API 配置
📱 应用管理
GET /auth/token 获取认证Token (使用client_id和client_secret)
🌐 请求URL
📝 请求参数 (Query)
参数名类型是否必填说明
client_idstring应用ID
client_secretstring应用密钥
📥 响应示例
{ "code": 200, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expiration": 2592000 } }
🧪 在线测试
GET /apps 获取应用列表
🌐 请求URL
📥 响应示例
{ "code": 200, "data": [{ "id": 1, "name": "测试应用", "client_id": "xxxxx", "client_secret": "xxxxx", "scopes": ["crons", "envs"], "status": 1 }] }
🧪 在线测试
POST /apps 创建应用
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
namestring应用名称
scopesstring[]权限范围数组
📤 请求示例
{ "name": "我的应用", "scopes": ["crons", "envs", "scripts"] }
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /apps 更新应用
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idnumber应用ID
namestring应用名称
scopesstring[]权限范围数组
📤 请求示例
{ "id": 1, "name": "更新后的应用名", "scopes": ["crons", "envs", "logs"] }
📥 响应示例
{"code": 200}
🧪 在线测试
DELETE /apps 删除应用
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]应用ID数组
📤 请求示例
[1, 2, 3]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /apps/:id/reset-secret 重置应用密钥
🌐 请求URL
📝 请求参数 (URL)
参数名类型是否必填说明
idnumber应用ID(URL路径参数)
📤 请求示例
PUT /apps/1/reset-secret
📥 响应示例
{ "code": 200, "data": { "client_secret": "new_secret_xxxxx" } }
🧪 在线测试
👤 用户管理
POST /user/login 用户登录
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
usernamestring用户名
passwordstring密码
📤 请求示例
{ "username": "admin", "password": "admin123" }
📥 响应示例
{ "code": 200, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "username": "admin", "twoFactorActivated": false } }
🧪 在线测试
POST /user/logout 用户登出
🌐 请求URL
📤 请求示例
(无需请求体)
📥 响应示例
{"code": 200}
🧪 在线测试
GET /user 获取用户信息
🌐 请求URL
📤 请求示例
(无需请求体)
📥 响应示例
{ "code": 200, "data": { "username": "admin", "avatar": "avatar.png", "twoFactorActivated": false } }
🧪 在线测试
PUT /user 更新用户名和密码
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
usernamestring新用户名
passwordstring新密码
📤 请求示例
{ "username": "newadmin", "password": "newpassword123" }
📥 响应示例
{"code": 200}
🧪 在线测试
GET /user/two-factor/login 获取双因素认证信息
🌐 请求URL
📥 响应示例
{ "code": 200, "data": { "secret": "XXXXXXXXXXXX", "url": "otpauth://totp/..." } }
🧪 在线测试
PUT /user/two-factor/activate 激活双因素认证
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
codestring双因素认证码
📤 请求示例
{"code": "123456"}
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /user/two-factor/deactivate 停用双因素认证
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
codestring双因素认证码
📤 请求示例
{"code": "123456"}
📥 响应示例
{"code": 200}
🧪 在线测试
GET /user/notification 获取通知配置
🌐 请求URL
📥 响应示例
{ "code": 200, "data": { "type": "email", "config": {"to": "user@example.com"} } }
🧪 在线测试
PUT /user/notification 更新通知配置
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
typestring通知类型(email/webhook等)
configobject通知配置
📤 请求示例
{ "type": "email", "config": {"to": "user@example.com"} }
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /user/init 初始化用户
🌐 请求URL
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /user/notification/init 初始化通知配置
🌐 请求URL
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /user/avatar 上传用户头像
🌐 请求URL
📝 请求参数 (FormData)
参数名类型是否必填说明
avatarfile头像文件
📥 响应示例
{ "code": 200, "data": { "avatar": "/uploads/xxx.png" } }
🧪 在线测试

需要使用FormData上传文件,请使用Postman等工具测试

GET /user/login-log 获取登录日志
🌐 请求URL
📥 响应示例
{ "code": 200, "data": [{ "timestamp": 1234567890, "address": "127.0.0.1", "platform": "web", "status": "success" }] }
🧪 在线测试
⏰ 定时任务管理
GET /crons 获取定时任务列表
🌐 请求URL
📝 请求参数 (Query)
参数名类型是否必填说明
searchValuestring搜索关键词
📤 请求示例
GET /crons?searchValue=测试
📥 响应示例
{ "code": 200, "data": [{ "id": 1, "name": "测试任务", "command": "node test.js", "schedule": "0 0 * * *", "status": 0, "isDisabled": 0, "isPinned": 0, "createdAt": "2025-01-01 00:00:00" }] }
🧪 在线测试
POST /crons 创建定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
namestring任务名称
commandstring执行命令
schedulestringCron表达式
📤 请求示例
{ "name": "测试任务", "command": "node test.js", "schedule": "0 0 * * *" }
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /crons/run 运行定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]任务ID数组
📤 请求示例
[1, 2, 3]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /crons/stop 停止定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]任务ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /crons 更新定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idnumber任务ID
namestring任务名称
commandstring执行命令
schedulestringCron表达式
📤 请求示例
{ "id": 1, "name": "更新的任务", "command": "node updated.js", "schedule": "0 1 * * *" }
📥 响应示例
{"code": 200}
🧪 在线测试
DELETE /crons 删除定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]任务ID数组
📤 请求示例
[1, 2, 3]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /crons/disable 禁用定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]任务ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /crons/enable 启用定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]任务ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /crons/pin 置顶定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]任务ID数组
📤 请求示例
[1]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /crons/unpin 取消置顶定时任务
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]任务ID数组
📤 请求示例
[1]
📥 响应示例
{"code": 200}
🧪 在线测试
GET /crons/:id 获取任务详情
🌐 请求URL
📥 响应示例
{ "code": 200, "data": { "id": 1, "name": "测试任务", "command": "node test.js", "schedule": "0 0 * * *" } }
🧪 在线测试
GET /crons/:id/log 获取任务日志
🌐 请求URL
📥 响应示例
{ "code": 200, "data": "任务执行日志内容..." }
🧪 在线测试
🌍 环境变量管理
GET /envs 获取环境变量列表
🌐 请求URL
📤 请求示例
(无需请求体)
📥 响应示例
{ "code": 200, "data": [{ "id": 1, "name": "TEST_ENV", "value": "test_value", "remarks": "测试环境变量", "status": 0 }] }
🧪 在线测试
POST /envs 创建环境变量
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
namestring变量名(字母、数字、下划线)
valuestring变量值
remarksstring备注
📤 请求示例
[{ "name": "TEST_ENV", "value": "test_value", "remarks": "测试环境变量" }]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /envs 更新环境变量
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idnumber环境变量ID
namestring变量名
valuestring变量值
remarksstring备注
📤 请求示例
{ "id": 1, "name": "TEST_ENV", "value": "new_value", "remarks": "更新后的备注" }
📥 响应示例
{"code": 200}
🧪 在线测试
DELETE /envs 删除环境变量
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]环境变量ID数组
📤 请求示例
[1, 2, 3]
📥 响应示例
{"code": 200}
🧪 在线测试
GET /envs/:id 获取环境变量详情
🌐 请求URL
📥 响应示例
{ "code": 200, "data": { "id": 1, "name": "TEST_ENV", "value": "test_value" } }
🧪 在线测试
PUT /envs/disable 禁用环境变量
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]环境变量ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /envs/enable 启用环境变量
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]环境变量ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /envs/name 更新环境变量名称
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idnumber环境变量ID
namestring新名称
📤 请求示例
{ "id": 1, "name": "NEW_ENV_NAME" }
📥 响应示例
{"code": 200}
🧪 在线测试
📝 脚本管理
GET /scripts 获取脚本列表
🌐 请求URL
📥 响应示例
{ "code": 200, "data": [{ "title": "script.js", "value": "script.js", "key": "script.js", "mtime": 1234567890000, "children": [] }] }
🧪 在线测试
GET /scripts/:file 获取脚本内容
🌐 请求URL
📥 响应示例
{ "code": 200, "data": "console.log('Hello');" }
🧪 在线测试
POST /scripts 创建脚本文件
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
filenamestring文件名
contentstring文件内容
pathstring文件路径
📤 请求示例
{ "filename": "newscript.js", "content": "console.log('Hello');" }
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /scripts 更新脚本文件
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
filenamestring文件名
contentstring新内容
pathstring文件路径
📤 请求示例
{ "filename": "test.js", "content": "console.log('Updated');" }
📥 响应示例
{"code": 200}
🧪 在线测试
DELETE /scripts 删除脚本文件
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
filenamestring文件名
pathstring文件路径
📤 请求示例
{"filename": "test.js"}
📥 响应示例
{"code": 200}
🧪 在线测试
⚙️ 配置管理
GET /configs 获取配置列表
🌐 请求URL
📥 响应示例
{ "code": 200, "data": [{ "id": 1, "name": "config.sh", "content": "export VAR=value" }] }
🧪 在线测试
GET /configs/:id 获取配置详情
🌐 请求URL
📥 响应示例
{ "code": 200, "data": { "id": 1, "name": "config.sh", "content": "export VAR=value" } }
🧪 在线测试
POST /configs 创建配置
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
namestring配置名称
contentstring配置内容
📤 请求示例
{ "name": "custom.sh", "content": "export MY_VAR=123" }
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /configs 更新配置
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idnumber配置ID
namestring配置名称
contentstring配置内容
📤 请求示例
{ "id": 1, "name": "config.sh", "content": "export UPDATED_VAR=456" }
📥 响应示例
{"code": 200}
🧪 在线测试
DELETE /configs 删除配置
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]配置ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
📋 日志管理
GET /logs 获取日志列表
🌐 请求URL
📥 响应示例
{ "code": 200, "data": [{ "name": "log_2025-01-01.log", "size": 1024, "mtime": 1234567890000 }] }
🧪 在线测试
GET /logs/:file 获取日志内容
🌐 请求URL
📥 响应示例
{ "code": 200, "data": "日志内容..." }
🧪 在线测试
DELETE /logs 删除日志文件
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
filenamestring日志文件名
📤 请求示例
{"filename": "app.log"}
📥 响应示例
{"code": 200}
🧪 在线测试
📦 依赖管理
GET /dependencies 获取依赖列表
🌐 请求URL
📥 响应示例
{ "code": 200, "data": [{ "id": 1, "type": "nodejs", "name": "axios", "status": 0 }] }
🧪 在线测试
POST /dependencies 安装依赖
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
typestring依赖类型(nodejs/python3/linux)
namestring依赖名称
📤 请求示例
[{ "type": "nodejs", "name": "axios" }]
📥 响应示例
{"code": 200}
🧪 在线测试
DELETE /dependencies 删除依赖
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]依赖ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
📡 订阅管理
GET /subscriptions 获取订阅列表
🌐 请求URL
📥 响应示例
{ "code": 200, "data": [{ "id": 1, "name": "测试订阅", "url": "https://example.com/sub.json", "type": "public-repo", "status": 0 }] }
🧪 在线测试
POST /subscriptions 创建订阅
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
namestring订阅名称
urlstring订阅URL
typestring订阅类型
schedulestring定时执行cron表达式
📤 请求示例
{ "name": "我的订阅", "url": "https://example.com/sub.json", "type": "public-repo", "schedule": "0 0 * * *" }
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /subscriptions 更新订阅
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idnumber订阅ID
namestring订阅名称
urlstring订阅URL
typestring订阅类型
schedulestring定时执行cron表达式
📤 请求示例
{ "id": 1, "name": "更新的订阅", "url": "https://example.com/new.json", "type": "public-repo" }
📥 响应示例
{"code": 200}
🧪 在线测试
DELETE /subscriptions 删除订阅
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]订阅ID数组
📤 请求示例
[1, 2]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /subscriptions/run 运行订阅
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]订阅ID数组
📤 请求示例
[1]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /subscriptions/disable 禁用订阅
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]订阅ID数组
📤 请求示例
[1]
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /subscriptions/enable 启用订阅
🌐 请求URL
📝 请求参数 (Body)
参数名类型是否必填说明
idsnumber[]订阅ID数组
📤 请求示例
[1]
📥 响应示例
{"code": 200}
🧪 在线测试
⚡ 系统管理
GET /system 获取系统信息
🌐 请求URL
📥 响应示例
{ "code": 200, "data": { "version": "2.14.0", "isInitialized": true, "platform": "linux" } }
🧪 在线测试
PUT /system/update-check 检查系统更新
🌐 请求URL
📥 响应示例
{ "code": 200, "data": { "hasNewVersion": true, "latestVersion": "2.15.0" } }
🧪 在线测试
PUT /system/update 更新系统
🌐 请求URL
📥 响应示例
{"code": 200}
🧪 在线测试
PUT /system/reload 重新加载系统
🌐 请求URL
📥 响应示例
{"code": 200}
🧪 在线测试