メインコンテンツへスキップ
POST
/
v1beta
/
models
/
{model}
:
{operator}
from google import genai

client = genai.Client(
    api_key="<COMETAPI_KEY>",
    http_options={"api_version": "v1beta", "base_url": "https://api.cometapi.com"},
)

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Explain how AI works in a few words",
)

print(response.text)
{
  "candidates": [
    {
      "content": {
        "role": "<string>",
        "parts": [
          {
            "text": "<string>",
            "functionCall": {
              "name": "<string>",
              "args": {}
            },
            "inlineData": {
              "mimeType": "<string>",
              "data": "<string>"
            },
            "thought": true
          }
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {
          "category": "<string>",
          "probability": "<string>",
          "blocked": true
        }
      ],
      "citationMetadata": {
        "citationSources": [
          {
            "startIndex": 123,
            "endIndex": 123,
            "uri": "<string>",
            "license": "<string>"
          }
        ]
      },
      "tokenCount": 123,
      "avgLogprobs": 123,
      "groundingMetadata": {
        "groundingChunks": [
          {
            "web": {
              "uri": "<string>",
              "title": "<string>"
            }
          }
        ],
        "groundingSupports": [
          {
            "groundingChunkIndices": [
              123
            ],
            "confidenceScores": [
              123
            ],
            "segment": {
              "startIndex": 123,
              "endIndex": 123,
              "text": "<string>"
            }
          }
        ],
        "webSearchQueries": [
          "<string>"
        ]
      },
      "index": 123
    }
  ],
  "promptFeedback": {
    "blockReason": "SAFETY",
    "safetyRatings": [
      {
        "category": "<string>",
        "probability": "<string>",
        "blocked": true
      }
    ]
  },
  "usageMetadata": {
    "promptTokenCount": 123,
    "candidatesTokenCount": 123,
    "totalTokenCount": 123,
    "trafficType": "<string>",
    "thoughtsTokenCount": 123,
    "promptTokensDetails": [
      {
        "modality": "<string>",
        "tokenCount": 123
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "<string>",
        "tokenCount": 123
      }
    ]
  },
  "modelVersion": "<string>",
  "createTime": "<string>",
  "responseId": "<string>"
}

概要

CometAPI は Gemini ネイティブ API 形式をサポートしており、thinking control、Google Search grounding、ネイティブ画像生成モダリティなど、Gemini 固有の機能にフルアクセスできます。OpenAI-compatible chat endpoint では利用できない機能が必要な場合は、このエンドポイントを使用してください。

クイックスタート

任意の Gemini SDK または HTTP クライアントで、ベース URL と API キーを置き換えてください。
SettingGoogle DefaultCometAPI
ベース URLgenerativelanguage.googleapis.comapi.cometapi.com
API キー$GEMINI_API_KEY$COMETAPI_KEY
認証には x-goog-api-keyAuthorization: Bearer ヘッダーの両方をサポートしています。

Thinking(Reasoning)

Gemini モデルは、レスポンスを生成する前に内部的な推論(Inference)を実行できます。制御方法はモデルの世代によって異なります。
Gemini 3 モデルでは、推論の深さを制御するために thinkingLevel を使用します。利用可能なレベル: MINIMALLOWMEDIUMHIGH
curl "https://api.cometapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "Explain quantum physics simply."}]}],
    "generationConfig": {
      "thinkingConfig": {"thinkingLevel": "LOW"}
    }
  }'
Gemini 2.5 モデルで thinkingLevel を使用した場合(または Gemini 3 モデルで thinkingBudget を使用した場合)、エラーが発生する可能性があります。モデルのバージョンに応じた正しいパラメータを使用してください。

ストリーミング(Streaming)

コンテンツ生成中に Server-Sent Events を受け取るには、operator として streamGenerateContent?alt=sse を使用します。各 SSE イベントには、JSON の GenerateContentResponse オブジェクトを含む data: 行が含まれます。
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  --no-buffer \
  -d '{
    "contents": [{"parts": [{"text": "Write a short poem about the stars"}]}]
  }'

システム指示

会話全体を通じてモデルの振る舞いを誘導するには、systemInstruction を使用します。
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "What is 2+2?"}]}],
    "systemInstruction": {
      "parts": [{"text": "You are a math tutor. Always show your work."}]
    }
  }'

JSONモード

responseMimeType を使って構造化された JSON 出力を強制できます。厳密なスキーマ検証のために、必要に応じて responseSchema も指定できます。
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "List 3 planets with their distances from the sun"}]}],
    "generationConfig": {
      "responseMimeType": "application/json"
    }
  }'

Google Search グラウンディング

googleSearch ツールを追加すると、リアルタイムの Web 検索を有効にできます。
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "Who won the euro 2024?"}]}],
    "tools": [{"google_search": {}}]
  }'
レスポンスには、ソース URL と信頼度スコアを含む groundingMetadata が含まれます。

レスポンス例

CometAPI の Gemini エンドポイントからの典型的なレスポンス:
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [{"text": "Hello"}]
      },
      "finishReason": "STOP",
      "avgLogprobs": -0.0023
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 5,
    "candidatesTokenCount": 1,
    "totalTokenCount": 30,
    "trafficType": "ON_DEMAND",
    "thoughtsTokenCount": 24,
    "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 5}],
    "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]
  },
  "modelVersion": "gemini-2.5-flash",
  "createTime": "2026-03-25T04:21:43.756483Z",
  "responseId": "CeynaY3LDtvG4_UP0qaCuQY"
}
usageMetadata 内の thoughtsTokenCount フィールドは、thinking 出力がレスポンスに含まれていない場合でも、モデルが内部推論に使用したトークン数を示します。

OpenAI互換エンドポイントとの主な違い

機能Gemini Native (/v1beta/models/...)OpenAI-Compatible (/v1/chat/completions)
thinking 制御thinkingConfigthinkingLevel / thinkingBudget利用不可
Google Search グラウンディングtools: [\{"google_search": \{\}\}]利用不可
Google Maps グラウンディングtools: [\{"googleMaps": \{\}\}]利用不可
画像生成モダリティresponseModalities: ["IMAGE"]利用不可
認証ヘッダーx-goog-api-key または BearerBearer のみ
レスポンス形式Gemini ネイティブ形式(candidates, partsOpenAI 形式(choices, message

承認

x-goog-api-key
string
header
必須

Your CometAPI key passed via the x-goog-api-key header. Bearer token authentication (Authorization: Bearer <key>) is also supported.

パスパラメータ

model
string
必須

The Gemini model ID to use. See the Models page for current Gemini model IDs.

:

"gemini-2.5-flash"

operator
enum<string>
必須

The operation to perform. Use generateContent for synchronous responses, or streamGenerateContent?alt=sse for Server-Sent Events streaming.

利用可能なオプション:
generateContent,
streamGenerateContent?alt=sse
:

"generateContent"

ボディ

application/json
contents
object[]
必須

The conversation history and current input. For single-turn queries, provide a single item. For multi-turn conversations, include all previous turns.

systemInstruction
object

System instructions that guide the model's behavior across the entire conversation. Text only.

tools
object[]

Tools the model may use to generate responses. Supports function declarations, Google Search, Google Maps, and code execution.

toolConfig
object

Configuration for tool usage, such as function calling mode.

safetySettings
object[]

Safety filter settings. Override default thresholds for specific harm categories.

generationConfig
object

Configuration for model generation behavior including temperature, output length, and response format.

cachedContent
string

The name of cached content to use as context. Format: cachedContents/{id}. See the Gemini context caching documentation for details.

レスポンス

200 - application/json

Successful response. For streaming requests, the response is a stream of SSE events, each containing a GenerateContentResponse JSON object prefixed with data:.

candidates
object[]

The generated response candidates.

promptFeedback
object

Feedback on the prompt, including safety blocking information.

usageMetadata
object

Token usage statistics for the request.

modelVersion
string

The model version that generated this response.

createTime
string

The timestamp when this response was created (ISO 8601 format).

responseId
string

Unique identifier for this response.