All scrapers

Search

Google Local Scraper

google.com/maps

89.1% Success rate
3.9s Avg response
In-house anti-bot Protection
1,000 calls Measured over

Google Local is served through a dedicated plugin endpoint rather than the generic page fetch. Give it a search phrase and a country and it returns the businesses Google shows in its local finder - each with name, rating, review count, price level, category, address, opening hours and a top review snippet. It runs on the same infrastructure as our SERP endpoint, so there is no Google Cloud project, billing account or Places API quota involved.

What you can extract

  • Business name, primary category and 1-based position in the local results
  • Star rating and review count (Google's "19K" expanded to 19000)
  • Price level as shown, e.g. "$10-20"
  • Street address and open/closed status line with hours
  • A top review snippet where present

Dedicated endpoints

/maps/google-local

Local business results

Up to ~20 businesses for a search phrase and market, with rating, reviews, category, address and hours. Pass proxy_country to pick the market - local results are location-sensitive.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/maps/google-local?keyword=coffee%20shops%20in%20chicago&proxy_country=US&gl=us"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/maps/google-local",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"keyword": "coffee shops in chicago", "proxy_country": "US", "gl": "us"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const results = await su.googleLocal('coffee shops in chicago', {
  proxyCountry: 'US',
  gl: 'us',
});
console.log(results);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "keyword": "coffee shops in chicago",
  "proxyCountry": "US",
  "resultsCollected": 20,
  "results": [
    {
      "position": 1,
      "name": "Starbucks Reserve Roastery",
      "rating": 4.4,
      "reviews": 19000,
      "price": "$10-20",
      "category": "Coffee shop",
      "address": "646 N Michigan Ave",
      "phone": "(312) 646-0184",
      "website": "https://www.starbucksreserve.com/",
      "hours": "Closed - Opens 6:30 AM",
      "review_snippet": "The wide variety of coffee, food, drinks, and alcohol is out of this world.",
      "sponsored": false
    }
  ]
}

Read the API docs

Frequently asked questions

Is it legal to scrape Google Local?

Collecting publicly available Google Local data such as business names, ratings and addresses is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape Google Local without getting blocked?

Google uses in-house anti-bot protection on its local results. The Google Local plugin deals with it: ScrapeUnblocker rotates residential and ISP exits and handles challenges, then returns the businesses as JSON. In ScrapeUnblocker's benchmark it returned real content on 89.1% of 1,000 calls, about 3.9s per call. A 403 means a CAPTCHA after retries; try another proxy_country.

What Google Local data can I get?

The /maps/google-local endpoint returns up to about 20 businesses for a search phrase. Each has a 1-based position, name, star rating, review count as an integer, price level, primary category, street address, phone and website where Google shows them, the open or closed status line with hours, a top review snippet and a sponsored flag.

Do I need a Google API key or account?

No. The Google Local plugin returns local business listings as JSON without a Google Cloud project, billing account or API key on your side. Send a keyword such as coffee shops in chicago to /maps/google-local with your ScrapeUnblocker key and the businesses come back already parsed.

Can I get Google Local results for a specific country?

Yes. Local results depend on location, so pass proxy_country with a two-letter code such as US or GB for the market you want, and optionally gl for Google's country of search and hl for the interface language, which defaults to en. A search from a US exit returns US businesses.

How much does it cost to scrape Google Local?

One request returns up to about 20 businesses, and 1 request = 1 credit: EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. Blocks and timeouts are not billed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.