# Google Maps Reviews | Google Reviews Scraper & Monitor (`aurelix/google-maps-reviews-scraper`) Actor

Scrape Google Maps reviews at $0.30 per 1,000 with this Google reviews scraper and daily review monitor. Many places per run by link, place ID or name: the reviews Google shows logged out (about 5 per place) with rating, text, exact date, likes and owner reply.

- **URL**: https://apify.com/aurelix/google-maps-reviews-scraper.md
- **Developed by:** [Aurelix](https://apify.com/aurelix) (community)
- **Categories:** Marketing, Business, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.25 / 1,000 review results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What is Google Maps Reviews Scraper?

**Google reviews scraper for the Google Maps reviews shown on each place: $0.30 per 1,000 reviews, many places per run, daily new-review monitor, no login.**

For local businesses, franchises and reputation agencies. Rating, text, exact date, likes and owner reply on every row. About 5 reviews per place: the ones Google shows logged out. Your first run with the example input costs about $0.005 (10 reviews in our test run).

[![Google Maps Reviews Scraper: 75-second demo video](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/google-maps-reviews-scraper-demo-thumb-v1.png)](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/google-maps-reviews-scraper-demo-v1.mp4)

**[▶ Watch the 75-second demo](https://api.apify.com/v2/key-value-stores/twkCCtTWzsi8fVbx5/records/google-maps-reviews-scraper-demo-v1.mp4)**

| | |
|---|---|
| **Reviews** | The reviews Google shows logged out: about 5 per place (sometimes up to 8), Google's most relevant |
| **Start from** | Google Maps links (incl. maps.app.goo.gl share links), place IDs (ChIJ...) or a place name with its city |
| **Per review** | Rating, text, written and updated dates, likes, photos count, owner reply and date, reviewer name |
| **Per place** | Name, place ID, address, category, average rating, total review count on every row |
| **Monitor** | Only-new-reviews mode, daily schedules, Slack/webhook digest, Zapier, Make, n8n, MCP |
| **Output** | 26 fields per review; JSON, CSV, Excel, API |
| **Price** | $0.30 per 1,000 reviews ($0.25 per 1,000 reviews on paid Apify plans) |
| **Free to try** | Runs on Apify's free plan: the $5 monthly credit covers about 16,000 reviews |
| **Login needed** | No |

### Daily monitor: only what's new, every morning

Set it once, get only the new reviews every morning. With **Only new reviews since last run** on, the first run returns the reviews Google shows on each place; each later run returns only reviews written or edited since the newest one an earlier run saw, so you pay for new ones plus $0.0001 for each place with nothing new.

```json
{
  "places": [
    "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
    "Museo Nacional del Prado Madrid"
  ],
  "onlyNewReviews": true,
  "stateKey": "my-places-daily"
}
```

1. Paste this input into the **Input** tab (JSON view) and click **Save as a new task**; it appears under **Saved tasks**.
2. Open the task from **Saved tasks** and click **Schedule**.
3. Choose **Daily**, pick the hour, and save.

**Cost example:** 100 places, about 40 new reviews a day across them ≈ $0.63/month on the free plan ($0.57 on paid plans): one run a day for 30 days, start fee included. The first run returns every review Google shows on each place (about 5), so it costs more.

Add a Slack incoming-webhook URL in `slackWebhookUrl` (or any URL in `webhookUrl`) to get a short digest of each run's new reviews; nothing is sent when a run finds nothing.

### Why Google Maps Reviews Scraper users pick this one

- **Many places, one run.** Links, place IDs or names with a city; one small start fee per run.
- **Daily review monitor.** Only-new mode returns and charges only reviews you have not seen.
- **Exact dates and replies.** ISO dates, likes, photos count, owner reply and its date.
- **Light and fast.** No browser and no login: hundreds of places in a few minutes.
- **Honest scope.** About 5 featured reviews per place, the ones Google shows logged out.

### Get started in 3 steps

1. Paste places into 'Places': Google Maps links, place IDs like ChIJb5gBC-u0RIYRHkntaUcdJGs, or a place name with its city like 'Museo Nacional del Prado Madrid'.
2. Optionally set 'Reviews per place', the order, 'Reviews newer than' and the language; turn on 'Only new reviews since last run' for daily monitoring.
3. Click Start, or schedule it daily. Download JSON, CSV or Excel, or send reviews to Google Sheets, Slack, Zapier, Make or n8n.

**[▶ Try it with the example input](https://apify.com/aurelix/google-maps-reviews-scraper)**

The form opens with an example input already filled in: that run costs about $0.005 on the free plan.

### How much does it cost to scrape Google Maps reviews?

Pay per event: you pay only for what the run returns, plus a small start fee. Bronze, Silver, Gold and higher Apify plans pay less per result.

| Reviews | Free plan | Paid plans (Bronze, Silver, Gold) |
|---|---|---|
| 100 | $0.032 | $0.027 |
| 1,000 | $0.30 | $0.25 |
| 10,000 | $3.00 | $2.50 |

Totals include the $0.002 start fee per run, rounded to the cent (amounts under $0.10 to 5 decimals). Apify's free plan includes $5 of credit a month, enough for about 16,000 reviews.

You pay per review returned ($0.30 per 1,000; $0.25 on paid plans), $0.0001 per place that had nothing to return (no review newer than your date, nothing new since the last run, or a name, ID or number Google Maps found no place for) and a small start fee per run (not per place). Worked examples on the free plan: 10 places, about 50 reviews = about $0.017; a daily 'Only new reviews' run on 100 places that finds 40 new reviews (70 places with nothing new) = about $0.021 (about $0.63 a month). Links to other sites, links that do not open, places Google did not answer for, duplicates and reviews you already received in 'Only new reviews' mode are never charged.

#### Billing events

| Event | Free plan | Paid plans (Bronze, Silver, Gold) |
|---|---|---|
| `review-result` | $0.30 per 1,000 reviews | $0.25 per 1,000 reviews |
| `empty-place` | $0.10 per 1,000 places with nothing to return | $0.10 per 1,000 places with nothing to return |
| `apify-actor-start` | $0.002 per run | $0.002 per run |

### Benchmarks: how we compare

| Test | Input | Result | Run time |
|---|---|---|---|
| First run (prefilled input) | 1 place ID and 1 place name | 10 reviews for $0.005 in total | 6 s |
| 200 places in 20 cities | 100 names with city and 100 place IDs | 1,072 reviews from 195 places | 151 s |
| Daily monitor, nothing new | 100 places, only-new repeat | 98 places with nothing new, $0.0098 in empty-place fees | 78 s |

Measured on Apify at 256 MB with the default datacenter proxy.

### What data you get

**Google Maps Reviews Scraper** reads the reviews Google Maps shows on a place to visitors who are not signed in, and returns one row per review: star rating, review text in the reviewer's own words, when it was written (an exact date and time, plus Google's 'a week ago' label), likes, number of photos, the business owner's reply and its date, and the reviewer's public display name with their Local Guide badge and review count. Every row also carries the place: name, Google place ID, address, category, average rating and total review count. Start from Google Maps links, place IDs or simply a place name with its city, and turn on 'Only new reviews since last run' to monitor many places every day. Google shows about 5 reviews per place to logged-out visitors (sometimes up to 8) and this Actor never signs in, so it returns those, not a place's full review history.

- Every row: input, place_name, place_id, place_cid, place_url, place_address, place_category, place_rating, place_review_count, source_url, scraped_at (ISO 8601 UTC)
- Review: review_id, review_url, rating (1-5), text, review_language, published_at, updated_at (ISO 8601 UTC), relative_date (as Google shows it), likes, photos_count
- Owner reply: owner_response, owner_response_at
- Reviewer, as the public review shows it: reviewer_name, reviewer_is_local_guide, reviewer_review_count (no profile link, no photo)

| place_name | rating | relative_date | likes | owner_response | reviewer_name |
|---|---|---|---|---|---|
| ATX Family Dental | 5 | Edited 3 months ago | 0 |  | Mackenzie Eveland Smith |
| ATX Family Dental | 5 | a week ago | 0 |  | Laura Sanz |
| ATX Family Dental | 5 | a week ago | 0 |  | Juan Carlos M.A |
| ATX Family Dental | 5 | a month ago | 0 |  | Lynh Warnken |

One full review record, exactly as a real run returned it (long text and lists shortened here). From a real run:

```json
{
  "place_name": "ATX Family Dental",
  "place_id": "ChIJb5gBC-u0RIYRHkntaUcdJGs",
  "place_cid": "7720327853776914718",
  "place_url": "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
  "place_address": "1700 S 1st St, Austin, TX 78704",
  "place_category": "Dentist",
  "place_rating": 4.9,
  "place_review_count": 922,
  "review_id": "Ci9DQUlRQUNvZENodHljRjlvT2pKVU1tbHVUelk1TlhCb05GTTJiMGxQZFZKZlVYYxAB",
  "review_url": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2pKVU1tbHVUelk1TlhCb05GTTJiMGxQZFZ... [111 more characters]",
  "rating": 5,
  "text": "Today I took my toddler for her first dentist appt and honestly was dreading it but it turned out to be the best experie... [424 more characters]",
  "review_language": "en",
  "published_at": "2026-08-11T17:28:11Z",
  "updated_at": "2026-08-14T16:02:50Z",
  "relative_date": "Edited 3 months ago",
  "likes": 0,
  "photos_count": 5,
  "owner_response": null,
  "owner_response_at": null,
  "reviewer_name": "Mackenzie Eveland Smith",
  "reviewer_is_local_guide": true,
  "reviewer_review_count": 137,
  "input": "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
  "source_url": "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
  "scraped_at": "2026-11-15T19:00:45Z"
}
```

### Use cases

- Local businesses and franchises watching new reviews of every location each day, with a Slack alert
- Reputation-management agencies tracking many client places in one scheduled run
- Checking which reviews Google features on a place and whether the owner replied
- Feeding fresh review text to an LLM for sentiment, complaint themes and reply drafts
- Comparing the featured reviews, ratings and review counts of competitors in a city

### Input

| Field | Type | What it does | Default |
|---|---|---|---|
| `places` (Places) | array | Google Maps places, mixed freely: a place link (e.g. 'https://www.google.com/maps/place/...', a maps.app.goo.gl share link or a link with ?cid=), a... |  |
| `maxReviewsPerPlace` (Reviews per place) | integer | Most reviews to return for each place, e.g. 3. | 10 |
| `proxyConfiguration` (Proxy) | object | Apify Proxy; the default datacenter group works for Google Maps and costs nothing extra. | {"useApifyProxy": true} |
| `sortBy` (Review order) | string | Order of the reviews returned for each place. | "mostRelevant" |
| `language` (Language) | string | Google Maps interface language as a code, e.g. en, de, fr, es or ja. | "en" |
| `onlyNewReviews` (Only new reviews since last run) | boolean | Return only reviews never returned before and written or edited no more than 7 days before the newest review earlier... | false |

All 10 fields, with examples: see the **Input** tab.

### Use with AI agents (MCP)

MCP (Model Context Protocol) is the open standard that lets AI assistants such as Claude, ChatGPT and Cursor call outside tools. Apify's hosted MCP server at `https://mcp.apify.com/?tools=aurelix/google-maps-reviews-scraper` gives your assistant this Actor only: it fills in the input from your request, runs it and reads the reviews back, at the same per-result price as a run started by hand.

#### Example prompts

- "Get the Google Maps reviews Google shows for these three dental clinics in Austin and tell me which have no owner reply"
- "Check the latest Google reviews of Museo Nacional del Prado and summarise what visitors complain about"
- "Every morning, send me new Google reviews of my five restaurant locations with a draft reply to each negative one"

#### Claude Desktop and claude.ai

**Settings > Connectors > Add custom connector**, name it Apify, paste `https://mcp.apify.com/?tools=aurelix/google-maps-reviews-scraper`, keep the detected OAuth settings, select **Add** and sign in to Apify.

#### Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=aurelix/google-maps-reviews-scraper"
```

#### Cursor and VS Code

Add this to `~/.cursor/mcp.json` (Cursor); in VS Code's `.vscode/mcp.json` put the same entry under `"servers"` with `"type": "http"`. Sign in to Apify when asked.

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

#### ChatGPT

Turn on **Developer mode**, open **Settings > Apps & Connectors > Create**, paste the URL above as the MCP server URL, choose **OAuth** and authorize Apify.

Clients without sign-in send `Authorization: Bearer <YOUR_APIFY_TOKEN>` instead. No Apify account? This Actor supports Apify's agentic payments: an agent can pay per run with a prepaid, spend-capped token, bought with x402 stablecoin payments.

#### n8n AI agent

Give an **AI Agent** node an **MCP Client Tool** with the endpoint `https://mcp.apify.com/?tools=aurelix/google-maps-reviews-scraper` and a Bearer credential holding your Apify token.

### Use it from AI agents (MCP), the API or no-code

#### Copy this to your AI assistant

```text
Use the Apify Actor aurelix/google-maps-reviews-scraper (Google Maps Reviews Scraper) through Apify's MCP server or API. Main input: places (Places); maxReviewsPerPlace (Reviews per place). Example input: {"places": ["https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs", "Museo Nacional del Prado Madrid"], "maxReviewsPerPlace": 10, "sortBy": "newest", "onlyNewReviews": true, "stateKey": "my-places-daily"}. Each result is one review with fields such as place_name, place_id, place_cid, place_url, place_address, place_category, place_rating, place_review_count. It costs $0.30 per 1,000 reviews on Apify's free plan plus a $0.002 start fee per run, and needs no login.
```

MCP server URL for this Actor: `https://mcp.apify.com/?tools=aurelix/google-maps-reviews-scraper` (setup for each client in the section above).

#### API

Start a run and read the dataset with Apify's REST API or the Python and JavaScript clients:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("aurelix/google-maps-reviews-scraper").call(run_input={'places': ['https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs', 'Museo Nacional del Prado Madrid'], 'maxReviewsPerPlace': 10, 'sortBy': 'newest', 'onlyNewReviews': True, 'stateKey': 'my-places-daily'})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### No-code: schedule it in 3 clicks

Send the results to Google Sheets, Zapier, Make, n8n, Slack or any webhook URL.

1. Fill in the input, then click **Save as a new task**.
2. In the task, click **Schedule** and pick daily or weekly (Apify Schedules).
3. Turn on **Only new reviews since last run** so each run returns only what is new, and paste a Slack or webhook URL into **Slack webhook URL** / **Webhook URL** to get a digest of the new items (count plus the top 10) after every run.

Prefer n8n or Make? Ask in the **Issues** tab and we will share a ready-made workflow for it.

### FAQ

#### Can I scrape Google Maps reviews without login?

Yes. It never logs in, so you need no Google account, password or cookies; only a free Apify account to run it.

#### Is there a Google Maps reviews API?

You can use this Actor as one. Start it with Apify's REST API or the Python and JavaScript clients and read the results as JSON (see the code above), or call it from an AI agent through MCP.

#### How much does it cost to scrape Google Maps reviews?

About $0.30 for 1,000 reviews on Apify's free plan and $0.25 on paid plans, start fee included. The free $5 monthly credit covers about 16,000 reviews.

#### Can I export Google reviews to Excel or Google Sheets?

Yes. Download the results as Excel, CSV, JSON, XML or HTML from the run's **Storage** tab, or send them to Google Sheets with Apify's Google Sheets integration or the API.

#### Is it legal to scrape Google Maps reviews?

It reads only public data any logged-out visitor can see: the reviews Google Maps shows on a place to visitors who are not signed in, through paths Google's robots.txt allows. It never logs in, uses no Google account and never solves CAPTCHAs; reviewer data is limited to the display name, Local Guide badge and review count shown on the review. Google's terms discourage automated access; keep your use to analysis and monitoring of public data. Data is returned as shown publicly on the source; people can ask for removal by opening an issue on this Actor's Issues tab; if Google formally asks us to stop, this Actor will stop. You are responsible for using the data lawfully, incl. privacy laws; this is not legal advice.

#### Is there a cheaper Google Maps reviews scraper on Apify?

Some tools charge less per review. This Actor costs $0.30 per 1,000 reviews ($0.25 on paid plans), $0.0001 per place with nothing new and a small start fee per run, and is built for checking many places every day. It returns the reviews Google shows logged out (about 5 per place); this tool doesn't cover a place's full review history.

#### How do I get Google reviews into Google Sheets, n8n or an AI agent?

For a fixed workflow, add Apify's n8n or Make node, choose **Run Actor**, enter `aurelix/google-maps-reviews-scraper` and map the dataset to the next step, or use Apify's Google Sheets integration. For an AI agent (Claude, ChatGPT, Cursor or an n8n AI Agent node), add `https://mcp.apify.com/?tools=aurelix/google-maps-reviews-scraper` as an MCP server and ask for a place's reviews in plain words.

#### How many reviews do I get per place?

The reviews Google Maps shows on the place to a visitor who is not signed in: about 5 per place, whatever the place's total review count. In a test of 195 places in 20 cities, 161 showed 5, 33 showed 8 and one place with only 3 reviews showed 3. Google keeps the full list, sorting and filters for signed-in users, and this Actor never signs in, uses no Google account and solves no CAPTCHA. If you need a place's complete review history, this tool doesn't cover it.

#### Which reviews are they?

The ones Google picks as 'most relevant' for logged-out visitors. In our tests they were mostly recent: the median review was about 2 to 3 months old. 'Review order' sorts those reviews by date or rating; it does not reach further reviews.

#### How does the daily monitor work?

Turn on 'Only new reviews since last run' and schedule the task daily. The first run returns what Google shows and remembers, per place, each review and the newest review date it saw (kept for two years); a place name or share link is also pinned to the place it matched on that first run, so later runs watch the same place. Later runs return and charge only reviews never returned before and written or edited no more than 7 days before that newest date (so reviews Google publishes late still arrive, while old reviews Google rotates into view are skipped); a place with nothing new costs $0.0001. A new review arrives when Google features it on the place, which in our tests covered the last weeks to months; on very busy places (hundreds of reviews a week) only the ones Google features are caught. For monitors, place links or IDs are the safest input.

#### A name matched the wrong place in my monitor. How do I fix it?

In 'Only new reviews' mode a place name is pinned to the place it matched on its first run, so it stays the same afterwards. If that first match was wrong, replace the name with the place's link or ID, or set a new 'Memory name' to start a fresh memory.

#### Which inputs work?

Google Maps place links (desktop or mobile, with the place in the link), maps.app.goo.gl share links, links with ?cid=, Google place IDs (ChIJ...), CIDs, or a place name with its city. A name uses the first place Google Maps finds, which for chains can be a branch in another city; the run's status names the place each name matched, so check it, or use the place link or ID. Links to other sites and links that do not open are skipped and named in the status, free.

#### What is charged?

One review-result per review saved, one empty-place ($0.0001) per place Google answered that had nothing to return (including a name, ID or number Google finds no place for), and the run start fee. Never charged: links to other sites, links that do not open, places Google did not answer for, the same place given twice, and reviews already returned in 'Only new reviews' mode. The run's status says exactly what was charged.

#### What do the dates mean?

published_at is when the review was written and updated_at Google's last-updated time (later than published_at when the reviewer edited it), both exact ISO 8601 UTC from Google's data. relative_date is Google's own label such as 'Edited 3 months ago', in the run's language.

#### Is the review text translated?

No. text is always the reviewer's own words; review_language gives its language. 'Language' changes the language of Google's labels such as relative dates.

### Lawful use

- Use the data for reputation monitoring, research and analysis. Reviews are written by members of the public: do not use reviewer names to contact, profile or target people.
- You are responsible for complying with the privacy laws that apply to you, including the EU/UK GDPR, and with Google's terms for your use case.
- Removal requests are honoured: open an issue on the Issues tab.
- Reviewer data is limited to what the public review card shows: display name, Local Guide badge and review count. No profile link, profile photo or user ID is collected, and no contact details beyond what the review or reply text itself says. Removal on request via the Issues tab.

### Limits (stated honestly)

- About 5 reviews per place (sometimes up to 8): the ones Google shows to visitors who are not signed in. Google keeps the full list, sorting and review search for signed-in users; this Actor never signs in, so it never returns a place's full review history.
- 'Review order' and 'Reviews newer than' work on the reviews Google shows; they do not reach older or other reviews.
- The monitor catches a new review when Google features it on the place; on very busy places some new reviews are never featured logged out and are missed.
- A place name uses the first place Google Maps finds, which for chains can be another branch, even in another city; the status names each match. Use the place link or ID when it matters; monitors pin each name to its first match.
- Review text is the reviewer's own words, not translated. Rating-only reviews have text null.
- Fields are read from Google Maps' public place data; Google changes this format from time to time, and the daily health check flags any break.

### Works great with

- **Before this: [Google Maps Phone Scraper](https://apify.com/aurelix/google-maps-scraper)**: search 'dentist Austin' to list a city's places, then put the `google_maps_url` column into 'Places'

### Related Aurelix tools

Public Aurelix Actors, grouped by the data they collect. All are pay-per-result and need no login.

#### Leads and company data

- **[Companies House Scraper](https://apify.com/aurelix/companies-house-scraper)**: Newly incorporated UK companies from Companies House: SIC codes, region, registered office, directors with roles.
- **[Company Phone Numbers Scraper](https://apify.com/aurelix/contact-details-scraper)**: Published company emails, phones, addresses, social pages and team members from a list of company websites.
- **[Decision Maker Finder](https://apify.com/aurelix/decision-maker-finder)**: Founders, CEOs, VPs and department heads from company team pages, with title, seniority and function.
- **[FMCSA API](https://apify.com/aurelix/fmcsa-carrier-api)**: FMCSA carriers by DOT, MC or name, plus daily new-authority leads: contacts, fleet, cargo, insurance, out of service.
- **[Newly Funded Companies Hiring](https://apify.com/aurelix/funded-companies-hiring)**: Companies that just raised money (SEC Form D), with their open roles and business contacts, as a new-only monitor.
- **[Google Maps Phone Scraper](https://apify.com/aurelix/google-maps-scraper)**: Local business lists from Google Maps: phones, websites, ratings, hours, coordinates; optional website emails and socials.
- **[Liquor License Applications](https://apify.com/aurelix/liquor-license-applications)**: New liquor license applications and new licenses from California, Texas, New York, Missouri, Washington and Ontario.
- **[New Business Licenses Scraper](https://apify.com/aurelix/new-business-licenses)**: Newly licensed businesses from 11 US and Canadian city open-data portals in one schema, with category, issue date and address.
- **[Recently Funded Companies API](https://apify.com/aurelix/recently-funded-companies)**: US companies that just filed an SEC Form D: amount raised, industry, state, executives, confirmed website.
- **[Tech Stack API](https://apify.com/aurelix/tech-stack-detector)**: CMS, e-commerce platform, analytics, ad pixels, chat, CDN and email provider for each domain you enter.
- **[Yellow Pages Canada Scraper](https://apify.com/aurelix/yellow-pages-canada-scraper)**: YellowPages.ca businesses by search term and city: phone, website, address, postal code, hours and rating.

#### Jobs and hiring data

- **[Job Bank Canada Scraper API](https://apify.com/aurelix/job-bank-canada-scraper)**: Official Job Bank Canada postings by month: NOC and NAICS codes, wages, hours and location.
- **[Greenhouse Jobs Scraper](https://apify.com/aurelix/greenhouse-jobs-scraper)**: Live jobs from a company's Greenhouse, Lever, Ashby or SmartRecruiters board, with salary and Canadian province tags.
- **[Career Page Monitor](https://apify.com/aurelix/hiring-signal-monitor)**: New, removed and reposted roles plus hiring velocity per company, from seven job-board systems including Workday.
- **[LinkedIn Jobs Country Filter Scraper](https://apify.com/aurelix/linkedin-jobs)**: Public LinkedIn job postings by keyword and country: title, company, location, seniority, job type, salary text, description.
- **[Multiple Job Boards Scraper](https://apify.com/aurelix/multi-job-board-scraper)**: LinkedIn, about 50 company career sites, Remote OK and We Work Remotely jobs in one deduplicated list.
- **[Remote Job Board Scraper API](https://apify.com/aurelix/remote-jobs-scraper)**: Remote OK and We Work Remotely jobs in one deduplicated list with salary, regions and tags.
- **[Wellfound Jobs API & Scraper](https://apify.com/aurelix/wellfound-jobs-scraper)**: Wellfound startup jobs with salary and equity ranges, company stage and size, $0.50 per 1,000.
- **[Workday Job Postings Scraper](https://apify.com/aurelix/workday-jobs-scraper)**: Jobs from any Workday career site by link or company name, with full descriptions and Canadian province tags.

#### E-commerce and product data

- **[AliExpress Scraper API](https://apify.com/aurelix/aliexpress-product-search)**: AliExpress search results by keyword: price, discount, rating, units sold, ship-from country and sponsored flag.
- **[Amazon Best Sellers & Amazon New Releases](https://apify.com/aurelix/amazon-best-sellers)**: Amazon Best Sellers and New Releases top 100 on 10 marketplaces: rank, ASIN, price, rating, rank change.
- **[Best Buy Canada Scraper API](https://apify.com/aurelix/best-buy-canada-scraper)**: Best Buy Canada search results: CAD price, sale savings, rating, reviews and seller, plus optional UPC and specs.
- **[Shopify App Store Scraper](https://apify.com/aurelix/shopify-app-store-scraper)**: Shopify App Store apps with pricing plans, ratings, category ranks and reviews; new-app and new-review watch.
- **[Shopify Product Export Scraper](https://apify.com/aurelix/shopify-products-scraper)**: Every public product of any Shopify store with variants, SKUs, prices, barcodes, stock counts and collections.
- **[Shopify Best Sellers Tracker](https://apify.com/aurelix/shopify-best-sellers-tracker)**: Competitor Shopify stores' best-sellers, new products, price changes, stock-outs and restocks since your last run, plus catalogue summary.

#### Ad intelligence

- **[Competitor Watch](https://apify.com/aurelix/competitor-watch)**: One report per competitor with only what is new: Meta, TikTok and Google ads, page changes, Shopify products and prices, jobs.
- **[Facebook Ad Library Search & API](https://apify.com/aurelix/facebook-ad-library-scraper)**: Facebook and Instagram business ads from the Meta Ad Library: copy, creatives, landing pages, dates, optional EU reach.
- **[TikTok Ads Library API](https://apify.com/aurelix/tiktok-ads-library-scraper)**: TikTok Ads Library ads for Europe, UK, Switzerland and Turkey with targeting, reach, ad text and landing pages.

#### Canada and government data

- **[Canada Building Permits](https://apify.com/aurelix/canada-building-permits-scraper)**: Building permits and development applications from 7 Canadian cities: address, type, status, dates, value, applicant, contractor and Toronto planner contact.
- **[Government Tenders USA Scraper](https://apify.com/aurelix/government-tenders-scraper)**: Open tenders from SAM.gov, CanadaBuys and EU TED in one table: buyer, codes, value, deadline, contact and link.
- **[New York Building Permits Scraper](https://apify.com/aurelix/building-permits-scraper)**: Building permits from 12 US city open-data portals in one schema, with value, status, contractor, owner and applicant.
- **[USPTO Trademark API](https://apify.com/aurelix/uspto-trademark-search)**: US trademark search and watch from USPTO: mark, owner or number lookups, new filings, owner, attorney, goods.

#### AI, content and SEO

- **[Google Maps Rank Tracker](https://apify.com/aurelix/google-maps-rank-tracker)**: Extract Google Maps local rankings on a geo-grid at $1.00 per 1,000 grid points on the free plan: your rank...
- **[Google Trends by Region](https://apify.com/aurelix/google-trends-scraper)**: Google Trends interest over time, by region and rising queries for any number of keywords, plus trending searches.
- **[Google Autocomplete API](https://apify.com/aurelix/google-autocomplete-scraper)**: Expands seed keywords into hundreds of real Google and YouTube autocomplete phrases, tagged by search intent.
- **[PDF Table Extraction & PDF to Markdown OCR](https://apify.com/aurelix/pdf-to-markdown)**: Turns linked PDF and Word files into Markdown per page, with tables as JSON rows, RAG chunks and OCR.
- **[Website to Knowledge Base Sync](https://apify.com/aurelix/rag-site-sync)**: Turns a website into knowledge base chunks with stable IDs, then returns only chunks to upsert or delete.
- **[Broken Link Crawler & SEO Audit](https://apify.com/aurelix/seo-audit-crawler)**: Audits a whole site: one row per page with SEO checks and broken links, plus a ranked issues summary.
- **[Bulk TikTok Transcripts Scraper](https://apify.com/aurelix/tiktok-transcript-scraper)**: Returns TikTok video transcripts as text, timed segments and SRT, from video links or @profiles' latest videos.
- **[Website Change Tracker](https://apify.com/aurelix/website-change-monitor)**: Re-checks a site and returns only added, changed and deleted pages, with chunks to upsert and IDs to delete.
- **[Bulk Website Screenshot Tool](https://apify.com/aurelix/website-screenshot)**: Full-page screenshots or PDFs of a list of URLs, cookie banners hidden, lazy images loaded, a public link per image.
- **[Website to Markdown API](https://apify.com/aurelix/website-to-markdown)**: Crawls a site and returns one row of clean main-content Markdown per page, with title, headings and links.
- **[YouTube Transcript Scraper](https://apify.com/aurelix/youtube-transcript-scraper)**: Returns YouTube video transcripts as text, timed segments and AI chunks, from videos, channels, playlists or searches.
- **[YouTube Video Scraper API](https://apify.com/aurelix/youtube-video-scraper)**: Full details for every YouTube video in a search, channel or playlist: views, likes, comments, tags, publish time.

#### More data tools

- **[Agoda API (Unofficial)](https://apify.com/aurelix/agoda-reviews-scraper)**: Scrape Agoda guest reviews at $0.50 per 1,000 with this unofficial Agoda API, cheaper than the leading tools: Agoda and...
- **[Merge CSV Files & Datasets: Remove Duplicates, Excel, JSON](https://apify.com/aurelix/dataset-merge-dedup)**: Merges datasets, CSV, JSON and Excel files and removes duplicates with careful URL, email and number matching.
- **[Polymarket Odds Tracker](https://apify.com/aurelix/polymarket-odds-tracker)**: Polymarket outcomes with implied probability, bid/ask, volume and results, plus price history and price-move alerts.
- **[Tennis Betting Odds Scraper](https://apify.com/aurelix/tennis-odds-scraper)**: Tennis results and upcoming matches with opening and closing odds per bookmaker and implied probabilities.

### Recent changes

- **0.1**: First release: reviews Google shows on each place (about 5), many places per run by link, place ID or name, only-new review monitor, Slack and webhook digest.

The full history is on the **Changelog** tab.

### Tested daily

An automated health check runs this Actor every day on a fixed input and checks that at least 3 reviews come back with `place_id`, `place_name`, `review_id`, `rating`, `published_at`, `updated_at` filled in; a failed check alerts the maintainer straight away.

### Was this useful?

- **Something went wrong?** [Open an issue](https://apify.com/aurelix/google-maps-reviews-scraper/issues) and tell us what you ran: we answer fast and aim to reply within a day.
- **It worked?** [Leave a review](https://apify.com/aurelix/google-maps-reviews-scraper/reviews): it takes a minute and helps other people find this tool.

# Changelog

This Actor's version history is a separate document: https://apify.com/aurelix/google-maps-reviews-scraper/changelog.md

# Actor input Schema

## `places` (type: `array`):

Google Maps places, mixed freely: a place link (e.g. 'https://www.google.com/maps/place/...', a maps.app.goo.gl share link or a link with ?cid=), a place ID (e.g. 'ChIJb5gBC-u0RIYRHkntaUcdJGs') or a place name with its city (e.g. 'Pizzeria Libretto Ossington Toronto'; the first place Google Maps finds is used and named in the run's status; for chains prefer a link or ID).

## `maxReviewsPerPlace` (type: `integer`):

Most reviews to return for each place, e.g. 3. Google shows about 5 reviews per place (sometimes up to 8) to visitors who are not signed in, and this Actor never signs in, so a higher number returns no more.

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

Order of the reviews returned for each place. Google picks which reviews it shows logged out ('Most relevant'); the other orders sort those reviews, they do not reach further reviews.

## `reviewsNewerThan` (type: `string`):

Only reviews written (or last edited) on or after this date, e.g. 2026-01-31, or a relative time such as '30 days'. Leave empty for all.

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

Google Maps interface language as a code, e.g. en, de, fr, es or ja. It sets the language of relative dates ('a week ago') and of the place name where Google has one; review text is always the reviewer's own words.

## `onlyNewReviews` (type: `boolean`):

Return only reviews never returned before and written or edited no more than 7 days before the newest review earlier runs saw on the same place (one memory per place; a place name is pinned to the place it first matched). The first run returns what Google shows; schedule it daily to get new reviews as Google shows them. Places with nothing new cost one small empty-place charge.

## `stateKey` (type: `string`):

Name for the 'only new' memory, e.g. 'my-clinics-daily'. Runs with the same name share one memory; leave empty to share one memory across all your runs.

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

Apify Proxy; the default datacenter group works for Google Maps and costs nothing extra.

## `slackWebhookUrl` (type: `string`):

After each run, post a short digest to Slack: how many reviews were saved (new ones only when 'Only new reviews since last run' is on) and the top 10, e.g. https://hooks.slack.com/services/T000/B000/XXXX. Nothing is posted when the run saved nothing.

## `webhookUrl` (type: `string`):

After each run, POST the same digest as JSON (actor, newOnly, count, items = top 10 reviews, runUrl, text) to any URL, e.g. a Zapier, Make or n8n webhook. Nothing is sent when the run saved nothing.

## Actor input object example

```json
{
  "places": [
    "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
    "Museo Nacional del Prado Madrid"
  ],
  "maxReviewsPerPlace": 10,
  "sortBy": "mostRelevant",
  "language": "en",
  "onlyNewReviews": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One item per review, with the place's name, address, rating and review count on every row.

# 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 = {
    "places": [
        "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
        "Museo Nacional del Prado Madrid"
    ],
    "maxReviewsPerPlace": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("aurelix/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 = {
    "places": [
        "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
        "Museo Nacional del Prado Madrid",
    ],
    "maxReviewsPerPlace": 10,
    "proxyConfiguration": { "useApifyProxy": True },
}

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

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

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

```

## CLI example

```bash
echo '{
  "places": [
    "https://www.google.com/maps/place/?q=place_id:ChIJb5gBC-u0RIYRHkntaUcdJGs",
    "Museo Nacional del Prado Madrid"
  ],
  "maxReviewsPerPlace": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call aurelix/google-maps-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aurelix/google-maps-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/nUvgvScmiE9LSIEwf/builds/8xxliK8Fcjj9u1HrO/openapi.json
