Google Maps Restaurant Scraper — Reviews, Phones & Leads avatar

Google Maps Restaurant Scraper — Reviews, Phones & Leads

Pricing

from $3.20 / 1,000 results

Go to Apify Store
Google Maps Restaurant Scraper — Reviews, Phones & Leads

Google Maps Restaurant Scraper — Reviews, Phones & Leads

Scrape restaurants from Google Maps with phones, websites, ratings, hours and top reviews to build a restaurant database or lead list. about USD 4 per 1,000.

Pricing

from $3.20 / 1,000 results

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

3

Monthly active users

14 days ago

Last modified

Features

Limited permissions

Share

Google Maps Restaurant Scraper searches Google Maps for restaurants in any city and returns each one as a clean record: name, phone, website, address, coordinates, star rating, review count, cuisine categories, opening hours, open-now state and up to 5 top reviews. It is built for restaurant suppliers, POS and delivery sales teams, agencies and researchers who need a restaurant database or lead list, and it costs about USD 4.00 per 1,000 restaurants on the FREE tier (USD 0.004001 each), reviews included.

What data does Google Maps Restaurant Scraper return?

Each restaurant is one dataset row:

FieldExampleNotes
restaurant_nameUmi Sake House
phone+12063748717International format
websitehttp://www.umisakehouse.com/
address, city, state, postal_code, countrySeattle, Washington, 98121
latitude, longitude47.6133, -122.3461
rating, review_count4.6, 4790Google star rating and total reviews
rating_distribution{"1": 105, … "5": 3509}Count of 1–5 star reviews (with reviews on)
reviewsup to 5 objectsReviewer name, stars, date, text, language, owner reply
cuisine_typeSushi restaurant, Bar, RestaurantGoogle Maps categories
opening_hours, is_open{"Monday": "4–11 PM"}, trueWeekly hours and open state at scrape time
descriptionSleek spot for inventive sushi rolls…Google summary or owner description
google_maps_url, place_idhttps://www.google.com/maps/place/?q=place_id:ChIJ…Stable IDs for deduplication and CRM matching
photosphoto URLsOnly when Include photo URLs is on
price_level, menu_url$$, https://…Only when Google Maps shows them; often null
scraped_at, source_urlISO time, search URL

Each run also writes an OUTPUT record with the outcome (DATA, EMPTY, BLOCKED, FAILED or REJECTED), counts of restaurants and reviews delivered, and any warnings.

How do I scrape restaurants from Google Maps into a spreadsheet?

Enter a restaurant type and a location, set how many restaurants you want, run, and download the dataset as CSV, Excel or JSON.

  1. What to search for: restaurants, sushi, vegan restaurants, pizza delivery or a restaurant name.
  2. Location: a city, neighborhood or region, such as Austin, TX or Manhattan, NY. For a ZIP code, include the city (Beverly Hills, CA 90210).
  3. Max restaurants: 1–120. Start small to check the output.
  4. Keep Include top reviews on for review data, or turn it off for a faster lead list.
  5. Language: a code such as en, es, fr or de for categories, hours and review dates.
{
"searchQuery": "sushi",
"location": "Austin, TX",
"maxResults": 20,
"scrapeReviews": true,
"maxReviewsPerPlace": 5,
"language": "en"
}

Small searches of 3–30 restaurants finished in 2–6 seconds in recent test runs.

Does it work as a Google Maps reviews scraper?

Yes, for a sample of reviews: with Include top reviews on (the default), every restaurant carries the reviews Google Maps shows first, the 1–5 star breakdown and the description, at no extra cost. Google Maps shows logged-out visitors at most 5 reviews per place, so this Actor returns up to 5 top reviews per restaurant, not the full review history. It does not log in to Google.

When should I use it, and when not?

Use it when you need restaurants in a city or neighborhood with phones, websites, ratings, hours and a representative review sample, for lead lists, market maps or competitor research.

Use another Actor when:

How do I run it from code?

JavaScript with apify-client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/google-maps-restaurant-scraper').call({
searchQuery: 'pizza',
location: 'Chicago, IL',
maxResults: 50,
scrapeReviews: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]?.restaurant_name, items[0]?.phone);

Python with apify-client:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("muhammadafzal/google-maps-restaurant-scraper").call(run_input={
"searchQuery": "ramen",
"location": "Seattle, WA",
"maxResults": 30,
})
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["restaurant_name"], item.get("rating"), len(item.get("reviews") or []))

Schedules, webhooks, Make, Zapier and Google Sheets integrations work with the same input.

Use it from an AI assistant

Google Maps Restaurant Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single-tool URL https://mcp.apify.com/?tools=muhammadafzal/google-maps-restaurant-scraper to your client and ask, for example: "List 40 Thai restaurants in Portland, OR with phone, website, rating and their top reviews in a spreadsheet." The assistant starts the run and returns the rows; each restaurant is charged at the prices below.

Output example

Two shortened records:

[
{
"restaurant_name": "Umi Sake House",
"place_id": "ChIJlwUFuk0VkFQRzdTvH0McgL0",
"address": "Umi Sake House, 2230 1st Ave, Seattle, WA 98121",
"city": "Seattle",
"state": "Washington",
"postal_code": "98121",
"country": "United States",
"phone": "+12063748717",
"website": "http://www.umisakehouse.com/",
"rating": 4.6,
"review_count": 4790,
"cuisine_type": "Sushi restaurant, Bar, Restaurant",
"opening_hours": { "Monday": "4–11 PM", "Friday": "4 PM–12 AM" },
"is_open": true,
"rating_distribution": { "1": 105, "2": 103, "3": 225, "4": 848, "5": 3509 },
"reviews": [
{
"reviewer_name": "Reviewer public name",
"rating": 5,
"date": "4 months ago",
"published_at": "2026-06-01T23:13:07.538Z",
"text": "The absolute best sushi I have ever had…",
"language": "en",
"owner_response": null
}
],
"source_url": "https://www.google.com/maps/search/ramen%20in%20Seattle%2C%20WA?hl=en&gl=us"
},
{
"restaurant_name": "Sample Noodle Bar",
"city": "Seattle",
"phone": "+12065550133",
"website": null,
"rating": 4.3,
"review_count": 812,
"price_level": null,
"cuisine_type": "Ramen restaurant",
"is_open": false,
"reviews": null
}
]

Pricing: how much does it cost per restaurant?

Google Maps Restaurant Scraper uses pay-per-event pricing. Platform usage is included; there is no separate usage charge.

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMOND
Restaurant result (one dataset record, reviews included)USD 0.004001USD 0.0039USD 0.0038USD 0.0032
Actor start (per started GB of allocated memory; one event at the default 256 MB)USD 0.006251USD 0.006094USD 0.005938USD 0.005

Worked totals on the FREE tier at the default memory:

  • 20 restaurants: 20 × USD 0.004001 + USD 0.006251 = USD 0.086
  • 120 restaurants (one full search): 120 × USD 0.004001 + USD 0.006251 = USD 0.486

Empty, blocked and failed searches produce no result events. If your maximum cost per run allows fewer restaurants than you asked for, the Actor lowers the limit before it starts.

What happens when a search is blocked or returns few results?

The Actor retries and switches to an alternative access route automatically. If Google still refuses, the run ends with a BLOCKED status in OUTPUT, keeps any restaurants already delivered, and charges nothing for undelivered results. If reviews for some restaurants cannot be fetched, the place data is still delivered and OUTPUT lists a warning. When Google Maps lists fewer restaurants than requested, OUTPUT says so.

FAQ

Is there a free Google Maps restaurant scraper?

You can try this Actor on Apify's free plan. Each delivered restaurant is one result event at the prices above, up to 120 restaurants per search.

How many reviews do I get per restaurant?

Up to 5: the reviews Google Maps shows first to visitors who are not logged in. You also get the total review count and the 1–5 star breakdown.

How many restaurants can one search return?

About 120, because that is how many places Google Maps lists per search. For more coverage, run narrower locations (neighborhoods or ZIP codes with the city) or cuisines, and deduplicate on place_id.

Why did my search return fewer restaurants than I asked for?

Google Maps decides how many places match. Bare ZIP codes and small towns often return only a few; add the city or broaden the query. You pay only for restaurants delivered.

Does it extract email addresses?

No. It returns phone numbers and websites as shown on Google Maps.

Can I search outside the United States?

Yes. Put any city or country in Location, for example Paris, France, and set Language for localized text.

Other local-business lead tools from the same developer:

The Actor collects publicly visible business information and public reviews; it does not log in or bypass access controls. Reviews contain personal data such as reviewer names, so make sure your use complies with the laws that apply to you (for example GDPR) and with your intended purpose. This is not legal advice.

Last verified: 2026-10-26