Gemini ネイティブ
コンテンツの生成
Google Gemini API形式を使用してコンテンツを生成します
Gemini Models API が返すモデルを選び、Gemini のリクエストとレスポンス形式を使用します。ProtoJSON lowerCamelCase と対応する proto snake_case のフィールド名を使用できます。任意フィールドと値の対応範囲は選択したモデルによって異なります。
パスパラメータ
モデル名 (例: gemini-2.5-pro、gemini-3.5-flash)。
クエリパラメータ
APIキー(ヘッダー認証の代替)。
認証
Geminiエンドポイントは、複数の認証方法をサポートしています:
?key=YOUR_API_KEYクエリパラメータx-goog-api-key: YOUR_API_KEYヘッダーAuthorization: Bearer YOUR_API_KEYヘッダー
リクエストボディ
parts と任意の role を含む会話内容です。メディアには inlineData / inline_data または fileData / file_data を使用します。TokenLab が作成した Files と Cache の ID は所有するワークスペース内でのみ使用できます。
モデルへのシステム指示。
temperature、topP、topK、maxOutputTokens、stopSequences、candidateCount、responseModalities、responseMimeType、responseSchema、thinkingConfig などの生成設定です。対応する snake_case 名も使用できます。値と組み合わせの対応範囲はモデルによって異なります。
セーフティフィルター設定。
レスポンス
生成されたコンテンツの候補。
トークン使用状況の情報。
リクエスト
curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"parts": [{"text": "Hello, Gemini!"}]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 1024
}
}'マルチモーダル入力例
Gemini のマルチモーダルリクエストでは、媒体を contents[].parts[] に入れ、インラインバイトまたは URL ベースのファイル参照のどちらかで渡します。
現在の公共 Gemini 契約でサポートしている媒体カテゴリ:
- 画像
- 音声
- 動画
インライン媒体では inlineData または inline_data を使い、Base64 化したファイルバイトを渡します。
URL 媒体では fileData または file_data を使い、公開到達可能な https URL を渡します。
画像入力例
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "この画像を説明してください。" },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQ..."
}
}
]
}
]
}音声入力例
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "この音声を文字起こしして要約してください。" },
{
"file_data": {
"mime_type": "audio/mpeg",
"file_uri": "https://example.com/sample.mp3"
}
}
]
}
]
}動画入力例
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "この動画を簡潔に説明してください。" },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/sample.mp4"
}
}
]
}
]
}レスポンス
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{"text": "Hello! How can I assist you today?"}
]
},
"finishReason": "STOP",
"safetyRatings": [
{"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
]
}
],
"usageMetadata": {
"promptTokenCount": 5,
"candidatesTokenCount": 10,
"totalTokenCount": 15
}
}動画入力の例
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this video." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/demo.mp4"
}
}
]
}
]
}音声入力の例
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this audio." },
{
"fileData": {
"mimeType": "audio/mpeg",
"fileUri": "https://example.com/demo.mp3"
}
}
]
}
]
}認証
BearerAuth APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。
場所: header
パスパラメータ
モデル名 (例: gemini-2.5-pro)
クエリパラメータ
APIキー (ヘッダー認証の代替)
ヘッダー
リクエストごとの配信ポリシー。APIキーおよびWorkspaceのデフォルト設定を上書きします。自動的にまず TokenLab Verified を試行し、出力、リクエストの受け入れ、または永続的なリソース作成の前に、一度だけ Official に切り替える場合があります。
指定できる値
- "auto"
- "verified"
- "official"
リクエストボディ
application/json
ネイティブGemini GenerateContentリクエスト。ProtoJSONのlowerCamelCaseと元のprotoのsnake_caseの両方が受け入れられ、保持されます(混在リクエストを含む)。1つのフィールドに対して両方の綴りが存在する場合、TokenLabはそれらをマージしたり、ローカルの優先順位を選択したりしません。不明なフィールドはベストエフォートで転送されます。
レスポンス
application/json
application/json
application/json
application/json
application/json
application/json