API ドキュメント

全エンドポイントは GET・認証不要・CORS許可済みです。レスポンスは共通のエンベロープで返されます。 自前のレート制限(1IPあたり60req/分)を設けています。

正常レスポンス
{
  "data": <レスポンス本体>,
  "meta": { "cached": boolean, "tookMs": number, "source": string, "upstreamAllCount"?: number }
}
エラーレスポンス
{
  "error": { "code": string, "message": string, "details"?: unknown }
}

小説 (novels)

GET/v1/novels

小説家になろうの作品を検索します(novelapi のラッパー)。

paramtypedesc
wordstring検索キーワード
title / ex / keyword0|1word の検索対象(タイトル/あらすじ/キーワード)
genre / notgenrenumberジャンルコード(含む/除く)。 /v1/meta/genres 参照
biggenre / notbiggenrenumber大ジャンルコード
useridstring作者ID(カンマ区切りで複数指定可)
ncodestring作品コード(カンマ区切り、最大500件)
orderstring並び順(upstream 準拠、例: hyoka, weekly, new)
limnumber取得件数(1〜500、既定20)
stnumber取得開始位置(既定1)
ofstringフィールドコードをハイフン区切りで指定(例: t-w-s。省略時は全件。コード表は下部参照)
/v1/novels?word=異世界&genre=201&order=hyoka&lim=5 (クリックで実際のレスポンスを確認)
{
  "data": [
    { "ncode": "N1234AB", "title": "...", "genre": 201, "genre_label": "ハイファンタジー〔ファンタジー〕", ... }
  ],
  "meta": { "cached": false, "tookMs": 210, "source": "novelapi", "upstreamAllCount": 4231 }
}
GET/v1/novels/:ncode

単一作品の詳細を取得します。

paramtypedesc
ncodepath作品コード(例: n1234ab)
/v1/novels/n9669bk (クリックで実際のレスポンスを確認)
{ "data": { "ncode": "N9669BK", "title": "...", ... }, "meta": { "source": "novelapi", ... } }
GET/v1/novels/:ncode/ranking-history

指定作品が過去にランクインした履歴を取得します(rankin のラッパー)。

paramtypedesc
ncodepath作品コード
/v1/novels/n9669bk/ranking-history (クリックで実際のレスポンスを確認)
{ "data": [{ "rtype": "d", "rank": 3, "pt": 12345 }, ...], "meta": { "source": "rankin", ... } }

ランキング (rankings)

生のランキングAPIは {rank, pt, ncode} のみを返し作品情報を含みません。/hydrated は作品情報を自動で結合した拡張版です。

GET/v1/rankings/:type

生のランキングを取得します(rank のラッパー)。

paramtypedesc
typepathdaily | weekly | monthly | quarterly
datestring (YYYY-MM-DD)weekly は月曜、monthly/quarterly は月初のみ有効
/v1/rankings/daily?date=2025-01-01 (クリックで実際のレスポンスを確認)
{ "data": [{ "rank": 1, "pt": 9999, "ncode": "N1234AB" }, ...], "meta": { "source": "rank", ... } }
GET/v1/rankings/:type/hydrated

ランキングと作品情報(タイトル・あらすじ・ジャンル等)を1回の呼び出しで結合取得します。

paramtypedesc
type / date-上と同じ
ofstring結合する作品情報のフィールドコードをハイフン区切りで指定(例: t-w-g)
/v1/rankings/weekly/hydrated?date=2025-01-06&of=t-w-g (クリックで実際のレスポンスを確認)
{
  "data": [
    { "rank": 1, "pt": 9999, "ncode": "N1234AB", "title": "...", "writer": "...", "genre": 201, "genre_label": "..." }
  ],
  "meta": { "source": "hydrated", ... }
}

ユーザ (users)

GET/v1/users

作者を検索します(userapi のラッパー)。

paramtypedesc
wordstring検索キーワード
useridnumberユーザID(単一のみ指定可)
name1ststring苗字の頭文字(ひらがな1文字)
lim / st-/v1/novels と同様(of フィールド指定は未対応)
/v1/users?word=山田&lim=5 (クリックで実際のレスポンスを確認)
{ "data": [{ "userid": "123456", "name": "...", "novel_cnt": 12, ... }], "meta": { "source": "userapi", ... } }
GET/v1/users/:userid

単一ユーザの詳細を取得します。

paramtypedesc
useridpath数値のユーザID
/v1/users/123456 (クリックで実際のレスポンスを確認)
{ "data": { "userid": "123456", "name": "...", ... }, "meta": { "source": "userapi", ... } }

R18

ノクターン/ムーンライト/ミッドナイト等の成人向け作品。取得できるのはタイトル・あらすじ等のメタデータのみで本文は含まれません。

GET/v1/r18/novels

R18作品を検索します(novel18api のラッパー)。/v1/novels と同じパラメータに加え nocgenre が使えます。

paramtypedesc
nocgenrenumberR18ジャンルコード。/v1/meta/nocgenres 参照
/v1/r18/novels?nocgenre=1&lim=5 (クリックで実際のレスポンスを確認)
{ "data": [{ "ncode": "N1234AB", "nocgenre": 1, "nocgenre_label": "ノクターンノベルズ(男性向け)", ... }], "meta": { "source": "novel18api", ... } }
GET/v1/r18/novels/:ncode

R18作品の単一取得。

paramtypedesc
ncodepath作品コード
/v1/r18/novels/n1234ab (クリックで実際のレスポンスを確認)
{ "data": { "ncode": "N1234AB", ... }, "meta": { "source": "novel18api", ... } }

メタ情報 (meta)

上流APIを呼ばず、固定テーブルを返す軽量エンドポイント。

GET/v1/meta/genres

ジャンル / 大ジャンルのコード→ラベル対応表。

/v1/meta/genres (クリックで実際のレスポンスを確認)
{ "data": { "genres": [{ "code": 201, "label_ja": "ハイファンタジー〔ファンタジー〕", ... }], "biggenres": [...] } }
GET/v1/meta/nocgenres

R18ジャンルのコード→ラベル対応表。

/v1/meta/nocgenres (クリックで実際のレスポンスを確認)
{ "data": { "nocgenres": [{ "code": 1, "label_ja": "ノクターンノベルズ(男性向け)", ... }] } }

of フィールドコード表

of パラメータで指定できるコード一覧(/v1/novels/v1/r18/novels/v1/rankings/:type/hydrated 共通)。ハイフン区切りで複数指定します。

codefield
ttitle(作品名)
nncode(作品コード)
uuserid(作者ID)
wwriter(作者名)
sstory(あらすじ)
bgbiggenre(大ジャンル)
ggenre(ジャンル)
kkeyword(キーワード)
gfgeneral_firstup(初回掲載日)
glgeneral_lastup(最終掲載日)
ntnoveltype(連載/短編)
eend(完結状態)
gageneral_all_no(総エピソード数)
llength(文字数)
titime(読了時間・分)
iisstop(長期休載)
irisr15
iblisbl
iglisgl
izkiszankoku(残酷描写)
itsistensei(異世界転生)
itiistenni(異世界転移)
gpglobal_point(総合評価pt)
dpdaily_point
wpweekly_point
mpmonthly_point
qpquarter_point
ypyearly_point
ffav_novel_cnt(ブックマーク数)
impimpression_cnt(感想数)
rreview_cnt(レビュー数)
aall_point(評価pt)
ahall_hyoka_cnt(評価者数)
sasasie_cnt(挿絵数)
kakaiwaritu(会話率)
nunovelupdated_at
uaupdated_at