概要
Jinba ToolboxはHono.js上に構築されたREST APIを公開しています。組織、ToolSet、Tool、Version、Run、Webhook、APIキーなど、すべてのリソースは/v1 プレフィックス配下の標準的なHTTPエンドポイントからアクセスできます。
ベースURL:
認証
すべてのAPIリクエスト(Exploreルートを除く)は、Bearer トークンによる認証が必要です。APIキーは組織にスコープされ、Memberレベルの権限で動作し、jtb_ プレフィックスの命名規則に従います。Webコンソールは代わりにJinbaAuthのセッショントークンで認証します。
Authorization ヘッダーにキーを含めてください:
一部のエンドポイントはAPIキーではなくサインイン済みユーザーを必要とし、キーで呼び出すと
401 を返します:GET /v1/orgs、GET /v1/orgs/:orgId、GET /v1/orgs/:orgId/members、.../test エンドポイント、APIキーの作成・表示・削除。Versionの公開をAPIキーで呼び出すと 400(“User context required”)で失敗します。1
APIキーを作成する
組織の設定画面に移動し、新しいAPIキーを作成します。
production や ci-cd など、わかりやすい名前を付けてください。2
キーを安全に保存する
作成直後にキーをコピーしてください。再度表示されることはありません。環境変数やシークレットマネージャーに保存してください。
3
リクエストにキーを含める
すべてのAPIリクエストで、キーをBearerトークンとして渡してください。
エンドポイントリファレンス
組織ルート
これらのエンドポイントは組織メンバーシップが必要です。認証されたAPIキーは対象の組織に属している必要があります。:orgId には組織ID(またはスラッグ)を指定できます。
組織の作成・更新・削除はJinbaAuthで行います。これらのパスへの
POST、PATCH、DELETE は 403 を返します(POST をAPIキーで呼び出した場合は 401)。
ToolSetルート
Toolルート
inputSchema と outputSchema はリクエストフィールドではありません。code が作成・更新されるたびに、APIはコードの input / output 定義から両方のスキーマを抽出し、抽出できない場合はリクエストを拒否します(400)。
実行ルート
Versionルート
実行履歴ルート
その他の組織ルート
パブリックルート
パブリックルートにより、外部の利用者は組織メンバーシップのコンテキストなしに、APIキーを使用してToolを実行できます。:orgId にはプロバイダー組織の正規のIDを指定する必要があります(スラッグは使用できません)。公開ToolSetは有効な任意のAPIキーで呼び出せます。非公開ToolSetはその組織自身のキーでのみアクセスできます。クレジットは呼び出し元の組織に課金されます。
Exploreルート
Exploreルートは認証不要で、公開されたToolSetの閲覧が可能です。リクエストとレスポンスの例
Toolの実行
リクエスト:200。success を確認してください):
success は false になり、output の代わりに error({ name, message, traceback? })が設定されます。
パブリックエンドポイント経由の実行
パブリックエンドポイントのレスポンスは同じ形式ですが、logs は含まれません。
ToolSetの作成
visibility は private または public です。resources.timeout はミリ秒単位(最大 3600000、省略時のデフォルトは15分)です。
Versionの公開
"setAsPublished": false を渡すか別の environmentSlug を指定しない限り、新しいVersionは default 環境のアクティブVersionになります。公開にはサインイン済みセッションが必要です。
エラーハンドリング
APIは RFC 9457 Problem Details 形式でエラーを返します:一般的なステータスコード
ベストプラクティス
- APIキーを環境変数に保存する — ソースコードにハードコードしたり、バージョン管理にコミットしたりしないでください。
- 指数バックオフによるリトライロジックを実装する — 一時的な障害に対応してください。
- パブリックエンドポイントを使用する(
/v1/public/...) — Toolの実行のみが必要な外部システムを統合する場合に使用してください。 - 特定のVersionを指定する — 再現性が重要な場合は、Runリクエストボディでバージョンを指定してください。