ヨネティこんにちは!ヨネティ(プロフィール)です!



・Google Custom Search APIを使いたいけど、本当に無料で使えるの? ・1日100回の上限を超えたら、勝手に課金されたりしないか心配…
・PythonでRAG(検索拡張生成)アプリを作りたいけど、実装方法が難しそう?
など思っている人もいるのではないでしょうか?



めちゃ分かる…!
僕も最初は「APIキーを設定しただけで課金されたら嫌だな…」とビクビクしながら設定画面を開いていました…!
「Google Custom Search API」は、プログラムからGoogle検索を利用できる強力なツールです。
RAG開発には欠かせない技術ですが、料金体系と無料枠の仕組みを正しく理解していないと、思わぬコストがかかってしまうことも…!
そこで今回はGoogle Custom Search APIについて、「2026年最新の料金体系と無料枠」「Pythonでの具体的な実装手順」「RAG開発での活用とコスト節約術」について詳しく解説します。
- 1日100回の無料枠を使い倒すための正確なルールとリセット時間
- クレジットカード登録なしで安全に開発をスタートする方法
- コピペで動く!Pythonで検索結果を取得してAIに渡すコード



それでは本題を解説していきます!
この記事はGoogle Custom Search APIを使って、低コストかつ安全に自作アプリを開発する方法をお伝えしています。 ぜひ参考にしてみてください。
「Google Custom Search API」とは?基本と仕組み


Google Custom Search APIは、私たちが普段使っているGoogle検索のパワーを、自分のプログラムの中から自由に呼び出せる便利なサービスです。
高精度な検索結果をアプリやシステムに組み込みたいときに、真っ先に検討したいツールですね。
まずは、このAPIで何ができるのか、動かすために何が必要なのかという基本からしっかり押さえていきましょう。
Google Custom Search APIの主な機能
このAPIを使うと、プログラム経由でGoogleの検索エンジンを利用し、Webページや画像などの検索結果をJSONデータとして取得することができます。
最大の魅力はなんといっても、Google検索と同じアルゴリズムを利用できるため、非常に精度の高い検索結果が得られる点です。
自分でゼロから検索システムを作るのは大変ですが、これなら世界のGoogleの力をそのまま借りられるわけですね。
具体的には、以下のような用途で活躍します。
Web検索結果の取得:
検索結果のタイトル、URLリンク、そしてスニペットと呼ばれる要約文を取得できます。
画像検索やサイト内検索:
著作権フリー画像に絞ったフィルタリング検索や、特定のWebサイト内だけを対象にした検索機能の実装も可能です。
ブログの執筆補助ツールを作ったり、社内システムに検索窓をつけたりと、アイデア次第で使い方は無限大ですよ。
「検索エンジンID」と「APIキー」の役割
APIを利用するためには、「Google Cloud Platform(GCP)」と「Programmable Search Engine」という2つの管理画面で、それぞれ異なるIDを取得して紐付ける必要があります。
少しややこしく感じるかもしれませんが、これは「誰が使っているか」と「どこを探すか」を区別するために分かれているんです。コードを書く際には、この2つをセットにしてパラメータとして渡すことになります。
それぞれの役割を整理しておきましょう。
APIキー (API Key):
Google Cloud Consoleで発行します。「誰が」APIを呼び出しているかを識別するための鍵で、認証や課金の管理に使われます。
検索エンジンID (Search Engine ID / cx):
Programmable Search Engineの管理画面で発行します。
「どこを」検索するか(Web全体なのか、特定のサイト限定なのか)や、言語・地域などの検索設定を定義したIDです。
この2つが揃って初めて、意図通りの検索ができるようになりますよ。
プログラマブル検索エンジンとの違い
名前が似ているので混同されやすいのですが、「プログラマブル検索エンジン」は設定ツールであり、「Custom Search API」はデータを取り出すためのインターフェースという違いがあります。
前者はWebサイトに貼り付ける「検索窓」を作るためのもので、後者はプログラムで扱いやすい「データ(JSON)」を受け取るためのものだと考えると分かりやすいですね。
目的別に使い分けるのがポイントです。
プログラマブル検索エンジンの役割:
検索対象やフィルタリングの設定を行い、サイト訪問者向けのHTML検索窓を提供します。
Custom Search APIの役割:
設定されたエンジンを使って実際に検索を実行し、結果をJSONデータとして返します。アプリ開発やデータ分析、RAGなどに適しています。
今回はPythonなどでツールを自作したい方が多いと思いますので、後者の「API」の使い方がメインになりますね。
「Google Custom Search API」【2026年】料金体系・無料枠・上限の完全ガイド


開発者にとって一番気になるのが「料金」ですよね。2026年1月3日現在、このAPIには個人開発者に嬉しい「無料枠」が用意されています。無料でどこまでできるのか、詳しく見ていきましょう。
ここでは、無料枠の仕組みから、それを超えた場合の課金、そして上限設定について解説します。
1日100回までの「無料枠」の仕組み
Google Custom Search APIには、1日あたり100回(クエリ)までの無料利用枠が自動的に付与されています。これならテスト開発も安心して行えますね。
この無料枠はAPIキーを作成した全てのプロジェクトに適用され、利用するための特別な申請などは一切不要です。毎日決まった時間にリセットされるので、翌日にはまた100回使えるようになります。
ただし、カウントのルールには少し注意が必要です。
リセットのタイミング:
太平洋標準時(PT)の午前0時にリセットされます。日本時間(JST)だと午後4時(サマータイム中は午後5時)になります。
カウント対象の注意点:
検索リクエスト1回につき1カウント消費します。検索結果の2ページ目や3ページ目を取得する場合も、それぞれ1リクエストとしてカウントされるので気をつけてくださいね。
夕方にリセットされるので、夜に開発作業をする方にとっては「作業前に枠が復活する」嬉しい仕様かもしれません。
無料枠を超えた場合の従量課金単価
無料枠の100回を超えて利用する場合、1,000リクエストあたり5ドル($5)の従量課金が発生します。
これはあくまで「無料枠を超過した分」に対してのみ課金される仕組みです。必要な分だけ払う形ですが、APIの中では比較的高額な部類に入るので、コスト管理は大切です。
具体的に計算してみると以下のようになります。
1日に1,100回リクエストした場合の計算例:
最初の100回は無料です。超過分の1,000回に対して5ドルがかかるので、合計コストは5ドルになります。
コスト管理のポイント:
無計画なループ処理などで大量のリクエストを送ってしまうと、あっという間に金額が膨らむ可能性があります。
個人開発レベルであれば、まずは無料枠の範囲内でうまくやりくりすることをおすすめします。
クレジットカード登録が必要なタイミング
結論から言うと、無料枠(1日100回)の範囲内で利用する限り、クレジットカードの登録(請求先アカウントの紐付け)は必須ではありません。
未登録の状態で100回を超えると、APIがエラーを返して自動的に止まる仕組みになっているため、勝手に課金される心配がないのです。これは初心者にとって非常に安心できる設計ですよね。
ご自身の状況に合わせて、登録するかどうか判断しましょう。
個人開発のテスト用途(おすすめ):
クレカ未登録のままでOKです。100回を超えたら「403 Daily Limit Exceeded」エラーが出て止まるので、使いすぎを物理的に防げます。
本格運用・商用利用:
Cloud Consoleで請求先アカウントを紐付けてください。100回を超えても自動的に課金され、サービスを止めずに検索を継続できます。
まずは未登録で始めて、必要性を感じたら登録するのが一番安全な進め方ですよ。
1日の利用上限(Quota)と引き上げ方法
たとえ課金を有効にしていたとしても、デフォルトでは1日あたり10,000リクエストというハードリミット(Quota)が設定されています。
これはシステムの安全を守るための上限値です。もしこれ以上の規模で大規模なサービスを展開したい場合は、別途手続きが必要になります。
上限に達しそうな場合は、早めに対応を検討しましょう。
上限緩和の手順:
Google Cloud Consoleの「IAMと管理」>「割り当て(Quotas)」メニューから、上限緩和の申請(Quota Increase Request)を行ってください。
個人利用で1万回を超えることは稀だと思いますが、スケーリングする際にはこの設定を思い出してくださいね。
「Google Custom Search API」にPythonを使ってGoogle検索結果を取得する実装手順


それでは、実際にPythonを使ってコードを書いていきましょう。ここでは、キーワード検索を行って結果を表示するまでの最短ルートをご紹介します。
環境構築からエラー対応まで、ステップバイステップで進めていきますね。
必要なライブラリのインストール
PythonでAPIを利用する場合、Google公式が提供しているクライアントライブラリ google-api-python-client を使用するのが最も標準的で簡単です。
2026年1月現在、ライブラリの信頼性も向上しており、これを使えば複雑な通信処理を自分で書く必要がなくなります。
以下のコマンドをターミナルで実行してインストールしましょう。
インストールコマンド:pip install google-api-python-client
これだけで準備は完了です。
APIを呼び出すサンプルコード
キーワード「Python RAG」で検索し、上位3件のタイトルとURLを表示するシンプルなコードを作成しました。
build関数でAPIサービスを構築し、listメソッドに必要なパラメータを渡して実行するだけで検索結果が取得できます。
以下のコードの「YOUR_API_KEY」と「YOUR_SEARCH_ENGINE_ID」をご自身のものに書き換えて実行してみてください。
from googleapiclient.discovery import build
import json
# 設定値(自身の値に書き換えてください)
API_KEY = "YOUR_API_KEY"
SEARCH_ENGINE_ID = "YOUR_SEARCH_ENGINE_ID"
def google_search(query, num=3):
# APIサービスの構築
service = build("customsearch", "v1", developerKey=API_KEY)
# 検索実行
res = service.cse().list(
q=query, # 検索キーワード
cx=SEARCH_ENGINE_ID, # 検索エンジンID
num=num # 取得件数(最大10)
).execute()
return res
if __name__ == "__main__":
result = google_search("Python RAG 入門")
# 結果の表示
if 'items' in result:
for item in result['items']:
print(f"Title: {item['title']}")
print(f"URL: {item['link']}")
print("-" * 20)
else:
print("検索結果が見つかりませんでした。")たったこれだけの行数でGoogle検索の結果が手に入るなんて、ワクワクしますよね。
レスポンス(JSON)の中身とデータの抽出
APIから返ってくるJSONデータには大量の情報が含まれていますが、ブログ執筆やアプリ開発で主に使用するのは items リスト内の特定のフィールドです。
特に snippet は要約文として非常に有用なので、AIに情報を渡す際には必ず取得しておきたい項目です。
必要なデータを効率よく取り出しましょう。
主要なフィールドと抽出例:
- ページタイトル:
item['title'] - URL:
item['link'] - 要約文(スニペット):
item['snippet'] - 画像情報など:
item.get('pagemap', {})
これらのデータを辞書型などで整理しておくと、後工程での処理がスムーズになりますよ。
エラーが出た時の確認ポイント
APIを使っているとエラーに遭遇することがありますが、返ってくるステータスコードを見れば原因はすぐに特定できます。
焦らずにエラーメッセージを確認することが解決への近道です。
よくあるエラーと対処法をまとめました。
403 Daily Limit Exceeded:
無料枠の100回、または設定したQuotaを超えています。翌日まで待つか、課金設定を確認してください。
403 The request is missing a valid API key:
APIキーが間違っているか、コード内で正しく渡されていません。
400 Invalid Value:
検索エンジンID(cx)が間違っている可能性があります。IDを再確認してみましょう。
エラーは「設定を見直してね」という合図なので、一つずつ確認していけば大丈夫ですよ。
「Google Custom Search API」生成AI・RAG開発での具体的な活用事例


最近話題のRAG(Retrieval-Augmented Generation)開発において、このAPIは非常に重要な役割を果たします。AIに「検索」という武器を持たせることで、何ができるようになるのでしょうか。
具体的な仕組みやメリット、コストパフォーマンスについて深掘りしてみましょう。
「Google Custom Search API」LLM(ChatGPT等)に最新情報を渡す仕組み
ChatGPTやGeminiなどのLLMは、学習データに含まれない「最新のニュース」や「今日の天気」を知りません。そこで、Custom Search APIをRAGの検索ツールとして組み込みます。
AIが回答を生成する前に、プログラムがGoogle検索を行い、その結果(スニペット)をプロンプトに含めてあげることで、AIは最新情報を「知っている」かのように振る舞えるようになります。
具体的なフローは以下の通りです。
処理の流れ:
1. ユーザーが質問する(例:「今日の東京の天気は?」)
2. PythonプログラムがCustom Search APIで検索を実行
3. 取得した検索結果テキストをLLMへのプロンプトに埋め込む(「以下の検索結果に基づいて回答して…」)
4. LLMが最新情報に基づいた回答を生成
この仕組みにより、情報の鮮度というLLM最大の弱点を完全にカバーできるんです。
RAGアプリに検索機能を組み込むメリット
RAGアプリにGoogle検索を組み込むことは、単に最新情報を知るだけでなく、回答の信頼性を高める上で大きなメリットがあります。
AIが「検索結果」という根拠に基づいて回答するようになるため、適当な嘘をつくリスクを減らせるのです。
主なメリットは以下の3点です。
ハルシネーション(嘘)の抑制:
外部情報を根拠にさせることで、AIの創作を防ぎ、事実に基づいた回答を期待できます。
出典の明記:
検索結果のURLをユーザーに提示できるため、情報の出所が明確な、信頼性の高いアプリを作成できます。
低コストなGrounding:
エンタープライズ向けの検索サービスと比べ、小規模利用なら無料で実装できるため、個人開発に最適です。
正確で信頼できるAIアプリを作りたいなら、検索機能の実装は避けて通れませんね。
個人開発でのコストパフォーマンス考察
個人開発者がRAGアプリを作る際、Google Custom Search APIの「毎日100回無料」という枠が永続的に使える点は最強のメリットと言えます。
Bing Search APIなど他社の検索APIは有料(月額制や従量課金)な場合が多い中、Googleは小規模な利用に対して非常に寛大です。
開発フェーズごとのコスト感を見てみましょう。
テスト・開発段階:
無料枠だけで十分に開発が進められます。失敗してもお金がかからないので安心です。
リリース初期:
ユーザー数が少ないうちは、コストゼロでの運用が可能です。収益化の目処が立つまで持ち出しがないのはありがたいですよね。
まずは無料で小さく始めて、アプリが成長したら課金を検討するという理想的なステップアップが可能です。
無料枠内で使い倒す!コスト節約と運用テクニック


1日100回は多いようで、開発に熱中しているとあっという間に使い切ってしまいます。そこで、賢く節約しながら運用するためのテクニックをご紹介します。
ちょっとした工夫で、APIの消費量は劇的に減らせますよ。
開発中の無駄なリクエストを防ぐ方法
開発中はコードの動作確認のために何度もプログラムを実行しますが、そのたびに本物のAPIを叩くのは非常にもったいないです。
そこで、「モック(ダミーデータ)」を活用しましょう。
具体的な方法はとてもシンプルです。
モックの活用手順:
一度APIから取得したJSONレスポンスをコピーし、mock_response.json などのファイルに保存します。開発中はAPI呼び出し部分をコメントアウトし、このファイルを読み込んで動作確認を行いましょう。
これでAPI消費をゼロに抑えつつ、パース処理や表示ロジックの修正に集中できます。
取得データのキャッシュ化でAPI節約
同じキーワードでの検索結果は、数分や数時間で頻繁に変わるものではありません。同じ検索を繰り返してAPIを消費するのは無駄ですよね。
一度検索したキーワードと結果をローカルに保存(キャッシュ)しておく仕組みを導入しましょう。
おすすめの実装ロジックは以下の通りです。
キャッシュの仕組み:
「過去24時間以内に同じ検索をしていたら、APIを叩かずに保存データを使う」という条件分岐を入れるだけで、API消費量を劇的に節約できます。
SQLiteやJSONファイルを使う簡易的なものでも十分効果がありますよ。
1日100回制限を管理するコードの工夫
無料枠のみで運用する場合、うっかりループ処理などで100回を超えてしまい、エラーで止まるのを防ぎたいですよね。
プログラム内で「今日は何回使ったか」をカウントする機能を持たせることを強くおすすめします。
カウンターの役割:
実行前に回数をチェックし、上限に達していたら処理を中断したり、アラートを出したりすることで、予期せぬエラー停止をコントロールできます。
安心して運用するためには必須の機能です。
「Python」リクエスト数を監視する簡易スクリプト
最後に、ファイルを使って簡単に実行回数を管理するPythonコードを紹介します。データベースなどの複雑な準備は不要です。
このスクリプトを検索処理の前に呼び出すだけで、使いすぎを防止できます。
import os
import datetime
COUNTER_FILE = "api_counter.txt"
LIMIT = 100
def check_and_increment_quota():
today = datetime.date.today().isoformat()
if os.path.exists(COUNTER_FILE):
with open(COUNTER_FILE, "r") as f:
data = f.read().split(",")
last_date, count = data[0], int(data[1])
if last_date == today:
if count >= LIMIT:
raise Exception("本日のAPI無料枠(100回)を使い切りました。")
new_count = count + 1
else:
new_count = 1 # 日付が変わったらリセット
else:
new_count = 1
with open(COUNTER_FILE, "w") as f:
f.write(f"{today},{new_count}")
print(f"API Request: {new_count}/{LIMIT}")
# 使用例:検索実行前に呼び出す
# check_and_increment_quota()
# google_search(...)このひと手間を加えるだけで、無料枠を最大限かつ安全に使い倒すことができますよ。
【まとめ】【Google Custom Search API】の料金は?無料枠と上限を解説
今回の記事では、Google Custom Search APIの料金体系や無料枠の仕組み、Pythonでの実装法を解説しました。
この記事のポイント5つ(まとめ)
- 1日100回までは無料で利用可能
- 無料枠内ならクレカ登録は不要
- Pythonで簡単に実装ができる
- RAG開発で最新情報を取得可能
- キャッシュ活用でコストを節約
Google Custom Search APIは、個人開発なら無料枠の範囲内で十分に活用できます。RAGアプリに検索機能を組み込めば、AIの回答精度も大きく向上するでしょう。
まずはクレジットカード登録なしで開発をスタートし、必要に応じて上限緩和や課金設定を検討するのが安全でおすすめです。
この記事を参考に、コストを抑えながら高機能なAIアプリ開発に挑戦してみてくださいね!









