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.portraitportraitThumbnailは空文字になります。
  • 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取得成功
304ETagが一致し、内容に変更なし
400IDまたはパラメータが不正
404対象ドールが存在しない
429取得回数制限を超過
503設定または非公開データ領域を利用できない

トップレベルJSON

キー内容
webifVersionintegerWebIF応答形式。現在は1
idstringドールID
revisioninteger保存リビジョン。1以上
updatedAtstringISO 8601形式の最終更新日時
visibilitystringpublicまたはunlisted
characterobjectキャラクター本体

characterの構成

キー主な内容
schemaVersionintegerNCRDAキャラクター形式。現在は6
metaobjectvisibility、取り込み元等
profileobject名前、プレイヤー名、享年、暗示、ポジション、クラス、たからもの、初期配置、タグ、メモ、立ち絵
reinforcementobject武装・変異・改造の合計、作成ボーナス、追加、補正、自由クラス値
resourcesobject繰越・初期寵愛、残寵愛点
battleobject基礎行動値、補正、最大行動値
memoriesarray記憶のカケラ。各行はidtitlenumbercontent
karmaarrayカルマ。各行はidtextachieved
fettersarray未練。対象、種類、発狂効果、狂気点、効果詳細、備考
maneuvers.skillsarrayスキルのマニューバ行
maneuvers.partsobjectheadarmstorsolegsごとのパーツ行
sessionsarray寵愛点履歴。個人、全体、取得合計、消費、メモ

配列行の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は予告のうえ変更・停止する場合があります。