# Google Maps Review Scraper (`scrapesmith/google-maps-reviews-scraper`) Actor

Extract all reviews from Google Maps place URLs, including review text, date, rating, reviewer name and profile link, owner responses, and review URLs — with full API support, scheduling, monitoring, and data download capabilities.

- **URL**: https://apify.com/scrapesmith/google-maps-reviews-scraper.md
- **Developed by:** [Scrape Smith](https://apify.com/scrapesmith) (community)
- **Categories:** Automation, Social media
- **Stats:** 343 total users, 26 monthly users, 100.0% runs succeeded, 7 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.30 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google Maps Reviews Scraper

Extract thousands of Google Maps reviews in minutes — no API key, no browser automation, no cookies required. Get review text, star ratings, reviewer profiles, owner replies, photos, and structured attributes for any Google Maps place.

***

### What is Google Maps Reviews Scraper?

**Google Maps Reviews Scraper** is a fast, reliable Apify Actor that lets you scrape public reviews from any Google Maps location at scale. Whether you need 50 reviews or 50,000, this tool handles it — with built-in pagination, smart request throttling, and automatic state saving so runs can resume exactly where they left off.

No browser. No Puppeteer overhead. No API quotas. Just clean, structured review data delivered straight to your dataset.

***

### What data does it extract?

Every review record includes:

| Field | Description |
|---|---|
| ⭐ `rating` | Star rating (1–5) |
| 📝 `text` | Full review text |
| 📅 `publishedAt` | Relative date ("3 months ago") |
| 🕐 `publishedAtIso` | Exact UTC timestamp |
| 🔄 `updatedAtIso` | Last edit timestamp |
| 👤 `authorName` | Reviewer's display name |
| 🆔 `authorId` | Reviewer's Google ID |
| 🔗 `authorUrl` | Link to reviewer's profile |
| 🖼 `authorPhoto` | Reviewer's profile photo URL |
| 🏅 `authorBadge` | Local Guide badge (if any) |
| ✍️ `authorReviewCount` | Total reviews written by this author |
| 📸 `authorPhotoCount` | Total photos uploaded by this author |
| 👍 `likesCount` | Number of helpful votes on the review |
| 🖼 `photos` | All photos attached to the review |
| 💬 `ownerReply` | Owner's response text (if any) |
| 🗂 `attributes` | Structured ratings (Food, Service, Atmosphere, etc.) |

***

### How to scrape Google Maps reviews

**Step 1** — Create a free [Apify account](https://apify.com)

**Step 2** — Open **Google Maps Reviews Scraper**

**Step 3** — Paste one or more Google Maps place URLs

**Step 4** — Set your review limit and sort order, then click **Start**

**Step 5** — Download your data as JSON, CSV, Excel, or XML

That's it. No setup, no credentials, no configuration headaches.

***

### Input options

#### Place URLs *(required)*

Paste the full Google Maps URL of any place — restaurant, hotel, hospital, shop, park, or any other listed location. You can add as many URLs as you need.

```
https://www.google.com/maps/place/Colosseum/@41.8902102,12.4922309,17z/...
```

#### Place IDs *(alternative)*

If you already have raw Google Maps place IDs, you can supply those directly instead of full URLs.

#### Max Reviews Per Place

Set a cap on how many reviews to collect per location. Set to **0** for unlimited scraping (subject to your plan quota).

#### Sort Order

Choose how reviews are ordered before scraping:

| Option | What you get |
|---|---|
| **Most Relevant** *(default)* | Google's default ranking — typically highest-quality reviews first |
| **Newest** | Most recently posted reviews first — ideal for monitoring |
| **Highest Rating** | 5-star reviews first |
| **Lowest Rating** | 1-star reviews first — great for complaint analysis |

> 💡 **Tip:** Use **Newest** sort for ongoing monitoring pipelines. Use **Lowest Rating** to quickly surface common complaints for reputation management.

***

### Output format

Results are saved to an Apify dataset and can be exported in:

- **JSON** — best for developers and API integrations
- **CSV / Excel** — best for business analysts and spreadsheet workflows
- **XML** — best for enterprise data pipelines
- **HTML** — best for quick visual review

Sample output record:

```json
{
  "placeId": "0x132f61b6532013ad:0x28f1c82e908503c4",
  "placeName": "Colosseum",
  "reviewId": "ABC123xyz",
  "authorName": "Jane Smith",
  "authorReviewCount": 142,
  "authorBadge": "Local Guide",
  "rating": 5,
  "text": "One of the most breathtaking historical sites I have ever visited. The guided tour was worth every penny.",
  "publishedAt": "2 months ago",
  "publishedAtIso": "2025-01-14T09:23:11Z",
  "updatedAtIso": "2025-01-14T09:23:11Z",
  "likesCount": 18,
  "photos": ["https://lh3.googleusercontent.com/..."],
  "ownerReply": null,
  "attributes": {
    "Service": "Excellent",
    "Value": "Good"
  }
}
```

***

### Key features

- **No API key required** — works out of the box with zero configuration
- **Resumes automatically** — if a run is interrupted, it picks up from the last saved cursor
- **Handles pagination** — scrapes all pages of reviews, not just the first 10
- **Multiple sort modes** — most relevant, newest, highest, or lowest rated
- **Structured attributes** — captures per-category ratings (Food, Service, Atmosphere, etc.) where available
- **ISO timestamps** — precise publish and update times, not just "3 months ago"
- **Owner replies** — captures the business response alongside the review
- **Bulk input** — scrape dozens or hundreds of locations in a single run
- **Rate limiting built in** — configurable request delays to ensure stable, long-running scrapes

***

### Use cases

#### 📊 Sentiment analysis

Collect thousands of reviews across competitor locations and run NLP to identify what customers love and hate. Understand sentiment trends over time by combining **Newest** sort with scheduled runs.

#### 🏆 Competitive intelligence

Compare star ratings, review volumes, and common complaints across competing businesses in the same category or city. Identify your competitors' weakest points and your strongest differentiators.

#### 🛎 Reputation management

Monitor new reviews as they appear. Set up scheduled scraping with **Newest** sort to catch every new review within hours of posting, then trigger alerts or CRM workflows via Apify integrations.

#### 📈 Market research

Discover what customers in a specific city or vertical actually care about — in their own words. Use review text to validate product ideas, pricing strategies, and service improvements.

#### 🎯 Lead generation

Identify businesses with consistently poor reviews as warm leads for your B2B service. Filter by rating to build targeted outreach lists.

#### 📍 Multi-location performance tracking

Scrape reviews across all franchise or branch locations and compare performance side by side. Spot underperforming locations before problems escalate.

#### ✍️ Content and marketing

Extract authentic, high-scoring customer quotes to use as testimonials or social proof in marketing materials (always ensure compliance with applicable terms of use).

***

### Integrations

Google Maps Reviews Scraper connects natively with the full Apify ecosystem:

- **Google Sheets** — stream reviews directly into a spreadsheet in real time
- **Zapier / Make** — trigger downstream workflows the moment a run completes
- **Slack** — get notified when new reviews are scraped
- **Airbyte** — pipe data into your data warehouse
- **Google Drive** — auto-save exports to Drive
- **Webhooks** — call any endpoint when a run finishes or fails

***

### Frequently asked questions

**Does this require a Google account or API key?**
No. Google Maps Reviews Scraper requires no credentials of any kind. Just paste your place URLs and run.

**How many reviews can I scrape?**
There is no hard ceiling imposed by this Actor. The number of reviews available depends on how many the place has on Google Maps. Some popular locations have tens of thousands. The Actor will paginate through all of them up to your configured limit.

**Can I scrape multiple places at once?**
Yes. Add as many place URLs as you need. The Actor processes them sequentially and tracks progress per place, so if a run is interrupted it resumes from where it left off.

**What happens if a run is interrupted?**
The Actor saves its cursor position after every page. If a run stops for any reason, the next run will resume from the last successfully saved position — no reviews are duplicated or skipped.

**Can I filter reviews by language or rating?**
Filtering by rating is supported via the Sort Order input (Highest/Lowest Rating). Language filtering is not currently built in, but you can filter the output dataset by the `rating` field after scraping.

**Is this against Google's Terms of Service?**
This Actor scrapes only publicly visible information on Google Maps. You are responsible for ensuring your use of the data complies with Google's Terms of Service and applicable laws in your jurisdiction.

**How do I use this with the Apify API?**
Full programmatic access is available via the [Apify API](https://docs.apify.com/api/v2). You can start runs, poll for results, and download datasets using the REST API or the official `apify-client` libraries for Node.js and Python.

***

### Feedback and support

Found a bug or have a feature request? Open an issue on the **Issues** tab in Apify Console. We read every report and prioritize fixes based on user impact.

## If this Actor saved you time, leave a review on the Apify Store — it helps other users find it.

### Google Maps Reviews Scraper vs Other Methods

| Feature | Google Maps Reviews Scraper | Manual Copy-Paste | Browser Extensions | Official API |
|---------|-------------|-------------------|-------------------|-------------|
| Bulk extraction | Unlimited | One at a time | Limited | Rate-limited |
| No login needed | Yes | Yes | Often required | Key required |
| API access | REST API + SDKs | No | No | Yes |
| Export formats | CSV, JSON, Excel, XML | None | CSV only | JSON only |
| Scheduling | Automated (cron) | Manual | Manual | Manual |
| Cost | $0.50/1k results | Free but slow | $20-50/month | Free + limits |
| Proxy handling | Built-in | N/A | N/A | N/A |

***

### Tips for Best Results with Google Maps Reviews Scraper

- **Start small** — test with a small batch first to verify the output matches your needs before running large jobs
- **Use Bulk Edit** — paste hundreds of URLs or inputs at once instead of adding them one by one
- **Schedule regular runs** — set up automated daily or weekly scrapes to keep your dataset fresh
- **Export to Google Sheets** — use the built-in Google Sheets integration for easy sharing and analysis
- **Combine with other scrapers** — pair this tool with other Instagram, YouTube, or social media scrapers for a complete dataset

***

**Can I use Google Maps Reviews Scraper for free?**
Yes. Every new Apify account gets $5 in free monthly credits. Free accounts are limited to 100 results per run on this Actor. Upgrade to any paid plan to remove the limit.

**How to scrape Google Maps reviews without coding?**
Just paste your URLs or search terms into the input form, click Start, and download the results. No code, no terminal, no technical skills required. You can also use the REST API or Python/Node.js SDKs if you prefer to code.

**Is there a Google Maps reviews API?**
Yes. This Actor provides a full REST API. You can trigger runs, check status, and download results programmatically from any language. See the API tab on this Actor's page for endpoints and examples.

**How much does it cost to scrape Google Maps reviews?**
Pricing is pay-per-result at $0.50 per 1,000 results. You only pay for the data you receive. There are no monthly subscriptions or hidden fees. Free accounts get $5/month in credits.

**Can I integrate Google Maps reviews scraping into my workflow?**
Yes. This Actor integrates with Make.com, Zapier, n8n, Google Sheets, webhooks, and any REST API client. You can automate Google Maps reviews extraction as part of any data pipeline.

# Actor input Schema

## `placeUrls` (type: `array`):

Full Google Maps URLs to scrape reviews from

## `placeIds` (type: `array`):

Raw Google Maps place IDs if you don't have full URLs. Expected format: 0x3e5f43348a67e24b:0xff45e502e1ceb7e2

## `maxReviews` (type: `integer`):

Maximum reviews to scrape per place. Set to 0 for unlimited.

## `sortBy` (type: `string`):

Order in which reviews are scraped from Google Maps.

## Actor input object example

```json
{
  "placeUrls": [
    "https://www.google.com/maps/place/Colosseum/@41.8902102,12.4922309,17z/data=!4m8!3m7!1s0x132f61b6532013ad:0x28f1c82e908503c4"
  ],
  "maxReviews": 10,
  "sortBy": "mostRelevant"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "placeUrls": [
        "https://www.google.com/maps/place/Colosseum/@41.8902102,12.4922309,17z/data=!4m8!3m7!1s0x132f61b6532013ad:0x28f1c82e908503c4"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesmith/google-maps-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "placeUrls": ["https://www.google.com/maps/place/Colosseum/@41.8902102,12.4922309,17z/data=!4m8!3m7!1s0x132f61b6532013ad:0x28f1c82e908503c4"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapesmith/google-maps-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "placeUrls": [
    "https://www.google.com/maps/place/Colosseum/@41.8902102,12.4922309,17z/data=!4m8!3m7!1s0x132f61b6532013ad:0x28f1c82e908503c4"
  ]
}' |
apify call scrapesmith/google-maps-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesmith/google-maps-reviews-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/MNr9yAaSQz6LKVlO3/builds/Mr83pXpIPrNkbTNiz/openapi.json
