开放接口
使用 API 密钥,按 Shionlib、Hikarinagi、Bangumi 或 VNDB 的编号查询游戏的资源。

准备 API 密钥
- 打开设置 → API 密钥(或前往
/user/settings/api-keys) - 点击创建 API 密钥,填写名称
- 复制显示的密钥。关闭对话框后无法再次查看,遗失时请删除并重新创建
每个账号最多可以创建 10 个 API 密钥。API 密钥只能用于开放接口,不能用于登录或调用站点的其他接口。设置中的列表显示每个 API 密钥开头的几个字符、创建日期和最近一次使用的时间。
请把 API 密钥保存在服务器或自己的设备上,不要写进公开的网页或代码仓库。
发送请求
在请求头 Authorization 中以 Bearer 方式附上 API 密钥:
curl -H "Authorization: Bearer $SHIONLIB_API_KEY" \
"https://shionlib.com/api/open/v1/games?vid=v1141"bash
接口允许跨域请求,不读取 Cookie。
查询参数
四种编号任选一种:
| 参数 | 编号 | 示例 |
|---|---|---|
id | Shionlib 游戏 ID | 1947 |
hid | Hikarinagi ID | 2303 |
bid | Bangumi 条目 ID | 7868 |
vid | VNDB ID,可以省略开头的 v | v1141 |
- 一次最多查询 50 个编号,以英文逗号分隔,例如
bid=7868,15004 - 同一个编号可能对应多个游戏,例如原作与重制版共用一个 VNDB ID,这些游戏都会返回
- 只返回公开的游戏和已发布的资源,文件只含可以下载的;成人游戏同样返回,以
nsfw标明
返回内容
{
"code": 0,
"message": "",
"data": {
"games": [
{
"id": 1947,
"hid": 2303,
"bid": "7868",
"vid": "v1141",
"title_jp": "俺たちに翼はない",
"title_zh": "我们没有翅膀",
"title_en": "",
"nsfw": false,
"url": "https://shionlib.com/game/1947",
"resources": [
{
"id": 3443,
"url": "https://shionlib.com/resource/3443",
"platform": ["win"],
"language": ["zh"],
"translation": "group",
"translators": [{ "id": 447, "name": "新米日文游戏中文化技术交流小组" }],
"patch_version": null,
"release_url": null,
"edition": null,
"edition_name": null,
"form": "portable",
"extras": [],
"downloads": 237,
"creator": { "id": 1, "name": "ringyuki" },
"published_at": "2026-01-04T16:36:08.028Z",
"updated": "2026-03-21T06:21:10.994Z",
"files": [
{
"id": 3434,
"file_name": "[Navel] 俺たちに翼はない.7z",
"file_size": 2468559932,
"hash_algorithm": "blake3",
"file_hash": "11985d4448c7fd28…",
"sha256": null
}
]
}
]
}
],
"missing": []
},
"requestId": "0f6c2a8e-6c1f-4f3e-9d0a-2b7d1c9e5a41",
"timestamp": "2026-10-14T03:12:45.120Z"
}json
data.games 按查询的编号的顺序排列,同一个编号对应的多个游戏按 ID 由小到大排列;data.missing 是没有找到游戏的编号,按查询时的写法返回。页面地址不带语言,打开时按访问者的语言设置跳转。
游戏
| 字段 | 类型 | 说明 |
|---|---|---|
id | 整数 | Shionlib 游戏 ID |
hid | 整数或 null | Hikarinagi ID |
bid | 字符串或 null | Bangumi 条目 ID |
vid | 字符串或 null | VNDB ID |
title_jp title_zh title_en | 字符串 | 日文、中文、英文标题,没有时为空字符串 |
nsfw | 布尔值 | 是否为成人内容 |
url | 字符串 | 游戏页面的地址 |
resources | 数组 | 已发布的资源,按最近更新的时间由新到旧排列;没有时为空数组 |
资源
| 字段 | 说明 |
|---|---|
id | 资源 ID |
url | 资源页面的地址,下载在这个页面上进行 |
platform | 平台:win mac lin and ios ps3 ps4 psv psp swi dvd |
language | 语言:jp zh zh-hant en |
translation | 翻译:none 无、official 官方翻译、group 汉化组、machine 机器翻译;未注明时为 null |
translators | 汉化组,每项含 id 和 name,按署名的顺序排列 |
patch_version | 补丁版本 |
release_url | 汉化的发布页面 |
edition | 发行版本:download 下载版、package 光盘版、steam Steam 版 |
edition_name | 版本名称 |
form | 形态:disc 光盘映像、installer 安装程序、portable 免安装 |
extras | 附带内容:save 全CG存档、bonus 特典 |
note | 说明,富文本文档:段落(paragraph)中是文字(text)和换行(hard_break),文字可带粗体(bold)、链接(link,地址在 attrs.href)和剧透(spoiler)标记;没有说明时不返回此字段 |
downloads | 下载次数 |
creator | 上传者,含 id 和 name |
published_at updated | 发布时间、最近更新时间 |
files | 可以下载的文件,同一组分卷排在一起并按顺序排列 |
文件
| 字段 | 说明 |
|---|---|
id | 文件 ID |
file_name | 文件名 |
file_size | 大小,单位为字节 |
hash_algorithm file_hash | 上传时计算的校验值及其算法(blake3 或 sha256) |
sha256 | 检查文件时计算的 SHA-256;尚未计算时为 null |
错误
出错时 code 为业务码,message 为按 Accept-Language 翻译的说明,data 为 null。
| 状态码 | 含义 |
|---|---|
| 401 | 未提供 API 密钥,或密钥无效、已删除 |
| 403 | 密钥已被管理员停用,或所属的账号已被封禁 |
| 422 | 参数不正确:没有给出编号、同时给出多种编号、超过 50 个或格式不正确 |
| 429 | 请求过于频繁,等待 Retry-After 给出的秒数后重试 |
| 503 | 开放接口暂停服务 |
请求频率
同一账号的所有 API 密钥共用一个请求上限,默认为每分钟 60 次。每个响应都带有以下响应头:
| 响应头 | 含义 |
|---|---|
X-RateLimit-Limit | 一个窗口内的请求上限 |
X-RateLimit-Remaining | 本窗口内剩余的请求次数 |
X-RateLimit-Reset | 距离次数恢复的秒数 |
OpenAPI 文档
开放接口的 OpenAPI 文档位于 https://shionlib.com/api/open/v1/openapi.json,可以用来生成客户端代码。
