Google Maps scraper API i MCP
Google Maps scraper API uruchamia ograniczone wyszukiwanie firm z Twojej aplikacji lub agenta. Jeden klucz obszaru roboczego o ograniczonym zakresie, jawny budżet zadania i stabilny klucz idempotencji obejmują każdą ponowną próbę. Wyniki są w JSON, a brakujące pole pozostaje puste.
Przed uruchomieniem · Badanie rzeczywistych danych wymaga skonfigurowanego źródła danych. Przykłady są oznaczone. Płatne plany nie są jeszcze dostępne.

Utwórz zadanie ograniczone
Połącz klucz o ograniczonych uprawnieniach z REST lub klientem HTTP MCP. Szacuj zadania, określaj budżety i odbieraj uporządkowane wyniki.
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}Ponów tę samą operację z tym samym kluczem idempotencji. Zmienione żądanie z tym kluczem zwraca 409. Zadania przechodzą przez stany: w kolejce, w toku, ukończone, częściowe, nieudane, anulowane lub niepewne. Niepewne żądanie do źródła danych wymaga uzgodnienia zamiast automatycznego płatnego powtórzenia.
Czym jest Google Maps scraper API?
Google Maps scraper API przyjmuje kategorię i obszar, zwraca publiczne wizytówki jako JSON i pokazuje maksymalny budżet zadania przed uruchomieniem. Każde zadanie używa klucza o ograniczonym zakresie i klucza idempotencji. Opinie to osobne żądanie.
Odczytaj wyniki
Zakończone i częściowe zadania przechowują wyniki przez okres przechowywania w Twoim obszarze roboczym. Odczytuj je strona po stronie za pomocą offset i limit; odczyt zapisanych wyników nigdy nie uruchamia nowego badania.
Przykładowa odpowiedź, skrócona. Wartości są poglądowe i nie są prawdziwymi danymi firm.
{
"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"
}API opinii z Google Maps
Pobieraj opinie dla jednego identyfikatora firmy na zadanie, do 100 na stronę, sortowane według trafności, od najnowszych, od najwyższej lub najniższej oceny. Każda opinia zawiera treść, ocenę, datę, autora i odpowiedź właściciela, jeśli jest dostępna. Kolejna strona wymaga osobnego zadania i budżetu.
Scraper opiniiPOST /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"}}Przykład w języku Python
Oszacuj wyszukiwanie, utwórz zadanie w Google Maps scraper API, poczekaj na status końcowy i odczytaj wyniki za pomocą biblioteki requests.
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: pytania
DokumentacjaCzy to jest Google Places API?
Nie. MapsScraper.dev to niezależna usługa niepowiązana z Google. Wyniki pochodzą z zewnętrznego źródła danych o firmach i są w naszym własnym formacie JSON.
Jak naliczane są opłaty za żądania?
Większość zadań zużywa jedną jednostkę. Wzbogacenie kontaktów przy wyszukiwaniu lub migawce pozycji rezerwuje jedną dodatkową jednostkę na każdy żądany rekord i nalicza tylko dostarczone rekordy. Szczegóły firmy zużywają jedną jednostkę, a z kontaktami dwie; wzbogacanie zużywa dwie. Ustaw X-Max-Units co najmniej na wartość wyceny.
Czy adresy email i telefony są gwarantowane?
Nie. Zakres zależy od źródła i firmy. Opcjonalne wzbogacanie może dostarczyć publiczne kontakty. Sprawdź brakujące lub stare informacje przed użyciem.
Materiały
Twoja następna lista zaczyna się od miejsca.
Sprawdź proces na oznaczonych przykładach, a następnie połącz obszar roboczy z rzeczywistym badaniem.
Zobacz przykład