NezhaGate
POST https://nezhagate.com/v1/chat/completions

Google Gemini 3.1 Pro による OpenAI 互換のチャット補完です。ストリーミングと長いコンテキストに対応します。model に gemini-3.1-pro を指定してください。既定は low 等級で、reasoning_effort=high を指定すると high 等級になります。このモデルは推論の要約も返します。非ストリーミングでは choices[].message.reasoning_content、ストリーミングでは choices[].delta.reasoning_content に入ります。答え自体は常に content にあり、推論と混ざることはないので、content だけを読むクライアントは変更不要です。課金について:思考トークンは出力単価で課金され、usage.completion_tokens に含まれます。そのうち何トークンが推論だったかは usage.completion_tokens_details.reasoning_tokens で分かります。コンテンツブロックについて:Google はモデルを動かす前にプロンプトを審査します。ブロックされたプロンプトは出力を生まず、課金もされません。ゲートウェイは自動的にプロンプトを整形し直して 1 度だけ再試行し、それでも拒否された場合にのみエラーを返します。繰り返しブロックされる場合は、system メッセージを最初の user メッセージにまとめてみてください。

📥 コンテキスト長(最大入力):約 1,000,000 トークン(100 万トークン級の長いコンテキスト)。

Playground で試す →

認証

Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

コンソールで API Key を作成すると利用を開始できます。

リクエストボディ

パラメータ種別必須説明
model string はい モデル ID。ここでは gemini-3.1-pro です。
messages array はい メッセージの配列。各要素は role(system/user/assistant)と content を持ちます。content は文字列のほか、画像を理解させる場合は {type:text} と {type:image_url} を並べた配列にできます(マルチモーダル / ビジョン)。
stream boolean いいえ SSE でストリーミング出力します。既定は false です。ストリーミング中、推論は choices[].delta.reasoning_content に少しずつ届き、答えは delta.content に入り、最後に data: [DONE] で終わります。注意:ストリーミング呼び出しでは上流が思考トークン数を個別に報告しないため reasoning_tokens は 0 になります。思考分は completion_tokens に含まれているので、費用は非ストリーミングと同じです。
temperature number いいえ サンプリング温度。0〜2 の範囲で指定します。
max_tokens integer いいえ 生成するトークン数の上限。
web_search boolean いいえ true にするとウェブ検索を有効にします。モデルが答える前に、ゲートウェイがリアルタイムの検索結果でプロンプトを補強し、出典も添えます。tools に {"type":"web_search"} を入れても同じように動きます。
reasoning_effort string いいえ 強度の等級:low(既定。より速く安価)または high(より深い推論。Preview 単価で課金)。接尾辞付きのモデル名 gemini-3.1-pro-low / gemini-3.1-pro-high も使えます。旧 ID の gemini-3.1-pro-preview は、現行価格のまま high 等級と同じ扱いです。

リクエスト例

cURL
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'

レスポンス

200 · JSON
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "gemini-3.1-pro",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": "**My Thought Process** ... (the model summarises its own reasoning)",
        "content": "70"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 48,
    "completion_tokens": 2187,
    "total_tokens": 2235,
    "completion_tokens_details": {"reasoning_tokens": 1371}
  }
}

画像入力(ビジョン)

メッセージの content 配列に画像を入れると、モデルがそれを解析します(画像についての質問、文字の読み取り / OCR など)。image_url には公開画像のリンクか、インラインの base64 データ URL(data:image/png;base64,...)を指定できます。マルチモーダル対応モデル(gpt-5.5、gemini シリーズなど)で利用できます。

curl · 画像入力(ビジョン)
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": [{"type": "text", "text": "この画像には何が写っていますか?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'

エラーコード

Code説明
401API Key が欠落または無効
402残高不足または Key が上限超過
400モデルまたはパラメータが非対応
429上流のレート制限
502すべての上流回線が失敗