listCatalogWorks
列出作品
keyset 分页的作品集合。q= 切换为检索(sort 缺省为 relevance)。q= 缺席时,company_id=/tag_id=/series_id= 过滤 live 注册表。exclude_tag_id=/exclude_tag_tree= 按 tag 剔除作品,所有通道(含检索)都生效。可匿名调用,按 IP 地址限流;应用密钥或带 catalog:read 的用户访问令牌各有更高的额度。view/include/fields/ids/refs/facets 遵循 v2 集合契约。include= 接受 titles, refs, intros, covers, companies, ratings, tags, credits, playtimes。view=full 即 titles, refs, intros, covers, companies, ratings, tags;credits, playtimes 只在 include= 点名时返回。每个块在每条车道都填充,含 ids=/refs= 批量车道。在集合车道上,titles 选出 latin/localized,covers 选出给基础 cover 分级的两个封面槽——完整的 titles[] 与 covers[] 数组,以及 relations, releases, popularity, series, platforms, screenshots, characters, engines, links,是单条记录块,位于 /v2/catalog/works/{id} 及其子资源;在此请求其中之一为 400 UNKNOWN_INCLUDE。page= 选择 page 模式(见 page 参数)。sort=rating_bangumi, rating_vndb, rating_erogamescape, rating_dlsite, rating_nextmoe 各按单一来源的评分从高到低排序,读检索索引(每晚重建)。各来源从不合并,各用自己的分制。bangumi、erogamescape 与 dlsite 按 (10·m + n·score) / (10 + n) 排序,其中 n 为该来源的 vote_count,m 为该来源在已索引作品上的平均分,票数少的作品会被拉向 m;vndb 与 nextmoe 发布的本就是贝叶斯分,按发布值排序。该来源未评分的作品排在最后,同分按 id 升序。
/v2/catalog/workscatalog:read可匿名调用(不带凭据按 IPv4 地址或 IPv6 /64 限流(默认 30 次/分钟、1,000 次/天);带 nmk_ 应用密钥或带 catalog:read 的用户访问令牌则走各自更高的额度)参数
| 参数 | 类型 | 位置 | 说明 |
|---|---|---|---|
cursor | string | query | 来自先前 next_cursor 的不透明 keyset cursor。必须以 cur_ 开头。 |
limit | string | query | 页大小 1-100,缺省 20。超过 100 为 400 LIMIT_TOO_LARGE,不钳制。 |
view | string | query | basic(默认)或 full。封闭词表。 |
include | string | query | 逗号分隔的块。未知 token 返回 400 UNKNOWN_INCLUDE。 |
fields | string | query | view/include 之后逗号分隔的顶层键。未知 token 返回 400 UNKNOWN_FIELD。object 与 id 始终保留。 |
ids | string | query | 逗号分隔的 id,最多 100 个。批量车道:无分页。 |
refs | string | query | 逗号分隔的 source:external_id,最多 100 个。批量车道:无分页。 |
include_total | string | query | true 则包含 total。仅 true 或 false。 |
facets | string | query | 逗号分隔的 facet 名称。未知 token 返回 400 UNKNOWN_FACET。 |
sort | string | query | 各集合封闭的排序键。 |
nsfw | string | query | true 包含 r18。false 或缺省则隐藏 r18。仅 true 或 false。 |
q | string | query | 作品标题搜索。把本集合切到搜索索引;sort 缺省为 relevance。不得用作判别条件。 |
content_rating | string | query | 封闭:all_ages、sensitive、r18。r18 需要 nsfw=true。 |
claimed | string | query | true 或 false。缺省 = 不设闸。 |
claim_state | string | query | 逗号分隔的封闭状态:none、live、draft。pending、declined 与 hidden 属于按站点的审核队列:需要持有 claim_events:read 的密钥以及指向调用方自身站点的 site=,否则不在词表中。 |
content_limit | string | query | 逗号分隔的封闭编辑轴:sfw、nsfw。 |
site | string | query | 认领站点 key。开放词表;未知值匹配不到任何内容。 |
owner_uid | string | query | 认领站自己的认领所有者用户 id。需要 site=。在册注册表过滤器;不能与 q=、page= 或搜索排序合用。 |
company_id | string | query | catalog 公司 id。缺少 q= 时作为在册筛选。 |
company_rollup | string | query | true 将 company_id 沿 imprint/subsidiary 向下展开一跳。仅 true 或 false。 |
tag_id | string | query | 逗号分隔的规范 tag id,AND,最多 10 个。 |
exclude_tag_id | string | query | 逗号分隔的规范 tag id,最多 100 个。剔除带有其中任一 tag 的作品,不论来源、不论剧透等级。与其他过滤条件(包括 tag_id)取交集:同一个 tag 两边都写,结果为空。 |
exclude_tag_tree | string | query | 逗号分隔的规范 tag id,最多 100 个。同 exclude_tag_id,且每个 id 还会剔除带有 tag 层级中其下任一 tag 的作品(数量见 Tag.descendant_count)。 |
series_id | string | query | catalog 系列 id。 |
engine_id | string | query | catalog 引擎 id。 |
platform | string | query | 开放词表平台令牌。未知值什么也匹配不到。 |
released_after | string | query | YYYY-MM-DD 闭区间,按每部作品最早的发售。 |
released_before | string | query | YYYY-MM-DD 闭区间,按每部作品最早的发售。 |
olang | string | query | 逗号分隔的 BCP-47,或 all。开放词表;未知值匹配不到任何内容。缺省 = 无语言门控。 |
page | string | query | 从 1 开始的页码。选择 page 模式:响应携带 total 与 total_relation,且无 next_cursor。page 乘 limit 不得超过 10000;最后可到达的页为 min(ceil(total/limit), floor(10000/limit))。不能与 cursor、ids 或 refs 组合。 |
响应
facetsmap<string, object[]>具名 facet 桶。仅在请求 facets= 时出现。
«key»object[]可空
itemsobject[]必填本页成员。空数组,从不为 null。
bannerobject必填 可空选定的横版图片。没有则为 null。origin=screenshot 表示该作品没有横版封面、改用截图兜底。
charactersobject[]仅当 include=characters 时出现。没有则为空数组。
claimobject必填 可空未认领时为 null。view=basic 下也从不省略。
companiesobject[]仅当 include=companies 时出现。没有则为空数组。
content_limitstring必填展示轴:这部作品能否展示给没有选择成人内容的读者。每部作品都带,认领与否,也是 content_limit 过滤器筛选的值。它不是 content_rating:封面安全的 r18 游戏是 sfw,封面全部被判 explicit 的作品不论分级都是 nsfw。已认领作品在 claim.content_limit 里带同一个值。
枚举sfwnsfwcontent_ratingstring必填作品的年龄轴。
枚举all_agessensitiver18coverobject必填 可空选定的竖版图片。没有则为 null。
coversobject[]仅当 include=covers 时出现。没有则为空数组。
created_atstringdate-time 必填RFC 3339 UTC。
creditsobject[]仅当 include=credits 时出现。没有则为空数组。
display_namestring必填主显示名。永不为空。不得用作判别条件。
enginesobject[]仅当 include=engines 时出现。没有则为空数组。
idstring必填作品 id。十进制整数的 JSON 字符串。
introsobject[]仅当 include=intros 时出现。没有则为空数组。
latinstring必填 可空罗马字转写。未记录则为 null。不得用作判别条件。
linksobject[]仅当 include=links 时出现。没有则为空数组。
localizedmap<string, object>必填BCP-47 键,稀疏。没有则为空对象。不得用作判别条件。
mediumstring必填从不为 null。
枚举galgamemanganovelanimeasmrdoujin_gamemusicobjectstring必填类型判别字段。恒为 work。
枚举workolangstringbcp47 必填原语言,BCP-47。开放词表语言。
platformsobject[]仅当 include=platforms 时出现。没有则为空数组。
playtimesobject[]仅当 include=playtimes 时出现。没有则为空数组。
popularityobject[]仅当 include=popularity 时出现。没有则为空数组。
ratingsobject[]仅当 include=ratings 时出现。没有则为空数组。
refsobject[]仅当 include=refs 时出现。没有则为空数组。
relationsobject[]仅当 include=relations 时出现。没有则为空数组。
release_datestringdate 必填 可空日历日期。当 release_status 为 announced、cancelled 或 unknown 时为 null。
release_date_precisionstring必填 可空release_date 为 null 时为 null。精确到月的日期落在该月 1 日;精确到年的日期落在 1 月 1 日。
枚举daymonthyearrelease_statusstring必填该 release 的世界状态,有别于我方的认知缺口。
枚举releaseddatedannouncedcancelledunknownreleasesobject[]仅当 include=releases 时出现。没有则为空数组。
screenshotsobject[]仅当 include=screenshots 时出现。没有则为空数组。
seriesobject[]仅当 include=series 时出现。没有则为空数组。
tagsobject[]仅当 include=tags 时出现。没有则为空数组。
titlesobject[]仅当 include=titles 时出现。没有则为空数组。
updated_atstringdate-time 必填RFC 3339 UTC。
via_companyobject
missingstring[]已请求但不可见的 ids。仅出现在 ids=/refs= 批量车道。
next_cursorstring不透明 keyset cursor。末页省略。
objectstring必填类型判别字段。恒为 list。
枚举listtotalintegerint64include_total=true 时出现;页码模式(page=)下恒在。与 items 同一个可见性闸。
total_relationstring仅在 page 模式出现。eq:total 为精确值。gte:total 为下界。
枚举eqgte
请求示例
curl "https://api.nextmoe.dev/v2/catalog/works"