Gemini3 proのAPIをGASでリクエスト!11/19新登場の生成AIモデル
日本時間2025年11月19日にGoogleの生成AIであるGeminiの最新モデルとしてGemini3が発表されました。
早速Google AI StudioでもGemini3 proが利用開始され、APIも提供されています。
そこでGoogle Apps Script(GAS)でGemini3.0 pro previewのAPIを試してみました。
Gemini3が11/19に新登場
Googleが提供する生成AIのGeminiの最新バージョンであるGemini3が日本時間の2025年11月19日に発表されました。

今までは2025年6月に正式リリースされたGemini 2.5 proが最新モデルでした。
新たに追加されたGemini3は、従来の最高性能を誇ったGemini 2.5 proに対し、あらゆる指標で上回っています。

さらにOpenAIから発表されたGPT5.1よりも優れた性能であるとGoogleは謳っています。
早速Google AI StudioにGemini3登場
Gemini3はさっそくGoogle AI Studioに登場しています。

お知らせに記載されている「Try it」を選択するとチャットモードでGemini3 pro previewが選択可能です。

またチャットモード以外に「Vibe code with GenAI apps」でビルドモードでもGemini3 pro previewが選択できるようになりました。

Gemini3はプレビューモードのため、一部用途によってはGemini2.5 proのほうがよいケースもありますが、性能は上回っているので今後はGemini3 proを利用するのがよさそうです。
Gemini3 proのAPIも利用可能に
Google AI StudioでGemini3 proが選択できるようになったということで、APIでも利用できるようになりました。
OpenAIなどでもGPT5.1が直近発表された際はChatGPTのアプリ(有料版)では使えるようになったものの、APIではすぐに使えませんでした。
現在ではGPT5.1もAPI経由で利用できるようになりましたが、Gemini3発表と同時にAPIも使えるのはありがたいです。
API経由で使うことでAIエージェントとしてGemini3 proを組み込むことができます。
Google Apps Script(GAS)やPythonを使ってGemini3 proに要約や文章作成、画像解析などをリクエストし、ワークフロー構築が可能です。
Gemini3 proのAPIは無料利用不可
なおGemini3 proのAPIは2025年11月19日時点では無料で利用することができません。
GoogleのGeminiAPIに関するレート制限の説明ページに利用条件が掲載されています。

無料枠の欄はGemini2.5 proはあるものの、Gemini3 pro previewはありません。
有料版のTier1~3にのみGemini3 pro previewに関する記述があり、無料版ではAPIリクエストしても、「You exceeded your current quota, please check your plan and billing details.」と表示されて、実行できません。

Gemini API料金ページの日本語版は翻訳が少しおかしいですが、20万トークン以下では100万トークンあたり入力が2ドル、出力が12ドルとなっています。
1つ前のモデルであるGemini2.5 proと比較して20万トークン以下の場合、入力トークンは60%、出力トークンは20%値上げされています。
そのため、Gemini3 proをAPI経由で実行するにはGoogle Cloudで支払い情報を紐づけたプロジェクトが必要です。
GASでGemini3 proのAPIを実行
新たに公開されたGemini3 proのAPIをGoogle Apps Script(GAS)で実行してみました。
そこでGASでGemini3 proのAPIをリクエストする方法を解説します。
Gemini3 proのAPIはVertexAIまたはGoogle AI Studioの2種類から利用可能です。
今回は手軽にAPIキーが発行できるGoogle AI Studio経由でGemini3 proのAPIを実行してみます。

Google AI StudioのAPIキーの画面で、Tier1(もしくはTier2,3)のAPIキーをコピーします。
※Gemini3 pro previewはAPI経由では利用できません。
GASのスクリプトエディタを開いたあと、プロジェクトの設定を開きます。
設定画面の末尾にあるスクリプトプロパティコピーしたAPIキーはGASのスクリプトプロパティに設定します。

GASではAPIキーをスクリプトに直書きせずに、スクリプトプロパティに設定し、コードから呼び出すのが一般的です。
テキストのみのGemini3×GASサンプルコード
Google Apps Script(GAS)でGemini3のAPIにテキストプロンプトのみ送るサンプルコードは以下の通りです。

function testGemini3(){
const prompt = '9.9と9.11だとどちらの数字のほうが大きいですか?';
console.log(callGeminiAPI(prompt));
}
/**
* Gemini APIにテキストプロンプトを送信して応答を取得する関数
* @param {string} prompt - Gemini APIに送信するテキストプロンプト
* @param {string} modelName - 使用するGeminiモデル名(デフォルト: gemini-3-pro-preview)
* @return {string} - Gemini APIからの応答テキスト
*/
function callGeminiAPI(prompt, modelName = 'gemini-3-pro-preview') {
// Gemini APIキーを設定(スクリプトプロパティから取得することを推奨)
const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
// APIキーが設定されていない場合はエラー
if (!apiKey) {
throw new Error('GEMINI_API_KEYがスクリプトプロパティに設定されていません。');
}
// Gemini APIのエンドポイント(モデル名を動的に指定)
const endpoint = `https://generativelanguage.googleapis.com/v1beta/models/${modelName}:generateContent?key=${apiKey}`;
// リクエストボディを作成
const requestBody = {
contents: [{
parts: [{
text: prompt
}]
}],
generationConfig: {
temperature: 0.7,
topK: 40,
topP: 0.95,
maxOutputTokens: 4096,
}
};
// リクエストオプションを設定
const options = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(requestBody),
muteHttpExceptions: true
};
try {
// APIリクエストを送信
const response = UrlFetchApp.fetch(endpoint, options);
const responseCode = response.getResponseCode();
// レスポンスコードをチェック
if (responseCode !== 200) {
Logger.log('エラーレスポンス: ' + response.getContentText());
throw new Error(`APIリクエストが失敗しました。ステータスコード: ${responseCode}`);
}
// レスポンスをパース
const jsonResponse = JSON.parse(response.getContentText());
// テキストを抽出
if (jsonResponse.candidates && jsonResponse.candidates.length > 0) {
const candidate = jsonResponse.candidates[0];
if (candidate.content && candidate.content.parts && candidate.content.parts.length > 0) {
return candidate.content.parts[0].text;
}
}
throw new Error('APIレスポンスから有効なテキストを取得できませんでした。');
} catch (error) {
Logger.log('エラーが発生しました: ' + error.message);
throw error;
}
}プロンプトのテキストを引数に指定してGemini APIをリクエストします。
またモデルも引数に指定できるようにしておき、デフォルトを「gemini-3-pro-preview」としています。

GASサンプルコードを実行すると、実行ログにGemini3 pro からの応答結果が出力されます。
このようにGASからGemini3 proをAPI経由でリクエストできました。
テキスト+画像のGemini3×GASサンプルコード
次にテキストプロンプトに加えて画像もGemini3 proにAPIでリクエストしてみます。

function testGemini3WithImage(){
const imageUrl = 'https://rocketnews24.com/wp-content/uploads/sites/2/2025/11/huwamoko4.jpg';
const imageType = 'url';
const prompt = 'この画像は何の画像か説明してください。写っているものすべてを紹介してください。';
console.log(callGeminiAPIWithImage(prompt,imageUrl,imageType));
}
/**
* Gemini APIに画像とテキストプロンプトを送信して応答を取得する関数
* @param {string} prompt - Gemini APIに送信するテキストプロンプト
* @param {string|Blob} image - 画像(ドライブファイルID、URL、またはBlob)
* @param {string} imageType - 画像の入力タイプ ('fileId', 'url', 'blob')
* @param {string} modelName - 使用するGeminiモデル名(デフォルト: gemini-3-pro-preview)
* @return {string} - Gemini APIからの応答テキスト
*/
function callGeminiAPIWithImage(prompt, image, imageType = 'fileId', modelName = 'gemini-3-pro-preview') {
// Gemini APIキーを設定
const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
// APIキーが設定されていない場合はエラー
if (!apiKey) {
throw new Error('GEMINI_API_KEYがスクリプトプロパティに設定されていません。');
}
// 画像データを取得してBase64エンコード
let imageBlob;
let mimeType;
try {
switch(imageType) {
case 'fileId':
// Googleドライブのファイルから取得
const file = DriveApp.getFileById(image);
imageBlob = file.getBlob();
mimeType = imageBlob.getContentType();
break;
case 'url':
// URLから画像を取得
const response = UrlFetchApp.fetch(image);
imageBlob = response.getBlob();
mimeType = imageBlob.getContentType();
break;
case 'blob':
// Blobとして直接受け取る
imageBlob = image;
mimeType = imageBlob.getContentType();
break;
default:
throw new Error('無効な imageType です。"fileId", "url", "blob" のいずれかを指定してください。');
}
// 画像をBase64エンコード
const base64Image = Utilities.base64Encode(imageBlob.getBytes());
// Gemini APIのエンドポイント
const endpoint = `https://generativelanguage.googleapis.com/v1beta/models/${modelName}:generateContent?key=${apiKey}`;
// リクエストボディを作成(画像を含む)
const requestBody = {
contents: [{
parts: [
{
text: prompt
},
{
inline_data: {
mime_type: mimeType,
data: base64Image
}
}
]
}],
generationConfig: {
temperature: 0.7,
topK: 40,
topP: 0.95,
maxOutputTokens: 4096,
}
};
// リクエストオプションを設定
const options = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(requestBody),
muteHttpExceptions: true
};
// APIリクエストを送信
const apiResponse = UrlFetchApp.fetch(endpoint, options);
const responseCode = apiResponse.getResponseCode();
// レスポンスコードをチェック
if (responseCode !== 200) {
Logger.log('エラーレスポンス: ' + apiResponse.getContentText());
throw new Error(`APIリクエストが失敗しました。ステータスコード: ${responseCode}`);
}
// レスポンスをパース
const jsonResponse = JSON.parse(apiResponse.getContentText());
// テキストを抽出
if (jsonResponse.candidates && jsonResponse.candidates.length > 0) {
const candidate = jsonResponse.candidates[0];
if (candidate.content && candidate.content.parts && candidate.content.parts.length > 0) {
return candidate.content.parts[0].text;
}
}
throw new Error('APIレスポンスから有効なテキストを取得できませんでした。');
} catch (error) {
Logger.log('エラーが発生しました: ' + error.message);
throw error;
}
}引数にプロンプトのテキストに加えて、画像と画像の種類を設定できるようにしています。
画像はGoogleドライブのファイルID、URL、blob形式の3つが選択可能です。
それぞれに応じて画像の種類を指定します。

今回はロケットニュースに掲載されていた画像をURLで指定し、URLという種類を指定して写真に写っているものを解析してもらいました。

Gemini3 proのAPIでテキストに加えて画像もリクエストできました。
Gemini3は画像認識の能力が向上しているので、画像解析のワークフローなどで活用できそうです。
まとめ・終わりに
今回、Googleが2025年11月19日に発表した最新の生成AIモデル、Gemini3 proのAPIをGoogle Apps Script(GAS)で実行してみました。
基本的には従来のGeminiと同様にAPIリクエストができ、エンドポイントURLに指定するモデルを「gemini-3-pro-preview」を指定するとGemini3 proをAPI経由で利用可能です。
2025年6月に正式リリースされたGemini2.5 proと比べてもかなり性能が向上しています。
ただ、現時点ではAPIは有料版のみで無料版はないため、有料でも使いたい場合はGemini3 pro preview版を利用してみてください。





















ディスカッション
コメント一覧
まだ、コメントがありません