API で GTO ノードの EV をクエリするには?
リアルタイムのソルバーのスポットが完了し、そのツリーをクエリできるようになったら、1つのノードのEV配列をリクエストします。必要に応じて1つのハンドに絞り込めます。
/v1/gto/solver の solve ハンドルと /v1/gto/solver/tree の node_id を指定して POST /v1/gto/evs を呼び出します。レスポンスの actions 配列が、evs 内の各ハンドの EV 配列の順序を定義します。概要
| エンドポイント | POST /v1/gto/evs |
|---|---|
| 前提条件 | 完了した解析とクエリ可能なソルバーツリー。まず /v1/gto/solver/tree をポーリングしてください。 |
| 必須入力 | solve と node_id。hand を使うと、任意で 1 つのハンドに絞り込めます。 |
| レスポンス | actions とハンドごとの evs 配列。各EV配列は、actions とインデックスで対応します。 |
| クォータ | 公開されている OpenAPI 説明では、元となる /v1/gto/solver 解析後、この読み取りは無料とされています。 |
| アクセス | 完了した解析と同じ認証済み API 利用範囲およびソルバーハンドルの所有権ルールを使用します。 |
この機能を使う場面
ソルバー結果が利用可能になった後、オフラインのトレーニング、コーチング、ハンドレビュー、学習、または研究ツールでノード EV を使用します。別の解析をスケジュールせずに、説明 UI で完了した 1 つのノードにおける利用可能なアクションを比較する必要がある場合に役立ちます。
これを使用しない場合
ソルバーツリーがクエリ可能になる前にこのエンドポイントを呼び出さないでください。また、EV 配列をライブアクションの推奨、パフォーマンス保証、または公開レスポンス契約を超える EV の定義として扱わないでください。
最小限の API リクエスト
伏せ字のハンドルを、自身のソルバーリクエストで返されたハンドルに置き換えます。対応するソルバーツリーのノード識別子を使用してください。任意の hand フィールドは、レスポンスをそのハンドに限定します。
curl -s https://pokerai.bet/v1/gto/evs \
-H "Authorization: Bearer $POKERAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"solve":"eyJ0Ijoic2x2X3h4eXoi...(handle from /v1/gto/solver)","node_id":"root","hand":"2c2d"}'
レスポンスの解釈
{"node_id": "root", "task_id": "slv_srp_…", "player": 1, "round": "FLOP", "actions": ["CHECK", "BET 4.000000", "BET 97.000000"], "evs": {"2c2d": [-0.826359, -0.792223, -1.643411], "2c2h": […], …}}
公開ドキュメントのコード内のレスポンス形式では、actions は [CHECK, BET 4.000000, BET 97.000000] です。evs["2c2d"] では、最初の数値は CHECK、2番目は BET 4.000000、3番目は BET 97.000000 に対応します。
両方の配列を説明UIでまとめて表示してください。APIコントラクトでは、これらの値はハンドごと・アクションごとのbb単位のEVとして記述されており、アクションを選択したり、結果を保証したりするものではありません。
クォータと準備状況
このエンドポイントが無料として記載されているのは、起点となる /v1/gto/solver リクエストが有料の解析だからです。解析が収束していない場合、200 レスポンスは { spot_status: computing } になることがあります。EV データの準備ができていると見なさず、クエリ可能になるまでソルバーツリーのポーリングを続けてください。
エラー
| HTTP | 意味 | 対応方法 |
|---|---|---|
| 400 | 無効なリクエストデータ。 | solve、node_id、および省略可能な hand が公開スキーマに合っているか確認してください。 |
| 401 | 認証情報がないか無効です。 | 有効な API キーを送信し、ブラウザコードやログに含めないでください。 |
| 403 | 解析ハンドルが無効であるか、あなたのものではありません。 | ご自身のソルバーリクエストで認証済みのハンドルを使用してください。 |
| 410 | 解析結果の有効期限が切れました(TTL)。 | /v1/gto/solver を使用してスポットを再度スケジュールしてください。 |
トレーニングとレビュー専用
関連リソース
- 開発者向けドキュメント — 認証、ソルバーのライフサイクル、クォータ、SDK、APIの概念
- インタラクティブ API リファレンス — 現在のノード EV 操作スキーマ
- OpenAPI仕様 — 機械可読な英語のコントラクト
- Python SDK — 公式の Python パッケージ
- TypeScript / JavaScript SDK — 公式 npm クライアント
- 公式 MCP サーバー — エージェントワークフロー向けに文書化されたMCPパッケージ
- ポーカーハンドレビュー API ガイド — ソルバー解析をセッション後のワークフローに組み込む
- llms.txt — Pokerai API の簡潔なLLMエントリポイント