Google Maps Reviews Scraper with Photos & Videos avatar

Google Maps Reviews Scraper with Photos & Videos

Pricing

from $0.20 / 1,000 reviews

Go to Apify Store
Google Maps Reviews Scraper with Photos & Videos

Google Maps Reviews Scraper with Photos & Videos

Scrape every review of any business on Google Maps: star rating, full text, reviewer name and profile, owner responses, review photos, videos and dates. Paste a Maps URL or place ID, choose how to sort, and export clean JSON.

Pricing

from $0.20 / 1,000 reviews

Rating

0.0

(0)

Developer

VeroAPIs

VeroAPIs

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

1

Monthly active users

a day ago

Last modified

Share

Google Maps Reviews Scraper — every review, with photos, videos and owner replies

Google Maps Reviews Scraper extracts the reviews of any business on Google Maps: star rating, full text with translation, reviewer profile, owner reply with its date, photos, playable videos, food/service/atmosphere scores and visit details. Download them as JSON, CSV, Excel or XML. No coding, no Google account and no API key needed.

Try it right away: paste a Google Maps link into the input form, click Start, and watch the dataset fill up with structured reviews.

What you can do

  • Get every review of a business, or just the latest 100, sorted the way you want.
  • Track new reviews on a schedule with Only reviews since, for example "7 days" on a weekly run.
  • Collect photos and videos customers posted, with playable video links.
  • See how owners respond: reply text and reply date on every answered review.
  • Analyze restaurants and venues in depth with Food, Service and Atmosphere scores, price per person, wait time and more.
  • Work across languages: every review comes in its original language plus a translation into the language you pick.
  • Join with your own data using the Google Place ID, CID, Maps ID and a structured address (street, city, postal code, country).

What data does it extract?

Each result is one review, with the business it belongs to nested in a place object:

DataDetails
💬 Reviewstar rating, full text in its original language, translation into your result language, language code, review link
🗓️ Datewhen the review was posted (ISO 8601)
👤 Reviewername, profile link, photo, contributor ID, number of reviews written, Local Guide status
🏢 Owner replythe business's reply text and the date it was posted
📷 Photos & videosevery photo and video attached to the review: image links, playable video links, preview images and captions
⭐ Detailed ratingsseparate scores such as Food, Service and Atmosphere, when the reviewer gave them
🧾 Visit detailsthe reviewer's answers about the visit: order type, meal type, price per person, wait time, parking, and more
📍 Businessname, full address and its parts, categories, coordinates, average rating, total review count, Maps ID, Google Place ID, CID, Knowledge Graph ID, Maps link

How do I scrape Google Maps reviews?

  1. Add a place: paste one or more Google Maps links (google.com/maps/place/…, maps.google.com/?cid=…, or short maps.app.goo.gl links). You can also add Google Place IDs (ChIJ…) or Maps IDs (0x…:0x…).
  2. Choose how many: set Maximum reviews per place, or use 0 to get all of them.
  3. Pick a sort order: Most relevant, Newest, Highest rating or Lowest rating.
  4. Narrow it down (optional): keep only reviews since a date, only reviews with text, only reviews with text and photos or videos, or only reviews that mention a keyword.
  5. Click Start, then download the results from the Output tab in any format, or send them anywhere with integrations.

Open Google Maps, search for the business, click it, and copy the link from your browser's address bar. On a phone, tap Share and copy the link: the short maps.app.goo.gl link works just as well.

Input example

{
"startUrls": [
{ "url": "https://www.google.com/maps/place/Katz's+Delicatessen/@40.722233,-73.987429,17z/data=!4m6!3m5!1s0x89c2598f7ff4aa09:0x313547e757cb8cea!8m2!3d40.722233!4d-73.987429" }
],
"maxReviews": 100,
"reviewsSort": "newest",
"language": "en",
"personalData": true
}

Monitor new reviews every week (pair it with an Apify schedule):

{
"placeIds": ["ChIJCar0f49ZwokR6ozLV-dHNTE"],
"reviewsStartDate": "7 days",
"maxReviews": 0
}

Output example (abridged)

{
"place": {
"placeId": "0x89c2598f7ff4aa09:0x313547e757cb8cea",
"googlePlaceId": "ChIJCar0f49ZwokR6ozLV-dHNTE",
"cid": "3545819340560108778",
"kgmid": "/m/03tx_h",
"title": "Katz's Delicatessen",
"address": "205 E Houston St, New York, NY 10002",
"neighborhood": "Manhattan",
"street": "205 E Houston St",
"city": "New York",
"postalCode": "10002",
"state": "New York",
"countryCode": "US",
"categoryName": "Deli",
"categories": ["Deli", "American restaurant", "Jewish restaurant", "Restaurant", "Sandwich shop"],
"location": { "lat": 40.722233, "lng": -73.987429 },
"totalScore": 4.5,
"reviewsCount": 56258,
"url": "https://www.google.com/maps?cid=3545819340560108778&hl=en"
},
"reviewId": "Ci9DQUlRQUNvZENodHljRjlvT2t0Nk9YQXpPR3BpVG5CYVNYazRaMFpLYjJKMU1IYxAB",
"reviewUrl": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2t0Nk9YQXpPR3BpVG5CYVNYazRaMFpLYjJKMU1IYxAB…",
"reviewer": {
"id": "1000…",
"name": "Jane D.",
"url": "https://www.google.com/maps/contrib/1000…/reviews",
"photoUrl": "https://lh3.googleusercontent.com/…",
"numberOfReviews": 35,
"isLocalGuide": true
},
"stars": 5,
"text": "Best pastrami in NYC. The line moves fast and the portions are huge.",
"textTranslated": null,
"originalLanguage": "en",
"publishedAtDate": "2026-07-24T10:18:14.112Z",
"reviewDetailedRating": { "Food": 5, "Service": 5, "Atmosphere": 5 },
"reviewContext": { "Meal type": "Lunch", "Price per person": "$30–40", "Wait time": "10-30 min" },
"reviewImageUrls": ["https://lh3.googleusercontent.com/grass-cs/…=k-no"],
"reviewVideoUrls": ["https://lh3.googleusercontent.com/gpms-cs-s/…=m18"],
"reviewMedia": [
{ "type": "photo", "url": "https://lh3.googleusercontent.com/grass-cs/…=k-no", "thumbnailUrl": "https://lh3.googleusercontent.com/grass-cs/…=k-no", "caption": null },
{ "type": "video", "url": "https://lh3.googleusercontent.com/gpms-cs-s/…=m18", "thumbnailUrl": "https://lh3.googleusercontent.com/grass-cs/…=k-no", "caption": null }
],
"reviewOrigin": "Google",
"responseFromOwnerText": "We're so glad you enjoyed your first visit! Hope to see you back soon for another pastrami fix.",
"responseFromOwnerDate": "2026-07-30T20:02:40.000Z"
}

The Output tab shows two ready-made tables: Reviews (business, reviewer, stars, text, date, owner reply, review link) and Photos and videos.

Input reference

FieldTypeDescription
startUrlsarrayGoogle Maps links to the businesses you want, one business per link. Short maps.app.goo.gl links work.
placeIdsarrayGoogle Place IDs (ChIJ…), Maps IDs (0x…:0x…) or Maps links, if you'd rather list places by ID.
maxReviewsintegerReviews per place. 0 = all of them. Default 100. Counts only reviews kept after your filters.
reviewsSortstringmostRelevant, newest, highestRanking or lowestRanking. Default mostRelevant.
reviewsStartDatestringOnly reviews posted since this date: 2026-09-01, or a span like 30 days. Reviews then come newest first.
reviewsContentFilterstringall, textOnly (has text) or textAndMedia (has text and at least one photo or video). Default all.
searchQuerystringKeep only reviews that mention this word or phrase (e.g. delivery), in the original text or its translation. Leave empty for all.
languagestringLanguage code for business details and translations, e.g. en, fr, de, es. Default en.
personalDatabooleanInclude reviewer name, profile link, photo, ID and the review link. Default true.

Why scrape Google Maps reviews?

  • Reputation monitoring: track what customers say about your locations, week after week.
  • Competitor analysis: benchmark ratings, complaints and owner responsiveness against nearby businesses.
  • Customer insight and sentiment analysis: mine review text for recurring praise and complaints.
  • Feed AI and LLM tools: hand clean, structured reviews to your summarizer, classifier or chatbot.
  • Restaurant and venue analytics: compare Food, Service and Atmosphere scores, prices and wait times.
  • Market and location research: see how busy, loved or criticized a place is before you open next door.

Use it as a Google Maps Reviews API

Call it from your own code and get reviews back as JSON. In Python, with the Apify client (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("vero-api/google-maps-reviews-scraper").call(run_input={
"startUrls": [{"url": "https://maps.google.com/?cid=3545819340560108778"}],
"maxReviews": 50,
"reviewsSort": "newest",
})
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["stars"], item["publishedAtDate"], item["text"])

The same works from JavaScript, any HTTP client, Make, n8n or Zapier. Your token is under Settings → API & Integrations in Apify Console.

Use it from your AI assistant (MCP)

Ask Claude, Cursor, VS Code or any assistant that supports MCP about a business's reviews in plain words. Add this server to its MCP settings:

{
"mcpServers": {
"google-maps-reviews-scraper": {
"url": "https://mcp.apify.com?tools=vero-api/google-maps-reviews-scraper"
}
}
}

Then just ask, for example:

  • "What do people complain about most in the last 100 reviews of Katz's Delicatessen?"
  • "How fast does this hotel reply to bad reviews?"
  • "Compare the Food and Service scores of these three restaurants."

Integrations

Send results to Google Sheets, Slack, Airtable, a webhook or your database with Apify integrations, or pull them through the API. Pair the actor with an Apify schedule and Only reviews since to get each week's new reviews automatically.

Pricing

You pay per review delivered: $0.25 per 1,000 reviews, plus a start fee of $0.00005 per run. Set Maximum reviews per place or a spending limit to stay in control: the run stops exactly there.

FAQ

Do I need a Google account or API key? No. Paste a Google Maps link and click Start.

Can I get all reviews of a place? Yes. Set Maximum reviews per place to 0. Each place comes in at roughly 300 reviews a minute, and up to 10 places are collected side by side.

Do short maps.app.goo.gl links work? Yes. Links from the Share button, full Maps links, ?cid= links, Google Place IDs and Maps IDs all work.

Can I get only new reviews? Yes. Set Only reviews since to a date or a span like 7 days, and schedule the run. Reviews then come newest first and the run stops at your date.

Do I get review videos? Yes. Each video comes with a playable link and a preview image, and photos come as image links.

Do I get the owner's reply date? Yes, next to the reply text, whenever the owner answered.

What about reviews in other languages? Every review keeps its original text and language code, and reviews written in another language also come translated into your result language.

Does the keyword search use Google's search? It checks every collected review for your word or phrase, in the original text and in the translation, and keeps the ones that mention it.

What links does it accept? One business per link. To get reviews for a list like "coffee shops in Paris", open each business on Google Maps and paste its link.

Can I leave out personal data? Yes. Reviewer details are already public on Google Maps, but if you don't need them, turn off Include reviewer details and the reviewer's name, profile, photo, ID and the review link are left out.

Is this an official Google product? No. This actor is not affiliated with, endorsed by or sponsored by Google. Google Maps is a trademark of Google LLC.

More tools from us