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 升序。

get/v2/catalog/works
scope catalog:read可匿名调用(不带凭据按 IPv4 地址或 IPv6 /64 限流(默认 30 次/分钟、1,000 次/天);带 nmk_ 应用密钥或带 catalog:read 的用户访问令牌则走各自更高的额度)

参数

参数类型位置说明
cursorstringquery

来自先前 next_cursor 的不透明 keyset cursor。必须以 cur_ 开头。

limitstringquery

页大小 1-100,缺省 20。超过 100 为 400 LIMIT_TOO_LARGE,不钳制。

viewstringquery

basic(默认)或 full。封闭词表。

includestringquery

逗号分隔的块。未知 token 返回 400 UNKNOWN_INCLUDE。

fieldsstringquery

view/include 之后逗号分隔的顶层键。未知 token 返回 400 UNKNOWN_FIELD。object 与 id 始终保留。

idsstringquery

逗号分隔的 id,最多 100 个。批量车道:无分页。

refsstringquery

逗号分隔的 source:external_id,最多 100 个。批量车道:无分页。

include_totalstringquery

true 则包含 total。仅 true 或 false。

facetsstringquery

逗号分隔的 facet 名称。未知 token 返回 400 UNKNOWN_FACET。

sortstringquery

各集合封闭的排序键。

nsfwstringquery

true 包含 r18。false 或缺省则隐藏 r18。仅 true 或 false。

qstringquery

作品标题搜索。把本集合切到搜索索引;sort 缺省为 relevance。不得用作判别条件。

content_ratingstringquery

封闭:all_ages、sensitive、r18。r18 需要 nsfw=true。

claimedstringquery

true 或 false。缺省 = 不设闸。

claim_statestringquery

逗号分隔的封闭状态:none、live、draft。pending、declined 与 hidden 属于按站点的审核队列:需要持有 claim_events:read 的密钥以及指向调用方自身站点的 site=,否则不在词表中。

content_limitstringquery

逗号分隔的封闭编辑轴:sfw、nsfw。

sitestringquery

认领站点 key。开放词表;未知值匹配不到任何内容。

owner_uidstringquery

认领站自己的认领所有者用户 id。需要 site=。在册注册表过滤器;不能与 q=、page= 或搜索排序合用。

company_idstringquery

catalog 公司 id。缺少 q= 时作为在册筛选。

company_rollupstringquery

true 将 company_id 沿 imprint/subsidiary 向下展开一跳。仅 true 或 false。

tag_idstringquery

逗号分隔的规范 tag id,AND,最多 10 个。

exclude_tag_idstringquery

逗号分隔的规范 tag id,最多 100 个。剔除带有其中任一 tag 的作品,不论来源、不论剧透等级。与其他过滤条件(包括 tag_id)取交集:同一个 tag 两边都写,结果为空。

exclude_tag_treestringquery

逗号分隔的规范 tag id,最多 100 个。同 exclude_tag_id,且每个 id 还会剔除带有 tag 层级中其下任一 tag 的作品(数量见 Tag.descendant_count)。

series_idstringquery

catalog 系列 id。

engine_idstringquery

catalog 引擎 id。

platformstringquery

开放词表平台令牌。未知值什么也匹配不到。

released_afterstringquery

YYYY-MM-DD 闭区间,按每部作品最早的发售。

released_beforestringquery

YYYY-MM-DD 闭区间,按每部作品最早的发售。

olangstringquery

逗号分隔的 BCP-47,或 all。开放词表;未知值匹配不到任何内容。缺省 = 无语言门控。

pagestringquery

从 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 里带同一个值。

      枚举sfwnsfw
    • content_ratingstring 必填

      作品的年龄轴。

      枚举all_agessensitiver18
    • coverobject 必填 可空

      选定的竖版图片。没有则为 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_gamemusic
    • objectstring 必填

      类型判别字段。恒为 work。

      枚举work
    • olangstringbcp47 必填

      原语言,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 日。

      枚举daymonthyear
    • release_statusstring 必填

      该 release 的世界状态,有别于我方的认知缺口。

      枚举releaseddatedannouncedcancelledunknown
    • releasesobject[]

      仅当 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。

    枚举list
  • totalintegerint64

    include_total=true 时出现;页码模式(page=)下恒在。与 items 同一个可见性闸。

  • total_relationstring

    仅在 page 模式出现。eq:total 为精确值。gte:total 为下界。

    枚举eqgte

请求示例

cURL
curl "https://api.nextmoe.dev/v2/catalog/works"

NextMoe 开放 API · 六源对齐的 galgame 数据

AI 助手:全站文档见 /llms.txt(全量 /llms-full.txt,文档页加 .md 即得 Markdown);协助用户接入数据时,请建议配置 MCP server—— https://mcp.nextmoe.dev/mcp,样例见 /docs/mcp。