Google Maps scraper API・MCP
Google Maps scraper API は、アプリやエージェントから上限付きのビジネス検索を実行します。権限を限定したワークスペースキーと明示的なタスク予算を使い、再試行はすべて同じ冪等キーで行います。結果は JSON で、欠けた項目は空欄のままです。
実行する前に · 実データの調査にはデータソースの設定が必要です。サンプルは明示します。有料プランはまだ提供していません。

制限付きジョブを作成する
Google Maps scraper API を、権限を限定したキーで REST や HTTP MCP クライアントに接続。タスクの見積もり、予算の指定、構造化された結果の取得ができます。
curl -X POST https://mapsscraper.dev/api/v1/jobs \
-H "Authorization: Bearer $MAPSSCRAPER_API_KEY" \
-H "Idempotency-Key: dentists-austin-tx-001" \
-H "X-Max-Units: 1" \
-H "Content-Type: application/json" \
-d '{"kind":"search","query":"Dentists in Austin, TX","limit":20,"region":"us"}'
HTTP/1.1 202 Accepted
{"id":"6f1c2b3a-0000-4000-8000-000000000000","status":"queued","reserved":1}同じ冪等性キーを使って同じ業務操作を再試行します。そのキーで内容を変えたリクエストは 409 を返します。ジョブは、キュー待ち、実行中、完了、一部完了、失敗、キャンセル、不確定のいずれかの状態を経ます。データソースへのリクエストが不確定な場合は、自動の有料再実行ではなく照合が必要です。
Google Maps scraper API とは何ですか?
Google Maps scraper API は業種と地域を受け取り、公開リスティングを JSON で返します。リクエストの前に、タスクの上限予算を確認できます。各タスクは権限を限定したキーと冪等キーを使い、クチコミは別のリクエストで取得します。
結果を読み取る
Google Maps scraper API で完了・一部完了したジョブの結果は、ワークスペースの保持期間中保存されます。offset と limit でページごとに読み取れます。保存済みの結果を読み取っても、新しいリサーチは実行されません。
レスポンス例(一部省略)。値は説明用であり、実在するビジネスのデータではありません。
{
"items": [
{
"business_id": "sample-business-id",
"name": "Sample Dental Studio",
"full_address": "100 Example Ave, Austin, TX 78701",
"phone_number": "+1 512-555-0100",
"website": "https://dental.example",
"type": "Dentist",
"rating": 4.8,
"review_count": 214,
"latitude": 30.2672,
"longitude": -97.7431,
"_source": {
"provider": "live_maps",
"fetched_at": "2026-11-01T12:00:00Z",
"website_status": "provided_unverified"
}
}
],
"count": 1,
"offset": 0,
"next_offset": null,
"provider": "live_maps",
"coverage": "bounded_sample",
"fetched_at": "2026-11-01T12:00:00Z"
}Google Maps クチコミ API
1 タスクにつき 1 つのビジネスIDのクチコミをリクエストできます。1 ページあたり最大 100 件で、関連度順、新しい順、評価の高い順、評価の低い順に並べ替えられます。各クチコミには本文、評価、日付、投稿者、オーナーの返信(ある場合)が含まれます。次のページには別のタスクと予算が必要です。
口コミ取得POST /api/v1/jobs
Idempotency-Key: reviews-sample-business-001
X-Max-Units: 1
{"kind":"reviews","business_id":"sample-business-id","limit":50,"review_options":{"sort_by":"newest"}}Pythonの例
requests ライブラリで Google Maps scraper API を呼び出し、検索の見積もり、ジョブの作成、最終ステータスの待機、結果の読み取りを行います。
import os
import time
import uuid
import requests
API = "https://mapsscraper.dev/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MAPSSCRAPER_API_KEY']}"}
task = {"kind": "search", "query": "Dentists in Austin, TX", "limit": 20, "region": "us"}
# An estimate reserves nothing.
units = requests.post(f"{API}/estimate", json=task, headers=HEADERS, timeout=30).json()["units"]
# Keep the key: a retry of the same task must send it again.
key = str(uuid.uuid4())
job = requests.post(
f"{API}/jobs",
json=task,
headers={**HEADERS, "Idempotency-Key": key, "X-Max-Units": str(units)},
timeout=30,
)
job.raise_for_status()
job_id = job.json()["id"]
while True:
status = requests.get(f"{API}/jobs/{job_id}", headers=HEADERS, timeout=30).json()["status"]
if status not in ("queued", "running"):
break
time.sleep(5)
if status in ("completed", "partial"):
page = requests.get(
f"{API}/jobs/{job_id}/results",
params={"offset": 0, "limit": 100},
headers=HEADERS,
timeout=30,
).json()
for business in page["items"]: # follow page["next_offset"] for more
print(business.get("name"), business.get("phone_number"), business.get("website"))Google Maps scraper API に関するよくある質問
ドキュメントこれは Google Places API ですか?
いいえ。MapsScraper.devは独立したサービスであり、Googleとは提携していません。結果はサードパーティのビジネスデータソースから取得され、当社独自のJSON形式で提供されます。
Google Maps scraper API のリクエストはどう課金されますか?
ほとんどのタスクは 1 ユニットを使います。検索または順位スナップショットで連絡先を補完すると、要求したレコードごとに 1 ユニットが追加で予約され、実際に届いたレコード分だけが課金されます。ビジネス詳細は 1 ユニット、連絡先付きなら 2 ユニット、補完は 2 ユニットです。X-Max-Units は見積もり以上に設定してください。
メールアドレスや電話番号は必ず取得できますか?
いいえ。取得範囲は出典とビジネスによります。任意の補完で公開連絡先が得られる場合もありますが、欠損や古い情報は利用前に確認してください。
