# Place Review Aggregator (`zen-studio/place-review-aggregator`) Actor

Aggregate reviews for cafés, restaurants, shops, hotels and attractions from Google Maps, Yelp and Tripadvisor, plus Facebook recommendations and Swarm tips. Match one place across sources and export JSON or CSV with coverage notes.

- **URL**: https://apify.com/zen-studio/place-review-aggregator.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Travel, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 review collecteds

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?

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

## Place Review Aggregator (2026)

<blockquote style="border-left:4px solid #4C945E;background:#E8F5E9;padding:14px 18px;margin:12px 0;line-height:1.6"><span style="color:#1C1917;font-size:18px;font-weight:700">Compare reviews from 5 platforms. Request up to 50,000 in one export.</span><br><span style="color:#44403C;font-size:14px">Google Maps · Yelp · Tripadvisor · Facebook · Swarm/Foursquare. Availability varies by place and source.</span></blockquote>

<a href="https://console.apify.com/actors/2EJcvIYcO9H0KQOIO/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/place-review-aggregator-hero.png?v=1f6e865bb789" alt="Place review aggregator: Google Maps, Yelp, Tripadvisor, Facebook and Swarm in one export" style="max-width:100%"></a>

**Combine reviews for cafés, restaurants, shops, hotels and attractions in one dataset.** Collect Google Maps, Yelp and Tripadvisor reviews, plus optional Facebook recommendations and Swarm tips.

Enter a place name and address or an exact listing link. Use the form without code, or call the actor through the Apify API.

<blockquote style="border-left:4px solid #4C945E;background:#E8F5E9;padding:12px 16px;margin:12px 0"><span style="color:#1C1917">Free-plan preview: <strong style="color:#1C1917">5 lifetime runs, up to 20 reviews per run</strong> · 1–5 sources · 31 fields.</span></blockquote>

<table>
<tr><td colspan="4" style="padding:10px 14px;background:#4C945E;border:none"><span style="color:#FFFFFF;font-size:14px;font-weight:700">Place and review tools</span></td></tr>
<tr>
<td style="width:25%;padding:10px 12px;background:#D3EDD9;border:none;vertical-align:top"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-2EJcvIYcO9H0KQOIO-RfOMRAFXbQ-local-business-leads-scraper.png" alt="Place Aggregator" width="24" height="24" style="vertical-align:middle;border-radius:3px"> &nbsp;<a href="https://apify.com/zen-studio/place-review-aggregator" style="color:#1C1917;text-decoration:none;font-size:14px;font-weight:700">Place Aggregator</a><br><span style="color:#44403C;font-size:12px">➤ You are here</span></td>
<td style="width:25%;padding:10px 12px;background:#E8F5E9;border:none;vertical-align:top"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ojjo6BxQiOiLYRca1-RU3DuH650K-google-maps-directions-api-logo.png" alt="Google Reviews" width="24" height="24" style="vertical-align:middle;border-radius:3px"> &nbsp;<a href="https://apify.com/zen-studio/google-maps-reviews-scraper" style="color:#1C1917;text-decoration:none;font-size:14px;font-weight:700">Google Reviews</a><br><span style="color:#44403C;font-size:12px">Reviews from Google only</span></td>
<td style="width:25%;padding:10px 12px;background:#E8F5E9;border:none;vertical-align:top"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-qIdkSE8q4I8DIfNlD-lKLPnrjTrn-hotel-review-aggregator-logo2.png" alt="Hotel Aggregator" width="24" height="24" style="vertical-align:middle;border-radius:3px"> &nbsp;<a href="https://apify.com/clearpath/hotel-review-aggregator" style="color:#1C1917;text-decoration:none;font-size:14px;font-weight:700">Hotel Aggregator</a><br><span style="color:#44403C;font-size:12px">Include hotel booking sites</span></td>
<td style="width:25%;padding:10px 12px;background:#E8F5E9;border:none;vertical-align:top"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-9UyFQFcuwmvWG91uH-BWRrsdwsuQ-software-reviews-aggregator-logo.png" alt="Software Reviews" width="24" height="24" style="vertical-align:middle;border-radius:3px"> &nbsp;<a href="https://apify.com/zen-studio/software-review-scraper" style="color:#1C1917;text-decoration:none;font-size:14px;font-weight:700">Software Reviews</a><br><span style="color:#44403C;font-size:12px">G2, Capterra and more</span></td>
</tr>
</table>

#### Copy to your AI assistant

```text
Place Review Aggregator (zen-studio/place-review-aggregator) on Apify. Aggregate Google Maps, Yelp and Tripadvisor reviews, plus optional Facebook recommendations and Swarm tips. Facebook requires an exact Page URL; combining it with a physical location requires facebookPageConfirmed=true after checking the Page association. Call ApifyClient("TOKEN").actor("zen-studio/place-review-aggregator").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Provide a name and location, or an exact place link/ID. Full spec: GET https://api.apify.com/v2/acts/zen-studio~place-review-aggregator/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
```

### Place reviews from five sources

- **Google reviews export:** combine review text, star ratings, dates and owner replies from [Google Maps](https://maps.google.com/), [Yelp](https://www.yelp.com/) and [Tripadvisor](https://www.tripadvisor.com/).
- **Place review aggregator:** match the physical location before combining Google, Yelp, Tripadvisor and Swarm feedback. Facebook Page associations are explicitly confirmed by you and labeled in the summary.
- **Review data for analysis:** retain the original language, source listing and source-specific details. Optional Facebook recommendations and Swarm / Foursquare tips add feedback without individual star ratings.
- **Review API and scheduling:** export JSON or CSV, connect your reporting tools, and schedule repeat snapshots through Apify.

The default selection is Google Maps, Yelp and Tripadvisor. Facebook and Swarm are optional. Facebook returns a limited public subset and requires an exact Page link. A business does not need to exist on every site, and you can select a single source.

**Measured result:** Katz's Delicatessen in New York returned 6,000 unique reviews, 2,000 from each site, in 286 seconds on September 6, 2026. The run also recovered from a forced restart. Speed and available reviews vary by place and source.

### How to scrape reviews for one place

1. Open [Place Review Aggregator](https://apify.com/zen-studio/place-review-aggregator) and select **Try for free**.
2. Enter the business name and full address. For chains, include the street or postcode.
3. Choose sources and a maximum review count, then select **Start**.
4. Open **Output** to inspect reviews and source coverage. Download as **JSON, CSV, Excel or HTML**.

#### Business name and address

This collects up to 100 reviews combined for the Eastcastle Street branch of Kaffeine in London. A free-plan preview applies its 20-review cap automatically.

```json
{
  "query": "Kaffeine",
  "location": "15 Eastcastle Street, London, W1T 3AY, United Kingdom",
  "sources": ["google", "yelp", "tripadvisor"],
  "maxReviews": 100,
  "sort": "newest"
}
```

#### Exact Google Place ID

An exact ID is useful when you already maintain a list of locations. This example needs no name or address. In the input form, clear the example name and address if they refer to a different business.

```json
{
  "googlePlaceId": "ChIJ6dpmcCsbdkgR0wcDN3XFut0",
  "sources": ["google"],
  "maxReviews": 10
}
```

#### Exact Tripadvisor link with additional source matching

Provide links to the same branch. Exact links guide matching; the `sources` selection still controls which sites contribute reviews. You can use `sourceUrls` with several links when a common business name is ambiguous.

```json
{
  "sourceUrls": {
    "tripadvisor": "https://www.tripadvisor.com/Restaurant_Review-g186338-d9784345-Reviews-Kaffeine-London_England.html"
  },
  "sources": ["google", "tripadvisor"],
  "maxReviews": 20,
  "sort": "source_default"
}
```

#### Facebook Page recommendations

Select Facebook and provide its exact Page URL. This example collects up to six public recommendations for Element Coffee. Clear the example business name and address when using a Page link alone.

```json
{
  "sourceUrls": {"facebook": "https://www.facebook.com/ElementCoffeeUK"},
  "sources": ["facebook"],
  "maxReviews": 6
}
```

To combine Facebook with other sources, also provide the business name and address or an exact non-Facebook listing. Check that the Page represents that specific location, then enable **This Facebook Page represents this business location** (`facebookPageConfirmed: true`). A brand Page covering several locations should not be merged into one location's reviews. The summary labels the association `matchBasis: user_confirmed_page`; Page-only collection uses `exact_page`.

Facebook returns an **unknown public subset**, often far below its displayed review count. `advertisedReviewCount` is separate from `reviewsDelivered`. Reaching the end of the visible feed does not establish complete history. Source order is preserved, newest ordering is unverified, and Facebook results are not eligible for a complete monitoring checkpoint.

### Review limits, sources and matching options

The [Input tab](https://apify.com/zen-studio/place-review-aggregator/input-schema) contains the complete form. There are nine input fields; the defaults suit a first run.

| Input | Default | Purpose |
|---|---|---|
| `query` | None | Business name or an exact Google Maps, Yelp, Tripadvisor, Swarm/Foursquare or Facebook Page link |
| `location` | None | City or full address; required with a business name |
| `maxReviews` | `100` | Total across selected, matched sources, from 1 to 50,000 |
| `sources` | Google, Yelp, Tripadvisor | Select any combination of `google`, `yelp`, `tripadvisor`, `swarm`, `facebook` |
| `sort` | `newest` | Newest where supported, or `source_default` |
| `sourceUrls` | `{}` | Exact links under `google`, `yelp`, `tripadvisor`, `swarm` or `facebook` |
| `googlePlaceId` | None | Exact Google Place ID, with no name or address required |
| `countryCode` | None | Optional two-letter country code, such as `GB` or `US` |
| `facebookPageConfirmed` | `false` | Confirm the Page represents this location before combining Facebook with a physical place or another source |

**One combined limit:** `maxReviews: 100` means up to 100 reviews for this place across all selected sources. The actor first shares that allowance across matched sources, then makes a bounded attempt to fill unused capacity from sources that reached their initial limit. Repeated reviews are deduplicated and are not charged twice. The total remains an upper limit, not an all-history guarantee.

**Large exports:** 50,000 is an input ceiling, not a guaranteed historical count. Availability, spending and collection limits can reduce the result. Swarm is capped at 1,000 tips. Facebook is capped at 1,000 recommendations, usually with a much smaller public subset available. Start with a small run to verify the branch before requesting more.

**Place matching:** the actor checks the selected place against available location and listing details. A similar name alone is not sufficient. If several candidates remain plausible, supply the full address or exact source links. Facebook is an explicit exception: the Page-to-location association is confirmed by you, not independently verified by the actor.

**Matching corrections:** when the branch is uncertain, the run summary includes `actionRequired` and, when available, `possiblePlaces` with listing names, addresses and links. These are suggestions to verify, not accepted matches. Use the correct exact link in a new run.

**Language:** reviews retain their original language. `countryCode` narrows place matching; it does not select English reviews. This version does not offer a language filter or automatic translation.

| Source | `newest` | `source_default` |
|---|---|---|
| Google Maps | Latest activity, including review edits | Most relevant |
| Yelp | Newest | Newest |
| Tripadvisor | Source order; newest ordering is unverified | Source default |
| Swarm / Foursquare | Recency is unverified | Popular/source order |
| Facebook | Source order; recency is unverified | Source default |

Reviews are **not globally sorted** across sites. Highest-rated, lowest-rated and star filters are not available in this version. You can filter or sort the collected dataset in your own reporting tool.

### Review data: JSON output and source coverage

Every exported record represents one review, Facebook recommendation or written tip. The same 31 top-level fields appear across sources. Missing values are `null`; empty arrays mean no such entries were returned for that review.

**Rating rules:** `rating` uses a 1–5 scale when the review has a rating. Facebook recommendations and Swarm tips have `rating: null`. Facebook uses `isRecommended: true`, `false` or `null`; a recommendation is never converted into five stars or one star. A venue's overall rating is not substituted for an individual review rating.

**Source detail:** `platformData` preserves the collected source record. Swarm keeps its tip in `reviewData` and place details in `sourcePlaceData`. Nested fields differ by platform and can expand when sources expose more data.

#### Complete example review

This is a complete Tripadvisor record for Kaffeine Eastcastle, matching the name/address example above. All 31 top-level fields and all nested keys are included. The empty arrays and nulls are the actual values returned for this review.

```json
{
  "schemaVersion": 1,
  "recordType": "review",
  "platform": "tripadvisor",
  "reviewKey": "tripadvisor:9784345:963672429",
  "reviewId": "963672429",
  "reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g186338-d9784345-r963672429-Kaffeine-London_England.html#review963672429",
  "placeId": "google:ChIJ6dpmcCsbdkgR0wcDN3XFut0",
  "placeName": "Kaffeine",
  "place": {
    "id": "google:ChIJ6dpmcCsbdkgR0wcDN3XFut0",
    "name": "Kaffeine",
    "address": "15 Eastcastle St, London W1T 3AY, United Kingdom",
    "countryCode": "GB"
  },
  "sourcePlace": {
    "id": "9784345",
    "name": "Kaffeine",
    "url": "https://www.tripadvisor.com/Restaurant_Review-g186338-d9784345-Reviews-Kaffeine-London_England.html"
  },
  "title": "75/25",
  "text": "Pleasant atmosphere, although one of the waitresses was very surly. Good coffee and obviously popular with local workers.",
  "language": "en",
  "rating": 5,
  "ratingOriginal": 5,
  "ratingScale": "1-5",
  "isRecommended": null,
  "publishedAt": "2024-08-07T14:20:48+00:00",
  "updatedAt": null,
  "lastActivityAt": "2024-08-07T14:20:48+00:00",
  "scrapedAt": "2026-09-05T20:51:44.342607+00:00",
  "observedAt": "2026-09-05T20:51:53.854538+00:00",
  "reviewer": {
    "id": "B7A55827A3FD5E78F303085E7D4CCC53",
    "name": "keepsmiling29",
    "url": "https://www.tripadvisor.com/MemberProfile-a_uid.B7A55827A3FD5E78F303085E7D4CCC53",
    "avatarUrl": "https://media-cdn.tripadvisor.com/media/photo-f/1a/53/a4/38/keepsmiling29.jpg",
    "location": "Thaxted, United Kingdom",
    "reviewCount": 25
  },
  "helpfulVotes": 0,
  "ownerResponse": null,
  "photos": [],
  "videos": [],
  "subratings": [],
  "visit": {
    "date": "2024-07"
  },
  "sourceRank": 1,
  "platformData": {
    "locationId": 9784345,
    "placeName": "Kaffeine",
    "placeKind": "restaurant",
    "placeUrl": "https://www.tripadvisor.com/Restaurant_Review-g186338-d9784345-Reviews-Kaffeine-London_England.html",
    "reviewId": "963672429",
    "rating": 5,
    "title": "75/25",
    "text": "Pleasant atmosphere, although one of the waitresses was very surly. Good coffee and obviously popular with local workers.",
    "publishedDate": "2024-08-07T10:20:48-04:00",
    "publishedPlatform": "Desktop",
    "travelDate": "2024-07",
    "language": "en",
    "helpfulVotes": 0,
    "machineTranslated": false,
    "subratings": [],
    "reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g186338-d9784345-r963672429-Kaffeine-London_England.html#review963672429",
    "ownerResponse": null,
    "user": {
      "userId": "B7A55827A3FD5E78F303085E7D4CCC53",
      "username": "keepsmiling29",
      "displayName": null,
      "location": "Thaxted, United Kingdom",
      "avatar": "https://media-cdn.tripadvisor.com/media/photo-f/1a/53/a4/38/keepsmiling29.jpg",
      "profileUrl": "https://www.tripadvisor.com/MemberProfile-a_uid.B7A55827A3FD5E78F303085E7D4CCC53",
      "joinedDate": "2011-03-23T10:42:40-0400",
      "contributions": {
        "reviews": 25,
        "hotelReviews": 5,
        "restaurantReviews": 16,
        "attractionReviews": 4,
        "photos": 2,
        "helpfulVotes": 23
      }
    },
    "scrapedAt": "2026-09-05T20:51:44.342607+00:00"
  }
}
```

#### Field reference

| Fields | Meaning |
|---|---|
| `schemaVersion`, `recordType`, `platform` | Format version, record type (`review` or Facebook `recommendation`), and source; Swarm uses `foursquare` |
| `reviewKey`, `reviewId`, `reviewUrl` | Combined source/place/review key, native review ID and direct link |
| `placeId`, `placeName`, `place` | Shared place identity, name and available address/country |
| `sourcePlace` | Source-specific listing ID, name and URL |
| `title`, `text`, `language` | Review heading, original text and language when available |
| `rating`, `ratingOriginal`, `ratingScale` | Normalized rating and original rating information; all null for Facebook |
| `isRecommended` | Facebook recommendation: true, false, or null when unknown; null on other sources |
| `publishedAt`, `updatedAt`, `lastActivityAt` | Publication, edit and latest known activity timestamps |
| `scrapedAt`, `observedAt` | Collection and observation timestamps |
| `reviewer` | Available reviewer identity, profile link, avatar and other details |
| `helpfulVotes`, `ownerResponse` | Helpful vote count and business reply, where available |
| `photos`, `videos`, `subratings`, `visit` | Media links, category ratings and visit information |
| `sourceRank`, `platformData` | Position within the collected source results and additional source data |

#### Read the coverage summary before drawing conclusions

The summary linked from **Output** reports the place or Page identity, requested and effective limits, delivered count, and each source's matching and collection outcome. Review records remain in the dataset when another source is unavailable.

A `partial` result may contain useful reviews. It does not prove that you have the complete history. `coverage: unknown` means completeness could not be established. Check `issues` and `notes` before comparing totals across sites.

`monitorCheckpointEligible` is currently `false`: a successful snapshot is not proof that every review since your previous run has been collected. `globallySorted` is also `false` because source order is preserved separately.

### Advanced Usage: review exports and recurring analysis

Use place review data for reputation reporting, restaurant feedback analysis, competitor comparisons and your own sentiment analysis workflows.

#### Export Google reviews to CSV or Google Sheets

Download CSV or Excel from the dataset's **Export** menu. For recurring reports, connect the dataset to **Google Sheets**, **Make** or **Zapier**. Keep `reviewKey`, `platform` and `sourcePlace` so rows can be traced back to the original listing.

JSON retains nested reviewer, reply and source details. A flat spreadsheet may require you to select or expand nested columns for the particular analysis you want.

#### Schedule a daily review snapshot

Save a task with exact place links and start with a **daily** Apify schedule. Send an **ACTOR.RUN.SUCCEEDED webhook** to your reporting workflow, then fetch the dataset and coverage summary.

Deduplicate repeat snapshots by `reviewKey`. To detect edits, also compare `lastActivityAt` and the review text. Keep the same exact place identity across runs so a different anchor does not change your canonical `placeId`.

This is snapshot collection, not a built-in new-reviews monitor. A bounded snapshot may miss new reviews, especially on sources without verified chronological order. Increase limits when appropriate and retain the source coverage notes with each report.

#### Build a review API workflow in Python

Use your Apify token from [API & Integrations](https://console.apify.com/account/integrations). The dataset belongs to your run. Source collection is included in the review price.

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("zen-studio/place-review-aggregator").call(
    run_input={
        "query": "Kaffeine",
        "location": "15 Eastcastle Street, London, W1T 3AY, United Kingdom",
        "sources": ["google", "yelp", "tripadvisor"],
        "maxReviews": 100,
    }
)
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(review["platform"], review["rating"], review["text"])
summary = client.key_value_store(run["defaultKeyValueStoreId"]).get_record("OUTPUT")
print(summary["value"]["sources"])
```

#### Prepare reviews for sentiment analysis

Use `text` as the analysis input and retain `language`, `rating`, `platform` and the review date as context. Analyze each source separately before combining results, since source audiences and review availability differ.

The actor supplies the review dataset. Sentiment scores, summaries and business recommendations are produced by your own analysis tools.

### How much does collecting place reviews cost?

The collection price is **$2.49 per 1,000 reviews** on Free and Bronze, **$1.49** on Silver, and **$0.99** on Gold and higher plans. Google Maps, Yelp and Tripadvisor reviews, Facebook recommendations and Swarm tips use the same review event. Only delivered records are charged, including recommendations whose text or recommendation value is unavailable.

| Apify tier | Price per 1,000 reviews |
|---|---:|
| Free / no tier discount | $2.49 |
| Bronze | $2.49 |
| Silver | $1.49 |
| Gold, Platinum and Diamond | $0.99 |

| Collected reviews | Base review-event charge |
|---|---:|
| 10 | $0.0249 |
| 100 | $0.249 |
| 1,000 | $2.49 |

These examples show the review-event charge. Additional Apify platform events apply. Check the actor's Pricing tab for the current platform fees and effective rate on your plan.

Free-plan users receive **five lifetime preview runs**, each capped at **20 reviews**. Previews use your Apify credits at the applicable rate. Paying plans remove the preview cap; the requested review limit and spending limit still apply.

If your spending limit cannot cover the request, the actor reduces the effective review limit before collection. The summary reports `requestedMaxReviews`, `effectiveMaxReviews` and `limitReason`.

### Place review scraper FAQ

#### What is a place review aggregator?

A place review aggregator combines feedback about the same café, restaurant, shop, hotel or attraction from several review websites. This actor matches one location across Google Maps, Yelp and Tripadvisor, with optional Swarm tips and Facebook recommendations. Facebook requires an exact Page URL and your confirmation before merging it with a physical location.

#### How do I scrape all Google reviews?

Select Google and increase `maxReviews` after checking the listing. This actor returns up to the requested limit, subject to availability and collection limits; it does not guarantee the complete history.

For a dedicated Google-only workflow, see [Google Maps Reviews Scraper](https://apify.com/zen-studio/google-maps-reviews-scraper).

#### What is the Google reviews API alternative here?

Google offers [Places API](https://developers.google.com/maps/documentation/places/web-service/place-details) for place data and [Business Profile review access](https://developers.google.com/my-business/content/review-data) for managed locations. Choose the official product that fits your access and intended use.

This actor is useful when your reporting needs a shared dataset across Google Maps, Yelp and Tripadvisor. Review availability, fields and usage terms differ between the official products and this collection workflow.

#### How do I export Google Maps reviews to CSV?

Run with `sources: ["google"]`, then choose CSV from the dataset's Export menu. For a combined export, keep the default source selection. Include `platform` in the exported columns to distinguish the review sites.

#### Can I collect replies and star ratings too?

Yes, where the source returns them. Ratings appear in `rating`, and business replies in `ownerResponse`. A missing reply remains `null`. Facebook recommendations and Swarm tips do not have individual star ratings. Facebook recommendation values appear in `isRecommended`.

#### Can I scrape all Facebook reviews?

No. The actor collects the public recommendations currently available to it, which can be a small subset of the Page's displayed count. The summary retains partial results and reports the stop reason. Facebook uses recommendations rather than individual star ratings; keep these separate from star averages.

#### Which free plan or trial is available?

You can try five lifetime runs on a free Apify plan, with up to 20 reviews per run. Preview runs consume your available Apify credits. A paying Apify plan removes these preview restrictions.

#### Do I need website accounts or cookies?

You use your Apify account. The input form does not ask for Google, Yelp, Tripadvisor, Facebook or Swarm cookies or login details. It collects available public listing reviews; it cannot retrieve private feedback.

#### Why are fewer reviews returned than requested?

A source may have fewer available reviews, an uncertain match, an incomplete collection or a source-specific limit. The actor shares the combined allowance across sources and attempts to fill unused capacity from healthy sources with more reviews. Source limits, availability and collection safeguards can still leave the total unfilled. The summary identifies the outcome for each site.

#### How do I avoid mixing two nearby branches?

Use a full street address and postcode, then add exact source links when available. Keep all links pointed at the same branch. If the actor cannot verify a source match, it reports that outcome instead of treating a similar name as sufficient evidence.

#### Can I monitor only new reviews?

You can schedule daily snapshots and deduplicate them in your own workflow. This version does not maintain a cross-run checkpoint for new reviews. The coverage summary explains which sources have unverified recency or completeness.

#### Does the actor support sentiment analysis?

It exports review text and useful context for your sentiment analysis tools. It does not assign sentiment scores. Keep original language and source information when sending the data to an analysis workflow.

#### Does a hotel or restaurant include additional specialist sites?

This version uses the five sources listed in the input form. For a separate export of TheFork feedback, use [TheFork Restaurant Reviews](https://apify.com/clearpath/thefork-restaurant-reviews). For hotel booking-site feedback, use [Hotel Review Aggregator](https://apify.com/clearpath/hotel-review-aggregator). For G2, Capterra and Trustpilot, use [Software Review Scraper](https://apify.com/zen-studio/software-review-scraper).

#### Can I collect every cafe in Manhattan?

Find businesses by category and area with [Google Maps Scraper](https://apify.com/zen-studio/google-maps-scraper), or build a contact list with [Business Leads Scraper](https://apify.com/clearpath/local-business-lead-extractor). Then pass each place link, or business name and full address, to this aggregator in a separate run. [Google Maps Reviews Scraper](https://apify.com/zen-studio/google-maps-reviews-scraper) also accepts several Google listings when you only need Google reviews.

#### Is scraping place reviews allowed?

Check the source websites' terms and the rules that apply to your use. Public availability is not permission to republish everything. Review text, reviewer profiles and photos may carry copyright or personal-data obligations.

Use appropriate attribution and retention rules. For personal data, consider the GDPR, UK data protection requirements and the CCPA where applicable. Obtain advice for your particular use if you are uncertain.

### Learn to run and schedule Apify actors

These official tutorials show how to start an actor and create a schedule:

https://www.youtube.com/watch?v=1OW8gOqlZbY

https://www.youtube.com/watch?v=1jI7WcVQmwM

### More Zen Studio & Clearpath review scrapers

**🔗 Review aggregators**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-qIdkSE8q4I8DIfNlD-lKLPnrjTrn-hotel-review-aggregator-logo2.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Hotel reviews**
  - [Hotel Review Aggregator API: Google, Booking, Expedia & More](https://apify.com/clearpath/hotel-review-aggregator)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-9UyFQFcuwmvWG91uH-BWRrsdwsuQ-software-reviews-aggregator-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Software reviews**
  - [All-in-One Review Scraper: G2, Capterra & Trustpilot](https://apify.com/zen-studio/software-review-scraper)

**📍 Individual review sources**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ojjo6BxQiOiLYRca1-RU3DuH650K-google-maps-directions-api-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Google Maps**
  - [Google Maps Reviews Scraper - Unlimited Reviews Per Place](https://apify.com/zen-studio/google-maps-reviews-scraper)
  - [Google Maps Scraper - Every Place, Not Just the Top 250](https://apify.com/zen-studio/google-maps-scraper)

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-sv8jAMKDT0AnGB24l-NYt0D11tLA-swarm-foursquare-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Swarm / Foursquare**
  - [Foursquare & Swarm Scraper: Places, Reviews, Busy Hours](https://apify.com/zen-studio/swarm-place-reviews-scraper)

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-AQGRB6KUvHqkSvHPj-KDZIkmFvBu-yelp-review-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Yelp**
  - [Yelp Reviews Scraper - All Languages & Owner Replies](https://apify.com/clearpath/yelp-reviews-scraper)

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-w0KUpCAUnd23Z9mTB-56fastRocJ-tripadvisor-review-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Tripadvisor**
  - [Tripadvisor Reviews Scraper - Hotels, Restaurants, Attractions](https://apify.com/clearpath/tripadvisor-reviews-scraper)
    **📍 Place discovery**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-4VOKn4ssqn7AQJIUP-tDQgAGNQZE-local-business-leads-scraper.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Business leads**
  - [Fast Business Leads Scraper - Up to 1,000 in 30 Seconds](https://apify.com/clearpath/local-business-lead-extractor)
    **🍽️ Restaurant review tools**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-GzM1sRA0QwmfnUjEb-QxgCbbKvfB-thefork-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **TheFork**
  - [TheFork Restaurant Reviews Scraper - Multi-Language](https://apify.com/clearpath/thefork-restaurant-reviews)
  - [TheFork Scraper - Restaurants, Reviews & Menus](https://apify.com/clearpath/thefork-scraper)

### Support and responsible use

Report unexpected results through the actor's **Issues** tab and include the run ID plus the affected place. For a custom review workflow, contact [Zen Studio](mailto:aiwithmax@gmail.com).

Google Maps, Yelp, Tripadvisor, Facebook, Swarm and Foursquare belong to their respective owners. This actor is not affiliated with them. Use the collected data in line with source terms, copyright and applicable data protection requirements.

[Open Place Review Aggregator and try your first place](https://apify.com/zen-studio/place-review-aggregator).

***

*Place Review Aggregator combines Google Maps, Yelp and Tripadvisor reviews, Facebook recommendations and Swarm / Foursquare tips in one structured dataset.*

# Actor input Schema

## `query` (type: `string`):

Enter one place name, such as a café, restaurant, shop, hotel or attraction, or a full Google Maps, Yelp, Tripadvisor, Swarm, Foursquare or Facebook Page link. For a name, also enter its location below. Leave this empty if you provide an exact identity in the Exact matching section.

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

Enter a city or street address when searching by name. A full address helps select the correct branch. This is optional for an exact link or ID; if supplied, it must agree with that place.

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

Set the <b>total review limit for this place</b>, shared across matched sources. For example, 100 means up to 100 reviews combined. Fewer may be returned when reviews are unavailable or collection limits are reached. The actor first shares the limit across matched sources, then makes a bounded attempt to fill unused capacity from sources with more reviews. Repeated reviews are not charged twice. Swarm is limited to 1,000 tips. Facebook is capped at 1,000 recommendations and usually returns a much smaller public subset. Free-plan previews return up to 20 reviews per run, for five lifetime runs.

## `sources` (type: `array`):

Choose at least one source. Only selected sources contribute reviews. Facebook requires an exact Page URL and returns a limited public subset of recommendations, without star ratings. Swarm returns written tips without individual stars.

## `sort` (type: `string`):

Newest uses recent activity on Google, including review edits, and newest on Yelp. Tripadvisor, Swarm and Facebook recency is not verified. Source default uses Google relevance, Yelp newest and the default order of other sources. Reviews are not sorted into one global ranking. The output reports the order and limitations for each source.

## `sourceUrls` (type: `object`):

Provide links for the same business when names are ambiguous. A single supported link can stand alone; clear the example name and address if they refer to another place. Links do not change selected review sources. Facebook Page links identify a Page; they are not independent proof of a physical location.

## `facebookPageConfirmed` (type: `boolean`):

Required only when combining a Facebook Page with a business name/address, another exact place identity or another source. Enable this after checking that the Page represents this specific location, not a brand with multiple locations. The output labels this association as user-confirmed. Leave it off for Facebook-only collection with just a Page link.

## `googlePlaceId` (type: `string`):

Provide the exact Google Place ID as an alternative to a link. No name or address is required. Clear the example name and address if they refer to another place.

## `countryCode` (type: `string`):

Optionally narrow place matching with a two-letter country code, such as GB or US. This does not filter review languages.

## Actor input object example

```json
{
  "query": "Katz's Delicatessen",
  "location": "205 East Houston Street, New York, NY 10002, United States",
  "maxReviews": 100,
  "sources": [
    "google",
    "yelp",
    "tripadvisor"
  ],
  "sort": "newest",
  "sourceUrls": {},
  "facebookPageConfirmed": false
}
```

# Actor output Schema

## `reviews` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "query": "Katz's Delicatessen",
    "location": "205 East Houston Street, New York, NY 10002, United States",
    "maxReviews": 100,
    "sources": [
        "google",
        "yelp",
        "tripadvisor"
    ],
    "sort": "newest"
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/place-review-aggregator").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 = {
    "query": "Katz's Delicatessen",
    "location": "205 East Houston Street, New York, NY 10002, United States",
    "maxReviews": 100,
    "sources": [
        "google",
        "yelp",
        "tripadvisor",
    ],
    "sort": "newest",
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/place-review-aggregator").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 '{
  "query": "Katz'\''s Delicatessen",
  "location": "205 East Houston Street, New York, NY 10002, United States",
  "maxReviews": 100,
  "sources": [
    "google",
    "yelp",
    "tripadvisor"
  ],
  "sort": "newest"
}' |
apify call zen-studio/place-review-aggregator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/place-review-aggregator"
        }
    }
}

```

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/2EJcvIYcO9H0KQOIO/builds/JwLkmfMbAyreQOQwN/openapi.json
