# Google Maps Reviews Scraper (`hichemdev/google-reviews-scraper`) Actor

Scrape all reviews for any business on Google Maps - reviewer name, star rating, review text, date, and the owner's reply. Provide place URLs (e.g. from the Google Maps Leads Extractor) or a search term. Sort by newest for reputation monitoring.

- **URL**: https://apify.com/hichemdev/google-reviews-scraper.md
- **Developed by:** [Hichem Ben Moussa](https://apify.com/hichemdev) (community)
- **Categories:** AI, SEO tools, Social media
- **Stats:** 2 total users, 1 monthly users, 89.5% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

**Export every Google review for any business — reviewer name, star rating, full text, date, and the owner's reply — as clean CSV, Excel, JSON, or Google Sheets.**

Give it a Google Maps place URL (or just a business name + city) and get back a structured list of reviews you can analyze, monitor, or feed into a dashboard. Sort by **newest** to catch fresh feedback the moment it lands.

***

### ✨ What you get for every review

| Field | Example |
|---|---|
| **Business** | Jo's Coffee |
| **Reviewer** | Laura Elash |
| **Rating** ⭐ | 5 |
| **Date** | Edited 4 hours ago |
| **Review text** | "Great place to grab coffee and take a photo out front…" |
| **Owner reply** | "Thanks Laura — see you again soon!" |
| **Place URL** | direct link to the listing |

***

### 🎯 Who it's for

- **Reputation monitoring** — track new reviews for your business (or a client's) and get alerted to anything below 4★.
- **Agencies & consultants** — pull review history for audits, pitches, and monthly reports.
- **Market & competitor research** — read what customers love and complain about across a whole niche.
- **Sentiment analysis / AI** — feed clean review text into an LLM or dashboard.
- **Local SEO** — see which locations respond to reviews and how fast.

***

### 🚀 How to use it

**Option A — you already have the listing:** paste one or more Google Maps place URLs into `placeUrls`.

**Option B — you don't:** enter `searchTerms` (e.g. `coffee shop`) + a `location` (e.g. `Austin, TX`), and it finds the businesses first, then scrapes their reviews.

Set `maxReviews`, keep `sortBy` on **newest** for monitoring, hit **Start**, and export.

No Google account, no API key, no cookies to paste.

***

### 📥 Example input

```json
{
  "placeUrls": ["https://www.google.com/maps/place/Jo's+Coffee/..."],
  "maxReviews": 100,
  "sortBy": "newest",
  "language": "en",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

Or search instead of pasting a URL:

```json
{
  "searchTerms": ["coffee shop"],
  "location": "Austin, TX",
  "maxPlaces": 5,
  "maxReviews": 50,
  "sortBy": "newest"
}
```

***

### 📤 Example output

Each result is one review:

```json
{
  "placeName": "Jo's Coffee",
  "placeUrl": "https://www.google.com/maps/place/Jo's+Coffee",
  "reviewId": "ChZDSUhNMG9nS...",
  "author": "Laura Elash",
  "rating": 5,
  "date": "Edited 4 hours ago",
  "text": "Great place to grab coffee and take a photo out front. Friendly staff and quick service.",
  "ownerReply": null
}
```

Export in one click to **CSV, Excel, JSON, XML, or Google Sheets**, or pull results via the **Apify API**.

***

### 🔌 Scheduling & monitoring

- **Schedule** the Actor (daily / weekly) to keep a live feed of new reviews.
- Combine with the **[Google Maps Leads Extractor](https://apify.com/hichemdev/google-maps-leads-extractor)** — scrape a whole niche, then pull everyone's reviews.
- Push results into a **spreadsheet, BI dashboard, or Slack alert** via the Apify API and integrations.

***

### ❓ FAQ

**Do I need a Google account or API key?**
No. Just a place URL, or a business name and city.

**Ratings and dates — what language?**
Reviews are read in the language set by `language` (default `en`), so dates come back like "4 days ago" and ratings as numbers 1–5. The rating parser is language-independent.

**Are duplicates removed?**
Yes — reviews are de-duplicated by Google's internal review ID.

**How many reviews can I get?**
Set `maxReviews` as high as you like. Google loads reviews in pages; very large businesses (10k+ reviews) are scraped in order from your chosen sort.

**Is this legal?**
It collects publicly visible reviews. You're responsible for using the data in line with applicable laws and Google's terms — reputation monitoring, research, and analytics are legitimate uses.

***

### 🗺️ Roadmap

- Reviewer profile URL & total-reviews count
- Filter by minimum/maximum star rating
- "Only new since last run" mode for monitoring
- Review photo URLs

***

*Built and maintained by [hichemdev](https://apify.com/hichemdev). Found a bug or want a feature? Open an issue on the Actor's **Issues** tab.*

# Actor input Schema

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

Google Maps place URLs to scrape reviews from. You can get these from the Google Maps Leads Extractor or by copying a place link.

## `searchTerms` (type: `array`):

Alternatively, search Google Maps for businesses instead of providing URLs, e.g. "coffee shop".

## `location` (type: `string`):

City / area used together with the search terms, e.g. "Austin, TX".

## `maxPlaces` (type: `integer`):

How many businesses to collect from each search term before scraping their reviews.

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

Maximum number of reviews to scrape per business.

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

Order reviews before scraping. Newest is best for monitoring.

## `language` (type: `string`):

Google Maps interface language code, e.g. en.

## `proxyConfiguration` (type: `object`):

Google Maps needs a proxy to run reliably. Residential recommended and included in your plan.

## Actor input object example

```json
{
  "placeUrls": [],
  "searchTerms": [
    "coffee shop"
  ],
  "location": "Austin, TX",
  "maxPlaces": 1,
  "maxReviews": 10,
  "sortBy": "newest",
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": [],
    "searchTerms": [
        "coffee shop"
    ],
    "location": "Austin, TX",
    "maxPlaces": 1,
    "maxReviews": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("hichemdev/google-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": [],
    "searchTerms": ["coffee shop"],
    "location": "Austin, TX",
    "maxPlaces": 1,
    "maxReviews": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("hichemdev/google-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": [],
  "searchTerms": [
    "coffee shop"
  ],
  "location": "Austin, TX",
  "maxPlaces": 1,
  "maxReviews": 10
}' |
apify call hichemdev/google-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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