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 のラッパー)。
| param | type | desc |
|---|---|---|
word | string | 検索キーワード |
title / ex / keyword | 0|1 | word の検索対象(タイトル/あらすじ/キーワード) |
genre / notgenre | number | ジャンルコード(含む/除く)。 /v1/meta/genres 参照 |
biggenre / notbiggenre | number | 大ジャンルコード |
userid | string | 作者ID(カンマ区切りで複数指定可) |
ncode | string | 作品コード(カンマ区切り、最大500件) |
order | string | 並び順(upstream 準拠、例: hyoka, weekly, new) |
lim | number | 取得件数(1〜500、既定20) |
st | number | 取得開始位置(既定1) |
of | string | フィールドコードをハイフン区切りで指定(例: 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単一作品の詳細を取得します。
| param | type | desc |
|---|---|---|
ncode | path | 作品コード(例: n1234ab) |
/v1/novels/n9669bk (クリックで実際のレスポンスを確認)
{ "data": { "ncode": "N9669BK", "title": "...", ... }, "meta": { "source": "novelapi", ... } }GET
/v1/novels/:ncode/ranking-history指定作品が過去にランクインした履歴を取得します(rankin のラッパー)。
| param | type | desc |
|---|---|---|
ncode | path | 作品コード |
/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 のラッパー)。
| param | type | desc |
|---|---|---|
type | path | daily | weekly | monthly | quarterly |
date | string (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回の呼び出しで結合取得します。
| param | type | desc |
|---|---|---|
type / date | - | 上と同じ |
of | string | 結合する作品情報のフィールドコードをハイフン区切りで指定(例: 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 のラッパー)。
| param | type | desc |
|---|---|---|
word | string | 検索キーワード |
userid | number | ユーザID(単一のみ指定可) |
name1st | string | 苗字の頭文字(ひらがな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単一ユーザの詳細を取得します。
| param | type | desc |
|---|---|---|
userid | path | 数値のユーザID |
/v1/users/123456 (クリックで実際のレスポンスを確認)
{ "data": { "userid": "123456", "name": "...", ... }, "meta": { "source": "userapi", ... } }R18
ノクターン/ムーンライト/ミッドナイト等の成人向け作品。取得できるのはタイトル・あらすじ等のメタデータのみで本文は含まれません。
GET
/v1/r18/novelsR18作品を検索します(novel18api のラッパー)。/v1/novels と同じパラメータに加え nocgenre が使えます。
| param | type | desc |
|---|---|---|
nocgenre | number | R18ジャンルコード。/v1/meta/nocgenres 参照 |
/v1/r18/novels?nocgenre=1&lim=5 (クリックで実際のレスポンスを確認)
{ "data": [{ "ncode": "N1234AB", "nocgenre": 1, "nocgenre_label": "ノクターンノベルズ(男性向け)", ... }], "meta": { "source": "novel18api", ... } }GET
/v1/r18/novels/:ncodeR18作品の単一取得。
| param | type | desc |
|---|---|---|
ncode | path | 作品コード |
/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/nocgenresR18ジャンルのコード→ラベル対応表。
/v1/meta/nocgenres (クリックで実際のレスポンスを確認)
{ "data": { "nocgenres": [{ "code": 1, "label_ja": "ノクターンノベルズ(男性向け)", ... }] } }of フィールドコード表
of パラメータで指定できるコード一覧(/v1/novels、/v1/r18/novels、/v1/rankings/:type/hydrated 共通)。ハイフン区切りで複数指定します。
| code | field |
|---|---|
t | title(作品名) |
n | ncode(作品コード) |
u | userid(作者ID) |
w | writer(作者名) |
s | story(あらすじ) |
bg | biggenre(大ジャンル) |
g | genre(ジャンル) |
k | keyword(キーワード) |
gf | general_firstup(初回掲載日) |
gl | general_lastup(最終掲載日) |
nt | noveltype(連載/短編) |
e | end(完結状態) |
ga | general_all_no(総エピソード数) |
l | length(文字数) |
ti | time(読了時間・分) |
i | isstop(長期休載) |
ir | isr15 |
ibl | isbl |
igl | isgl |
izk | iszankoku(残酷描写) |
its | istensei(異世界転生) |
iti | istenni(異世界転移) |
gp | global_point(総合評価pt) |
dp | daily_point |
wp | weekly_point |
mp | monthly_point |
qp | quarter_point |
yp | yearly_point |
f | fav_novel_cnt(ブックマーク数) |
imp | impression_cnt(感想数) |
r | review_cnt(レビュー数) |
a | all_point(評価pt) |
ah | all_hyoka_cnt(評価者数) |
sa | sasie_cnt(挿絵数) |
ka | kaiwaritu(会話率) |
nu | novelupdated_at |
ua | updated_at |