READ-ONLY JSON WEBIF / VERSION 1
JSON WebIF仕様
NCRDAに保存された1件のドールをJSONで取得する、読み取り専用インターフェースです。レコードの作成・更新・削除には使用できません。過剰な自動取得や短時間の連続アクセスは禁止します。
エンドポイント
GET webif.php?id=<ドールID>
GET webif.php?id=<ドールID>&includeImage=1
idは必須です。旧16桁または現行32桁の16進数IDを指定します。- 立ち絵は既定で除外され、
profile.portraitとportraitThumbnailは空文字になります。 includeImage=1を指定すると、公開設定で許可された立ち絵をdata URIで含めます。応答が大きくなるため必要な場合だけ使用してください。- 全体公開データにはCORSを許可します。URL限定公開データはCORSを許可せず、URLを知る利用者による直接取得を前提とします。
負荷・セキュリティ対策
- IP単位の取得回数制限を行い、超過時はHTTP 429と
Retry-Afterを返します。 - 画像を含む取得には、通常取得とは別の低い回数制限を適用します。
- IDを検証し、対象の1ファイルだけを読み込みます。公開一覧の全JSON走査は行いません。
- ETagに対応し、内容が変わっていない場合は
If-None-Matchに対してHTTP 304を返します。 - 編集トークン、パスワードハッシュ、公開設定、同意情報、管理情報は返しません。
- JSONPや任意コールバック、任意ファイルパス、他ホストへの代理アクセスには対応しません。
HTTP応答
| 状態 | 意味 |
|---|---|
| 200 | 取得成功 |
| 304 | ETagが一致し、内容に変更なし |
| 400 | IDまたはパラメータが不正 |
| 404 | 対象ドールが存在しない |
| 429 | 取得回数制限を超過 |
| 503 | 設定または非公開データ領域を利用できない |
トップレベルJSON
| キー | 型 | 内容 |
|---|---|---|
webifVersion | integer | WebIF応答形式。現在は1 |
id | string | ドールID |
revision | integer | 保存リビジョン。1以上 |
updatedAt | string | ISO 8601形式の最終更新日時 |
visibility | string | publicまたはunlisted |
character | object | キャラクター本体 |
characterの構成
| キー | 型 | 主な内容 |
|---|---|---|
schemaVersion | integer | NCRDAキャラクター形式。現在は6 |
meta | object | visibility、取り込み元等 |
profile | object | 名前、プレイヤー名、享年、暗示、ポジション、クラス、たからもの、初期配置、タグ、メモ、立ち絵 |
reinforcement | object | 武装・変異・改造の合計、作成ボーナス、追加、補正、自由クラス値 |
resources | object | 繰越・初期寵愛、残寵愛点 |
battle | object | 基礎行動値、補正、最大行動値 |
memories | array | 記憶のカケラ。各行はid、title、number、content |
karma | array | カルマ。各行はid、text、achieved |
fetters | array | 未練。対象、種類、発狂効果、狂気点、効果詳細、備考 |
maneuvers.skills | array | スキルのマニューバ行 |
maneuvers.parts | object | head、arms、torso、legsごとのパーツ行 |
sessions | array | 寵愛点履歴。個人、全体、取得合計、消費、メモ |
配列行のidは行識別子です。表示名ではなく、更新や照合に使用します。将来の拡張に備え、利用側は未知のキーを無視してください。
応答例
{
"webifVersion": 1,
"id": "0123456789abcdef0123456789abcdef",
"revision": 3,
"updatedAt": "2026-07-30T00:00:00+00:00",
"visibility": "public",
"character": {
"schemaVersion": 6,
"meta": { "visibility": "public" },
"profile": {
"name": "サンプルドール",
"playerName": "",
"portrait": "",
"portraitThumbnail": ""
},
"reinforcement": {},
"resources": {},
"memories": [],
"karma": [],
"fetters": [],
"maneuvers": {
"skills": [],
"parts": { "head": [], "arms": [], "torso": [], "legs": [] }
},
"battle": {},
"sessions": []
}
}
利用上の注意
必要な間隔を空け、ETagを利用してください。公開データであっても、取得したプレイヤー名、立ち絵、メモ等を目的外に再公開しないでください。本WebIFは予告のうえ変更・停止する場合があります。