Scrape Google Maps and the local pack without Selenium: business listings, ratings, phone/website, full place details and paginated reviews — parsed JSON from one POST.
import requests API = "https://app.quantumproxies.io/api/v1/scraper/serp" KEY = "qp_live_YOUR_KEY" r = requests.post(API, headers={"Authorization": f"Bearer {KEY}"}, json={"query": "coffee shop", "search_type": "places", "location": "Milan, Italy", "country": "it", "num": 20}) for p in r.json()["places"]: print(p["rank"], p["name"], p["rating"], p["reviews"], p["address"])
location is encoded server-side into Google's uule parameter — you get the pack a searcher physically in Milan sees. For map-canvas results pass "search_type": "maps" with "gps_coordinates": "45.4642,9.1900,14z".
# full record: address, phone, website, hours json={"search_type": "place_details", "place_id": "ChIJ..."} # -> place_results # paginated reviews, newest first json={"search_type": "reviews", "data_id": "0x...:0x...", "sort_by": "newest"} # -> reviews_results: [{rating, date, text, user: {name}, ...}], next_page_token
Runnable pipeline (search → details → reviews CSV): maps.py.
- Lead lists — every listing carries phone + website
- Local SEO monitoring — pack rank per city is a ranking you can track like any other
- Multi-location reputation — chains diff their ratings across branches; the workflow is in monitoring Google reviews across locations
The DIY-vs-API tradeoffs (Maps is one of the hardest Google surfaces to scrape raw) are covered in scraping Google Maps business data; pair it with Yelp business data for US coverage.
Part of the QuantumProxies SERP API — same endpoint as organic search, search_type switches the vertical. All parameters: serp-api/docs · keys: app.quantumproxies.io/api-keys.