FiveCh Bot
API仕様
FiveCh Bot API
APIキー不要。親セッションIDをヘッダーで指定し、main / sub が影響するAPIでは各リクエストの role で指定します。
Base URL: https://ai.vip-server.net
共通ヘッダー
Headers
X-Session-Id: {parentSessionId}
Content-Type: application/json
セッションIDは親セッションIDです。1つの親セッションの下に main と sub の子セッションがあります。
X-Session-Id対象の親セッションID。既存セッションを操作するAPIでは必須。Content-TypeJSONボディを送るPOSTではapplication/json。rolemainまたはsub。main/subが影響するAPIではJSONボディに必須。
全API一覧
GET/api/state現在の親セッション状態、表示中の子セッション状態、投稿設定、端末設定。POST/api/state/postingrole別の投稿User-Agent/Cookie設定。POST/api/state/bridge-devicesmain/sub端末IDの全体設定。GET/api/logsUI/appログ取得。POST/api/logsUI/appログ追加。POST/api/chbot/iprole別GetIP。POST/api/chbot/change_iprole別ChangeIP。GET/api/admin/cost今月コスト取得。GET/api/admin/creditGmailの最新チャージ通知を基準にした残量推定。POST/api/session/new親セッション作成。GET/api/sessions親セッション一覧。DELETE/api/sessions/{sid}親セッション削除。GET/api/debug/id-sourceID検出デバッグ。POST/api/state/guideローカルガイド設定。/api/state/guide/localと同じ。POST/api/state/guide/localrole別ローカルガイド設定。POST/api/state/guide/global返信モード別グローバルガイド設定。POST/api/state/fixedreply全セッション共有の固定文言設定。POST/api/state/confirm廃止済み。常にOFF固定。POST/api/state/hideprompt廃止済み。常にOFF固定。POST/api/state/reasoningeffortrole別reasoning effort設定。POST/api/state/replymoderole別リプライモード設定。POST/api/state/lineWeb UI表示中の子セッション切替。POST/api/state/autochgiprole別、投稿ごとChangeIP設定。POST/api/state/scanignoreothersrole別、スキャン時の他者アンカー無視設定。POST/api/state/randomnamerole別ランダム名前ON/OFF。POST/api/state/randomname/poolrole別ランダム名前プール設定。POST/api/state/randomname/moderole別ランダム名前モード設定。POST/api/state/randomname/formatrole別英数字名前フォーマット設定。POST/api/state/randomname/jpformatrole別日本語名前フォーマット設定。POST/api/targets/listrole別相手ID一覧。POST/api/targets/addrole別相手ID追加。POST/api/targets/delrole別相手ID削除。GET/api/myidmain/sub両方のMyID取得。POST/api/myid/setrole別MyID設定。POST/api/myid/clearrole別MyIDクリア。POST/api/generaterole別生成。POST/api/postrole別投稿。POST/api/auto/scanrole別自動スキャン。POST/api/auto/queuerole別自動キュー取得。POST/api/auto/hostility-reasonsrole別敵意判定理由取得。POST/api/auto/clearrole別自動キュー/状態クリア。POST/api/auto/nextrole別次候補取得。POST/api/auto/actionrole別自動候補操作。POST/api/auto/watch/statusrole別監視状態取得。POST/api/auto/watch/startrole別監視開始。POST/api/auto/watch/stoprole別監視停止。
セッション
作成
POSTPOST /api/session/new
{
"threadUrl": "https://mi.5ch.net/test/read.cgi/news4vip/...",
"topVip": false,
"sid": "任意の親セッションID",
"lineRole": "main"
}
レスポンス
{
"ok": true,
"sessionId": "親セッションID",
"threadUrl": "...",
"threadTitle": "...",
"activeLineRole": "main"
}
状態取得
GETGET /api/state
X-Session-Id: {parentSessionId}
一覧
GETGET /api/sessions?running=0
パラメータ
threadUrl対象スレURL。通常は5chのread.cgi URL。topVip=trueの場合はTop VIPから解決。topViptrueなら現行Top VIPスレを使う。通常はfalse。sid任意の親セッションID。省略するとサーバーが自動生成。8から64文字の英数字、ハイフン、アンダースコア。lineRole作成直後に選択する回線。mainまたはsub。親セッション作成時点で両方の子セッションは作られる。running/api/sessionsの絞り込み。0またはfalseで全件、未指定は監視中のみ。
主なレスポンス項目
sessionId親セッションID。以後X-Session-Idに指定する。activeLineRoleWeb UIで表示中の子セッション。fixedReplyText固定文言モードで使う全セッション共有の投稿本文。未設定またはリセット時はなるほどな。main / sub/api/sessionsでは各子セッションのMyIDと監視状態を返す。
MyID
MyID取得
GET /api/myid
X-Session-Id: {parentSessionId}
レスポンス
{
"ok": true,
"sessionId": "親セッションID",
"threadUrl": "...",
"threadTitle": "...",
"activeLineRole": "main",
"ids": ["ID:xxx", "ID:yyy"],
"myIds": ["ID:xxx", "ID:yyy"],
"mainIds": ["ID:xxx"],
"subIds": ["ID:yyy"],
"main": {
"lineRole": "main",
"ids": ["ID:xxx"],
"myIds": ["ID:xxx"]
},
"sub": {
"lineRole": "sub",
"ids": ["ID:yyy"],
"myIds": ["ID:yyy"]
}
}
MyID設定
POSTPOST /api/myid/set
X-Session-Id: {parentSessionId}
{
"role": "main",
"id": "ID:abc ID:def"
}
MyIDクリア
POSTPOST /api/myid/clear
X-Session-Id: {parentSessionId}
{ "role": "main" }
パラメータ
role設定またはクリアする子セッション。mainまたはsub。idMyID文字列。ID:abcをスペース区切り、改行区切り、カンマ区切りで複数指定可能。X-Session-Id親セッションID。レスポンスには main/sub 両方のMyIDが含まれる。
主なレスポンス項目
ids / myIdsmainIds と subIds をまとめた全MyID一覧。mainIdsmain 子セッションのMyID一覧。subIdssub 子セッションのMyID一覧。main / sub各回線ごとのlineRole、ids、myIds。
相手ID
一覧
POSTPOST /api/targets/list
X-Session-Id: {parentSessionId}
{ "role": "main" }
追加
POSTPOST /api/targets/add
X-Session-Id: {parentSessionId}
{
"role": "main",
"id": "ID:target"
}
削除
POSTPOST /api/targets/del
X-Session-Id: {parentSessionId}
{
"role": "main",
"id": "ID:target"
}
パラメータ / レスポンス
role相手IDを登録または取得する子セッション。id相手の投稿ID。例:ID:target。targets現在登録されている相手ID一覧。
回線 / 投稿設定
投稿設定
POSTPOST /api/state/posting
X-Session-Id: {parentSessionId}
{
"role": "main",
"userAgent": "...",
"postCookie": "..."
}
端末ID設定
POSTPOST /api/state/bridge-devices
{
"mainDevice": "メイン端末ID",
"subDevice": "サブ端末ID"
}
パラメータ
rolemainまたはsub。投稿設定や自動処理の対象回線。userAgent5ch投稿時のUser-Agent。空文字なら未設定。postCookie5ch投稿時のCookie。例:MonaTicket=...。空文字なら未設定。mainDevicemain回線で使う端末ID。全親セッション共通設定。subDevicesub回線で使う端末ID。未設定時はmain側設定にフォールバック。
モード / ガイド / 名前設定
リプライモード
POSTPOST /api/state/replymode
X-Session-Id: {parentSessionId}
{
"role": "main",
"mode": "agitating"
}
Reasoning effort
POSTPOST /api/state/reasoningeffort
X-Session-Id: {parentSessionId}
{
"role": "main",
"effort": "medium"
}
ローカルガイド
POSTPOST /api/state/guide/local
X-Session-Id: {parentSessionId}
{
"role": "main",
"text": "追加指示",
"clear": false
}
グローバルガイド
POSTPOST /api/state/guide/global
X-Session-Id: {parentSessionId}
{
"text": "全セッション共通の追加指示",
"clear": false
}
固定文言
POSTPOST /api/state/fixedreply
{
"text": "固定文言モードで投稿する本文",
"clear": false
}
投稿ごとChangeIP
POSTPOST /api/state/autochgip
X-Session-Id: {parentSessionId}
{
"role": "main",
"value": true
}
他者アンカー無視
POSTPOST /api/state/scanignoreothers
X-Session-Id: {parentSessionId}
{
"role": "main",
"value": true
}
パラメータ
modeagitating,normal,fixedなど。固定文言モードはfixed。effortnone,minimal,low,medium,highなど。cleartrueでガイドまたはプールをクリア。/api/state/fixedreplyでは既定文言なるほどなに戻す。valueON/OFF系設定。trueまたはfalse。
ランダム名前ON/OFF
POSTPOST /api/state/randomname
X-Session-Id: {parentSessionId}
{
"role": "main",
"value": true
}
ランダム名前モード
POSTPOST /api/state/randomname/mode
X-Session-Id: {parentSessionId}
{
"role": "main",
"mode": "token"
}
英数字名前フォーマット
POSTPOST /api/state/randomname/format
X-Session-Id: {parentSessionId}
{
"role": "main",
"prefix": "",
"length": 8
}
日本語名前フォーマット
POSTPOST /api/state/randomname/jpformat
X-Session-Id: {parentSessionId}
{
"role": "main",
"prefix": "",
"minLen": 4,
"maxLen": 10,
"kanjiRatio": 0.7
}
名前プール
POSTPOST /api/state/randomname/pool
X-Session-Id: {parentSessionId}
{
"role": "main",
"text": "名前1\n名前2",
"clear": false
}
/api/state/confirm と /api/state/hideprompt は廃止済みで、呼んでもそれぞれOFF固定です。
ChBot / ログ / 管理 / デバッグ
GetIP
POSTPOST /api/chbot/ip
{ "role": "main" }
ChangeIP
POSTPOST /api/chbot/change_ip
X-Session-Id: {parentSessionId}
{ "role": "main" }
ログ取得
GETGET /api/logs?limit=200
X-Session-Id: {parentSessionId}
ログ追加
POSTPOST /api/logs
X-Session-Id: {parentSessionId}
{
"source": "client",
"message": "ログ本文"
}
コスト取得
GETGET /api/admin/cost
monthlyCost と creditEstimate を返します。
残量推定
GETGET /api/admin/credit
APIキー・セッションID不要。最新のOpenAIチャージメールで満額にリセットし、その時刻以降のCostsを差し引いた推定値です。
{
"ok": true,
"error": null,
"fullAmountUsd": 10,
"estimatedRemainingUsd": 9.835297,
"estimatedUsedSinceFundingUsd": 0.164703,
"fundedAtUtc": "2026-08-17T09:12:35+00:00",
"cardChargeAmountUsd": 11.00,
"updatedAtUtc": "2026-08-19T14:46:09.6998766+00:00",
"method": "gmail_funding_event_and_prorated_daily_costs"
}
estimatedRemainingUsd他アプリで残量として表示する推定USD額。estimatedUsedSinceFundingUsd最新チャージ後の推定累積使用額。fundedAtUtc残量を満額へリセットした最新チャージ通知時刻(UTC)。okfalseの場合はerrorを参照。
ID検出デバッグ
GETGET /api/debug/id-source?resNo=123
X-Session-Id: {parentSessionId}
セッション削除
DELETEDELETE /api/sessions/{sid}
生成 / 投稿
生成
POST /api/generate
X-Session-Id: {parentSessionId}
{
"role": "main",
"threadUrl": null,
"resNo": 123,
"extraGuidance": "",
"includePrompt": true,
"model": null,
"reasoningEffort": "medium"
}
生成レスポンス
{
"draft": "生成文",
"cbUrl": "...",
"promptSent": "実際に送ったプロンプト"
}
投稿
POST /api/post
X-Session-Id: {parentSessionId}
{
"role": "main",
"threadUrl": null,
"message": "投稿本文",
"resNo": 123
}
includePrompt は現在実装では常時 true 固定です。
生成パラメータ
role生成または投稿に使う子セッション。mainまたはsub。threadUrl対象スレURL。nullまたは省略でセッションに保存済みのスレを使う。resNo返信対象レス番号。1以上。extraGuidance追加指示。空文字可。セッションのガイドがある場合は自動で合成される。includePrompt現在は値に関係なくプロンプト返却ON。model生成モデルの一時上書き。nullならサーバー既定。reasoningEffortnone,minimal,low,medium,highなど。nullならセッション設定。
投稿パラメータ / レスポンス
message投稿本文。必須。resNo返信対象レス番号。投稿履歴や自動キュー除外に使う。draft生成された投稿案。promptSent生成時に実際に送ったプロンプト。statusCode投稿先から返ったHTTPステータス。posterIdPrefix投稿後に検出した自分のID。MyIDへ自動追加される。
自動処理
スキャン
POSTPOST /api/auto/scan
X-Session-Id: {parentSessionId}
{
"role": "main",
"fromResNo": null
}
キュー
POSTPOST /api/auto/queue
X-Session-Id: {parentSessionId}
{ "role": "main" }
次の候補
POSTPOST /api/auto/next
X-Session-Id: {parentSessionId}
{ "role": "main" }
候補に対する操作
POST /api/auto/action
X-Session-Id: {parentSessionId}
{
"sessionId": "autoNextResponse内のsessionId",
"action": "post",
"addText": null,
"role": "main"
}
action は post, skip, quit, regen, addregen を使います。
パラメータ
rolemainまたはsub。queryまたはJSONで指定。fromResNoスキャン開始レス番号。nullならセッション状態から自動決定。sessionId/api/auto/nextが返す自動候補ID。親セッションIDとは別。actionpost: 投稿、skip: スキップ、quit: キューに戻す、regen: 再生成、addregen: 追記して再生成。addTextaddregenで追加する指示文。それ以外ではnull可。
主なレスポンス項目
addedスキャンでキューに追加された件数。queueCount現在のキュー件数。hostilities敵意判定の結果一覧。レス番号、ID、スコア、理由を含む。draft自動候補の生成文。status自動操作結果。例:posted,skipped,regenerated。
監視
状態
POSTPOST /api/auto/watch/status
X-Session-Id: {parentSessionId}
{ "role": "main" }
開始
POST /api/auto/watch/start
X-Session-Id: {parentSessionId}
{
"role": "main",
"minScanIntervalSeconds": 30,
"maxScanIntervalSeconds": 60,
"autoPost": true,
"postDelaySeconds": 5
}
停止
POSTPOST /api/auto/watch/stop
X-Session-Id: {parentSessionId}
{ "role": "main" }
パラメータ / レスポンス
role監視対象回線。mainまたはsub。両方を並行起動できる。minScanIntervalSeconds最短スキャン間隔秒。maxScanIntervalSeconds最長スキャン間隔秒。min以上にする。autoPosttrueなら生成後に自動投稿まで行う。postDelaySeconds自動投稿前の待機秒数。running監視中かどうか。cycles監視ループ実行回数。lastNote直近の監視メモまたはエラー。