今すぐ始める

AI レビュー API

API キーを使い、送信したデータを個人またはワークスペースのクレジットでレビューします。


アプリケーションから送信したデータを AI でレビューできます。Web 版の 設定 → AI で発行する専用の API キーを使います。

POST https://api.epismo.ai/v1/reviews

案件やプレイブックを作成せずに、手元のデータをレビューできます。レビューに必要な情報は context に含めてください。ウェブ検索は行いません。

キーの発行と管理

Web 版でワークスペースまたは個人アカウントを選び、設定 → AI → API キー を開きます。名前を入力し、有効期限を 7 日・30 日・90 日・1 年・無期限から選びます。シークレットは発行時に一度だけ表示されるので、その場でコピーしてください。

  • ワークスペースで発行したキーはワークスペースが所有し、共通クレジットを消費します。管理できるのはオーナーと管理者です。ワークスペースのサブスクリプションが有効またはトライアル中である必要があります。
  • 個人で発行したキーは自分が所有し、個人のクレジットを消費します。
  • 所有元の Epismo AI を許可 がオンである必要があります。

一覧には作成者・作成日時・有効期限・おおよその最終利用時刻が表示されます。キーを失効すると直ちに利用できなくなります。失効済みのキーは完全に削除できますが、記録済みの利用量は削除されません。シークレットを紛失した場合は、キーを失効して新しく発行してください。キーの管理は Web の設定画面で行います。

キーごとの利用量は クレジット管理 で確認できます。キーを削除しても利用履歴は残りますが、「不明」にまとめて表示します。

リクエスト

次のヘッダーを送信します。

ヘッダー 必須 値
Authorization はい Bearer <review-api-key>
Content-Type はい application/json
Idempotency-Key いいえ リクエストを識別する UUID。再試行する場合は指定を推奨。

発行したキーに紐づく個人またはワークスペースのクレジットを使います。本文で課金先を指定する必要はありません。

JSON フィールド 必須 説明
context はい レビュー対象の情報を含む JSON オブジェクト。シリアライズ後の UTF-8 で最大 500,000 バイト。
instructions いいえ 追加のレビュー指示。UTF-8 で最大 32,000 バイト。
output_schema いいえ オブジェクトを表す JSON Schema。シリアライズ後の UTF-8 で最大 32,000 バイト。外部スキーマ参照は使用できません。省略時は content 文字列を持つオブジェクトを返します。指定時は Epismo 内部のヘルス評価のように、診断項目や要約・アクションなどを厳密なスキーマに従って出力できます。
model いいえ 対応するファミリー名(claude/sonnet、claude/opus、claude/haiku、gemini/flash、gemini/argon)。@version でバージョンを固定できます(例:claude/sonnet@5.5)。対応するプロバイダーのモデル ID も指定可能です。省略時は既定モデルを使います。未対応のモデル・バージョンは拒否します。

リクエスト本文全体の上限は 600,000 バイトです。未知のフィールドは拒否します。任意項目は null を送らず、省略してください。

最小の例

EPISMO_API_KEY にシークレットを設定します。最小のリクエストでは、本文に context だけを指定します。

curl https://api.epismo.ai/v1/reviews \
  --header "Authorization: Bearer $EPISMO_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"context":{"messages":[
    {"role":"user","content":"2 + 2 は?"},
    {"role":"assistant","content":"5 です。"}
  ]}}'

構造化出力とヘルス評価の例

Epismo 内部の案件レポートと同様に、instructions と output_schema を組み合わせることで、自由形式のテキストではなく、健全性(health)の判定値や根拠に基づく要約、リスク一覧などを厳密な JSON オブジェクトとして出力できます。

curl https://api.epismo.ai/v1/reviews \
  --header "Authorization: Bearer $EPISMO_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "instructions": "提供された記録と進捗状況から作業の健全性を healthy, at_risk, critical, unknown のいずれかで客観的に診断してください。裏付けのない判断は避け、根拠が不足している場合は unknown を選んでください。",
    "context": {
      "milestone": "v2.0 リリース",
      "records": [
        {"timestamp": "2026-10-25", "content": "主要 API の実装完了、ステージング展開済。"},
        {"timestamp": "2026-10-26", "content": "負荷テストで外部決済 Gateway のタイムアウトが 15% 発生。原因調査中。"}
      ]
    },
    "output_schema": {
      "type": "object",
      "properties": {
        "health": {
          "type": "string",
          "enum": ["healthy", "at_risk", "critical", "unknown"],
          "description": "根拠に基づく健全性の診断"
        },
        "summary": {
          "type": "string",
          "description": "現状と診断理由の要約(280文字以内)"
        },
        "risks": {
          "type": "array",
          "items": { "type": "string" },
          "description": "進行を脅かす具体的な懸念事項"
        },
        "next_actions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": { "type": "string" },
              "reason": { "type": "string" }
            },
            "required": ["title", "reason"]
          },
          "description": "推奨される次の対応"
        }
      },
      "required": ["health", "summary", "risks", "next_actions"]
    }
  }'

レスポンスの output は、指定したスキーマに厳密に従います。モデルがスキーマ外のキーを出力することはありません。

{
	"output": {
		"health": "at_risk",
		"summary": "主要機能の実装は完了していますが、負荷テストで決済 Gateway のタイムアウトが頻発しており、期日通りのリリースにリスクがあります。",
		"risks": ["外部決済 Gateway のタイムアウトによる決済失敗"],
		"next_actions": [
			{
				"title": "決済 Gateway タイムアウトの原因調査とリトライ改善",
				"reason": "負荷時のタイムアウト原因を特定し、コネクションプールやリトライ方針を見直すため"
			}
		]
	},
	"credits_consumed": 5
}

スキーマで enum や required を指定することで、結果をそのままプログラムで型安全に扱い、health が critical や at_risk の場合にアラートを通知したり、社内ダッシュボードやワークフローに連携したりできます。

レスポンス

生成が完了すると、HTTP 200 で結果を返します。

{
	"output": {
		"content": "AI の回答に誤りがあります。2 + 2 は 5 ではなく 4 です。"
	},
	"credits_consumed": 3
}

これはレスポンスの例です。内容と消費クレジットは実行ごとに変わります。output_schema を指定すると、output はその形式に従います。消費クレジットはモデルと実際のトークン使用量で決まります。結果はレポート履歴には保存されないため、必要に応じてアプリケーション側で保存してください。

再試行とエラー

Idempotency-Key は任意です。省略時は同じ入力でも毎回新しいレビューとして実行し、再度クレジットを消費する可能性があります。空または不正な値を指定すると 400 を返します。

再試行を行うアプリケーションでは、最初の送信前に UUID を生成し、ヘッダーに指定してください。

IDEMPOTENCY_KEY=$(uuidgen)
# 同じ変数を再試行でも使い、curl に次のヘッダーを追加します:
# --header "Idempotency-Key: $IDEMPOTENCY_KEY"

再試行では、同じ API キー・Idempotency-Key・入力を使ってください。完了済みのリクエストには保存済みの結果を返し、生成や課金を繰り返しません。同じ UUID で入力を変更すると競合になります。同じキーの処理が実行中の場合も競合になることがあります。少し待ってから同じリクエストを再試行してください。新しいレビューには新しい UUID を使います。

エラーは次の形式です。

{
	"error": {
		"message": "A review API key is required as a Bearer token."
	}
}
ステータス 意味
400 入力・スキーマ・モデル・冪等性キーが不正。
401 API キーが未指定・不正・期限切れ・失効済み。
402 クレジット不足。
403 所有元の設定や利用条件によりレビューを実行できない。
409 入力の競合、または同じ冪等性キーの処理が実行中。
413 リクエスト本文がサイズ上限を超えている。
415 Content-Type が application/json ではない。
500、503 生成または必要なサービスを利用できない。
504 生成がタイムアウトした。キーを指定していた場合は同じキーと入力で再試行する。

一時的なエラーでは、上限を設けて待機時間を延ばしながら再試行してください。通信エラーなどで結果が不明な場合も、指定済みの UUID を使うことで完了済みリクエストの重複実行を防げます。キーを指定していなかった場合は、再試行で再度生成・課金される可能性があります。