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 の子セッションがあります。

全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別監視停止。

セッション

作成

POST
POST /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"
}

状態取得

GET
GET /api/state
X-Session-Id: {parentSessionId}

一覧

GET
GET /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設定

POST
POST /api/myid/set
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "id": "ID:abc ID:def"
}

MyIDクリア

POST
POST /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各回線ごとの lineRoleidsmyIds

相手ID

一覧

POST
POST /api/targets/list
X-Session-Id: {parentSessionId}

{ "role": "main" }

追加

POST
POST /api/targets/add
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "id": "ID:target"
}

削除

POST
POST /api/targets/del
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "id": "ID:target"
}

パラメータ / レスポンス

  • role相手IDを登録または取得する子セッション。
  • id相手の投稿ID。例: ID:target
  • targets現在登録されている相手ID一覧。

回線 / 投稿設定

投稿設定

POST
POST /api/state/posting
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "userAgent": "...",
  "postCookie": "..."
}

端末ID設定

POST
POST /api/state/bridge-devices

{
  "mainDevice": "メイン端末ID",
  "subDevice": "サブ端末ID"
}

パラメータ

  • rolemain または sub。投稿設定や自動処理の対象回線。
  • userAgent5ch投稿時のUser-Agent。空文字なら未設定。
  • postCookie5ch投稿時のCookie。例: MonaTicket=...。空文字なら未設定。
  • mainDevicemain回線で使う端末ID。全親セッション共通設定。
  • subDevicesub回線で使う端末ID。未設定時はmain側設定にフォールバック。

モード / ガイド / 名前設定

リプライモード

POST
POST /api/state/replymode
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "mode": "agitating"
}

Reasoning effort

POST
POST /api/state/reasoningeffort
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "effort": "medium"
}

ローカルガイド

POST
POST /api/state/guide/local
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "text": "追加指示",
  "clear": false
}

グローバルガイド

POST
POST /api/state/guide/global
X-Session-Id: {parentSessionId}

{
  "text": "全セッション共通の追加指示",
  "clear": false
}

固定文言

POST
POST /api/state/fixedreply

{
  "text": "固定文言モードで投稿する本文",
  "clear": false
}

投稿ごとChangeIP

POST
POST /api/state/autochgip
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "value": true
}

他者アンカー無視

POST
POST /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

POST
POST /api/state/randomname
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "value": true
}

ランダム名前モード

POST
POST /api/state/randomname/mode
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "mode": "token"
}

英数字名前フォーマット

POST
POST /api/state/randomname/format
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "prefix": "",
  "length": 8
}

日本語名前フォーマット

POST
POST /api/state/randomname/jpformat
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "prefix": "",
  "minLen": 4,
  "maxLen": 10,
  "kanjiRatio": 0.7
}

名前プール

POST
POST /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

POST
POST /api/chbot/ip

{ "role": "main" }

ChangeIP

POST
POST /api/chbot/change_ip
X-Session-Id: {parentSessionId}

{ "role": "main" }

ログ取得

GET
GET /api/logs?limit=200
X-Session-Id: {parentSessionId}

ログ追加

POST
POST /api/logs
X-Session-Id: {parentSessionId}

{
  "source": "client",
  "message": "ログ本文"
}

コスト取得

GET
GET /api/admin/cost

monthlyCostcreditEstimate を返します。

残量推定

GET
GET /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検出デバッグ

GET
GET /api/debug/id-source?resNo=123
X-Session-Id: {parentSessionId}

セッション削除

DELETE
DELETE /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へ自動追加される。

自動処理

スキャン

POST
POST /api/auto/scan
X-Session-Id: {parentSessionId}

{
  "role": "main",
  "fromResNo": null
}

キュー

POST
POST /api/auto/queue
X-Session-Id: {parentSessionId}

{ "role": "main" }

次の候補

POST
POST /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"
}

actionpost, 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

監視

状態

POST
POST /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
}

停止

POST
POST /api/auto/watch/stop
X-Session-Id: {parentSessionId}

{ "role": "main" }

パラメータ / レスポンス

  • role監視対象回線。main または sub。両方を並行起動できる。
  • minScanIntervalSeconds最短スキャン間隔秒。
  • maxScanIntervalSeconds最長スキャン間隔秒。min以上にする。
  • autoPosttrue なら生成後に自動投稿まで行う。
  • postDelaySeconds自動投稿前の待機秒数。
  • running監視中かどうか。
  • cycles監視ループ実行回数。
  • lastNote直近の監視メモまたはエラー。