# Google Maps Contributor & Local Guide Reviews Scraper (`scraperpro/google-maps-contributor-scraper`) Actor

Extract complete Google Maps Contributor & Local Guide profiles, reviews, ratings, levels, points, badges, and places visited. Fast, 100% reliable, and export-ready for Excel, CSV, Google Sheets, or any Database.

- **URL**: https://apify.com/scraperpro/google-maps-contributor-scraper.md
- **Developed by:** [ScraperPro](https://apify.com/scraperpro) (community)
- **Categories:** SEO tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 contributor profiles

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

## 🗺️ Google Maps Contributor & Local Guide Profile Scraper (with Full Reviews History)

#### 🚀 Extract any Google Maps reviewer's full profile and up to 200 reviews directly into Excel, CSV, or any Database in under 2 seconds.

Ever wanted to see **all reviews written by a specific person on Google Maps**, verify if a reviewer is a real Local Guide, or audit suspicious 1-star reviews hitting your business?

Google gives you no way to export this data, and checking manually takes hours. **This tool does it in 2 clicks:**

1. **Paste any Google Maps contributor link** (or User ID)
2. **Click Start** — and download your ready-to-use **Excel (.xlsx)** or **CSV** spreadsheet!

> 💡 **Try it in 10 seconds:** Just leave the pre-filled contributor link in the input tab and hit **Start** to see how fast and clean the spreadsheet export is!

***

#### ⭐ Why Users Love This Tool:

- ⚡ **Lightning Fast:** Extracts up to 200 reviews in **~1.5 seconds** (no slow browser scrolling or waiting).
- 📊 **100% No-Code:** Runs entirely in your web browser. Zero programming or technical skills needed.
- 🏆 **Complete Local Guide Intel:** Uncover Local Guide Level (1–10), total points, badges, and lifetime contribution stats.
- 🔗 **Verified Review Permalinks:** Direct clickable URLs to every single review on Google Maps.
- 📍 **Full Location Details:** Complete place names, business categories, addresses, and GPS coordinates.
- 💰 **Fair Pay-Per-Event:** Pay only for what you scrape. Zero monthly subscription lock-in.

***

### ❓ What Problem Does This Solve?

Google Maps offers **no official public API** to inspect reviewer profiles, audit Local Guide history, or retrieve reviews written by a specific user. Whether you are vetting reviewer credibility, uncovering influencer journeys, or auditing suspicious review attacks, manual analysis is virtually impossible at scale.

This Actor accepts **Google Maps Contributor URLs**, **extended coordinate links**, **shortlinks**, or **numeric User IDs** and delivers a consolidated `PROFILE_WITH_REVIEWS` record for each contributor:

- 🏆 **Local Guide Intelligence:** Level (1 to 10), total points, target points required for the next tier, and official badge icon URL.
- 📊 **Contribution Counters:** Exact public counts of written reviews, star ratings, uploaded photos, videos, answers, and approved edits.
- 👤 **Profile Identity:** Public display name, high-resolution avatar image URL, and canonical User ID.
- 📜 **Full Reviews History:** Detailed review text, star rating (1–5), direct Google Maps review permalink, publication date, and attached photo URLs (`photos`).
- 📍 **Place & Geolocation Details:** Place name, category, full physical address, Google Place ID, and exact latitude/longitude coordinates.
- 💬 **Business Owner Responses:** Extracts the owner's response text and reply date whenever a business responded to the contributor.
- 🛡️ **Privacy & Status Detection:** Instantly detects whether a profile is active, restricted/private, or not found without crashing or failing your run.

***

### 🥊 Why Choose This Scraper? (Feature Comparison)

Most scrapers either run bloated headless browsers (crashing frequently and burning compute credits) or flatten all reviews into disjointed rows that duplicate contributor metadata hundreds of times.

Here is how this Actor compares to existing market alternatives:

| Feature / Capability | 🗺️ **This Actor** | 👤 Other Actors | 🔍 Other Scrapers / APIs | 🌐 Generic Browser Tools |
|---|:---:|:---:|:---:|:---:|
| **Scraping Engine** | **Fast Direct Requests** | Mixed / Slow | Proprietary API | Slow Browser (Puppeteer/Playwright) |
| **Data Structure** | **Flattened (1 row per review + profile)** | Flattened or inconsistent | Hierarchical JSON | Flattened or inconsistent |
| **Extraction Speed** | **Up to 200 reviews in ~1.5s** | Slow (10–20 reviews/call) | Rate-limited searches | Extremely slow (scrolling browser) |
| **Direct Review Permalinks** | ✅ **Yes (`review_permalink`)** | ❌ No | ❌ Partial | ❌ Rarely included |
| **Review Photo URLs** | ✅ **Yes (`photos` array)** | ⚠️ Inconsistent | ⚠️ Partial | ❌ Often omitted |
| **Business Owner Replies** | ✅ **Yes (text & date)** | ⚠️ Inconsistent | ⚠️ Inconsistent | ❌ Missing |
| **Place GPS Coordinates** | ✅ **Yes (latitude & longitude)** | ❌ Missing | ⚠️ Inconsistent | ❌ Missing |
| **Complete Local Guide Metrics** | ✅ **Level, points, next tier, badge** | ⚠️ Partial | ⚠️ Partial | ❌ Often missed |
| **Memory Footprint** | **Minimal (256 MB RAM)** | 512 MB – 1 GB | External API | Heavy (2 GB – 4 GB RAM) |
| **Ease of Use** | **100% No-Code (Web Browser)** | No-Code | Coding / API required | Complex setup |
| **Export Formats** | **Excel (.xlsx), CSV, Google Sheets, JSON** | CSV / JSON | JSON only | Limited |
| **Monetization Model** | **Fair Pay-Per-Event (PPE)** | Pay-Per-Event | Expensive Search Credit | High compute per hour |

***

### 📦 Output Format & Spreadsheet Exports

The Actor outputs data in a **flattened format (1 row per review)**. Every row contains the detailed review alongside the complete contributor profile metadata.

#### 📑 Perfect for Excel, CSV, Google Sheets & Databases

- **Immediate Spreadsheet Analysis:** Open directly in Microsoft Excel (.xlsx) or Google Sheets. Sort by star rating, filter by date, or build pivot tables instantly.
- **Developer-Friendly:** Programmers can easily group by `contributor_id` in Python, Pandas, or SQL (`df.groupby("contributor_id")`).
- **No Complex JSON Parsing:** Non-technical users get clean, readable columns without nested JSON text in cells.
- **Private Profiles Handled:** If a contributor profile is private or has 0 reviews, the Actor outputs 1 row with their profile metadata and `status: "PRIVATE"`.

***

#### Spreadsheet Columns / Fields

| Field Name | Type | Description |
| :--- | :--- | :--- |
| `contributor_name` | string | null | Public display name of the reviewer |
| `contributor_id` | string | Google Maps 21-digit numeric user ID |
| `contributor_url` | string | Direct canonical link to the contributor profile |
| `avatar_url` | string | null | Profile avatar image URL |
| `is_local_guide` | boolean | `true` if the contributor is a verified Local Guide |
| `local_guide_level` | integer | null | Local Guide tier (1 to 10) |
| `local_guide_points` | integer | null | Total accumulated Local Guide points |
| `points_to_next_level`| integer | null | Points needed to reach the next tier |
| `badge_url` | string | null | Official Local Guide badge icon link |
| `total_reviews_count` | integer | null | Lifetime reviews written |
| `total_ratings_count` | integer | null | Lifetime star ratings submitted without text |
| `total_photos_count` | integer | null | Total photos contributed |
| `total_videos_count` | integer | null | Total videos contributed |
| `total_answers_count` | integer | null | Total community answers |
| `total_edits_count` | integer | null | Total approved map edits |
| `is_private` | boolean | `true` if the profile has private/restricted contributions |
| `status` | string | `"ACTIVE"`, `"PRIVATE"`, `"NOT_FOUND"`, or `"UNKNOWN"` |
| `review_id` | string | null | Unique Google Maps review ID |
| `place_name` | string | null | Name of the reviewed business or landmark |
| `place_category` | string | null | Business category (e.g. `"Cafe"`, `"Restaurant"`) |
| `place_address` | string | null | Physical street address |
| `place_id` | string | null | Google Place ID (CID) |
| `latitude` | float | null | GPS latitude |
| `longitude` | float | null | GPS longitude |
| `stars` | integer | null | Star rating given (1 to 5) |
| `review_date` | string | null | Review date (e.g. `"a week ago"`, `"3 months ago"`) |
| `review_text` | string | null | Full text content of the review |
| `review_permalink` | string | null | **Direct Google Maps permalink** to this specific review |
| `contrib_place_url` | string | null | Contributor place URL on Google Maps |
| `photos` | array | High-resolution photo URLs attached to this review |
| `has_owner_reply` | boolean | `true` if the business owner replied to this review |
| `owner_reply` | string | null | Text of the business owner's response |
| `owner_reply_date` | string | null | Relative date of the business owner's reply |
| `error` | string | null | Error details if applicable |
| `timestamp` | string | ISO 8601 scrape timestamp |

***

### 🎯 High-Value Use Cases

#### 🌟 Local Influencer & Ambassador Outreach

Identify high-tier Local Guides (Levels 6–10) in your city or industry. Inspect their review style, photo uploads, and place preferences to discover trusted community brand ambassadors and food critics.

#### 🛡️ Review Fraud Detection & Reputation Defense

Audit reviewers to determine account legitimacy. Quickly differentiate between authentic local contributors with genuine reviews and fake burner accounts created solely to post negative reviews.

#### 🏢 Customer Feedback & Competitor Intelligence

Monitor top reviewers in your sector, discover where else your customers dine or shop, and analyze how competing business owners respond to reviewer feedback.

#### 📈 Local SEO & Citation Audits

Analyze how active Local Guides review businesses in your category, identify trending keywords, and understand what influences high-ranking local recommendations.

***

### 🔗 Supported Input Formats

Paste any of these formats and the Actor automatically resolves the canonical user profile:

1. **Standard Contributor Profile URLs:**\
   `https://www.google.com/maps/contrib/102520373756565203865`

2. **Tabbed Profile Links:**\
   `https://www.google.com/maps/contrib/102520373756565203865/reviews`\
   `https://www.google.com/maps/contrib/102520373756565203865/photos`

3. **Extended URLs with Map Coordinates & Query Parameters:**\
   `https://www.google.com/maps/contrib/102520373756565203865/reviews/@40.6925847,-74.1578387,11z/data=!4m3!8m2!3m1!1e1?hl=en-GB&entry=ttu&g_ep=EgoyMDI2MDkwOS4wIKXMDSoASAFQAw%3D%3D`

4. **Shortened Share Links:**\
   `https://maps.app.goo.gl/...`

5. **Raw Numeric User IDs:**\
   `102520373756565203865`

***

### ⚙️ Input Configuration

| Parameter | Type | Required | Default | Description |
| :--- | :--- | :---: | :--- | :--- |
| `contributors` | array | **Yes** | *None* | List of Google Maps contributor URLs, tab links, extended coordinate links, shortlinks, or numeric User IDs. |
| `maxReviews` | integer | No | `200` | Maximum number of reviews to extract per profile (0 to 200). Extracts up to this limit or total public reviews available in a single high-speed call. |
| `scrapeReviews` | boolean | No | `true` | When enabled, extracts the detailed `reviews` array. If disabled, extracts profile stats only. |
| `proxyConfiguration` | object | No | `{"useApifyProxy": true}` | Apify residential proxies are recommended to avoid rate limits and 403 blocks. |
| `maxConcurrency` | integer | No | `3` | Number of contributor profiles scraped concurrently (1 to 10). |
| `maxProxyRetries` | integer | No | `5` | Automatic proxy IP rotation retries upon rate limits or temporary blocks. |

***

#### Example Output Record (Single Row in Excel / JSON)

```json
{
  "contributor_name": "Reema Mulchandani",
  "contributor_id": "102520373756565203865",
  "contributor_url": "https://www.google.com/maps/contrib/102520373756565203865/reviews",
  "avatar_url": "https://lh3.googleusercontent.com/a-/ALV-UjXc8pSarhgq2xG0mE6F3j...",
  "is_local_guide": true,
  "local_guide_level": 7,
  "local_guide_points": 8117,
  "points_to_next_level": 15000,
  "badge_url": "https://maps.gstatic.com/mapfiles/localguides/badges/18px/level7.png",
  "total_reviews_count": 113,
  "total_ratings_count": 11,
  "total_photos_count": 878,
  "total_videos_count": 21,
  "total_answers_count": 555,
  "total_edits_count": 0,
  "is_private": false,
  "status": "ACTIVE",
  "review_id": "Ci9DQUlRQUNvZENodHljRjlvT2psaGVHNUNWMkpPYlRWVFdqZ3RMVXRmWTJOMk0yYxAB",
  "place_name": "Juhu Cafe",
  "place_category": "Cafe",
  "place_address": "123 Main St, New York, NY 10001, United States",
  "place_id": "ChIJN-gNnS0VrjsRZiJbdEPhcZ0",
  "latitude": 40.7128,
  "longitude": -74.0060,
  "stars": 5,
  "review_date": "a week ago",
  "review_text": "Juhu Cafe is a wonderful new addition to the area. The beachy atmosphere is bright and welcoming...",
  "review_permalink": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sCi9DQUlRQUNvZENodHljRjlvT2psaGVHNUNWMkpPYlRWVFdqZ3RMVXRmWTJOMk0yYxAB!2m1!1s0x0:0x9e4f80252384ff09!3m1!1s2@1:CAIQACodChtycF9oOjlheG5CV2JObTVTWjgtLUtfY2N2M2c%7C%7C?hl=en-GB",
  "contrib_place_url": "https://www.google.com/maps/contrib/102520373756565203865/place/ChIJN-gNnS0VrjsRZiJbdEPhcZ0",
  "photos": [
    "https://lh3.googleusercontent.com/grass-cs/ACvplmNaKbdVwMT1TibHnx1u8sfePPuH8hInF7w7ROzAMp5U_9u6F5Whx7JRshvgIhCtkH3FUJX9yWDgQTagZNzfuSdIK9UOh7A9PrIoknBzTsOOhwneqOOFMKkvsKygJv-S8gr63zEsK40VauD-=k-no"
  ],
  "has_owner_reply": true,
  "owner_reply": "Thanks so much for such a thoughtful review, Reema! We’re so glad you enjoyed your visit.",
  "owner_reply_date": "a week ago",
  "error": null,
  "timestamp": "2026-09-13T12:00:00.000Z"
}
```

***

### 💰 Fair Pay-Per-Event (PPE) Pricing

This Actor uses Apify's **Pay-Per-Event (PPE)** monetization model. You only pay for successful data extracted, with zero waste on idle server compute:

- **Per Contributor Profile (`profile` event):** Charged per contributor profile processed. Covers full profile identity, Local Guide badges, level, points, and lifetime contribution metrics (even if the profile has restricted/private contributions).
- **Per Review Extracted (`review` event):** Scales dynamically based on the exact number of detailed reviews successfully extracted.

#### Why Pay-Per-Event Saves You Money:

- **No Wasted Compute:** If a contributor only has 12 reviews, you are only charged for 12 reviews — not an arbitrary batch package.
- **Private Profiles Protection:** If a contributor profile is private or has 0 public reviews, you are only charged for the profile lookup.
- **No Monthly Lock-in:** Use it on-demand whenever you need it.

*You can view the current per-event rates under the **Pricing** tab in the Apify Console.*

***

### 🚀 Quick Start & Integration

#### 1. No-Code Web Console (Excel, CSV, or Google Sheets)

1. **Paste Your Profiles:** Paste any Google Maps contributor URLs, extended links, or numeric User IDs into the `contributors` box.
2. **Choose Review Limit:** Leave `maxReviews` at `200` to grab all recent reviews, or adjust as needed.
3. **Click Start:** Hit the green **Start** button and let the scraper run (typically 1–2 seconds per profile).
4. **Export in 1 Click:** Under the **Export** tab, click **Excel** or **CSV** to download your ready-to-use spreadsheet.

***

#### 2. Run via Python (`apify-client`)

```python
from apify_client import ApifyClient

## Initialize the ApifyClient with your API token
client = ApifyClient("YOUR_APIFY_API_TOKEN")

## Prepare Actor input
run_input = {
    "contributors": [
        "https://www.google.com/maps/contrib/102520373756565203865",
        "116847444302916322211"
    ],
    "maxReviews": 200,
    "scrapeReviews": True,
    "proxyConfiguration": { "useApifyProxy": True }
}

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

## Fetch and print results from the dataset
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"Contributor: {item.get('name')} (Level {item.get('local_guide_level')})")
    print(f"Total Reviews Scraped: {len(item.get('reviews', []))}")
```

***

#### 3. Run via Node.js / JavaScript (`apify-client`)

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

const client = new ApifyClient({
    token: "YOUR_APIFY_API_TOKEN",
});

const input = {
    contributors: [
        "https://www.google.com/maps/contrib/102520373756565203865",
        "116847444302916322211"
    ],
    maxReviews: 200,
    scrapeReviews: true,
    proxyConfiguration: { useApifyProxy: true }
};

const run = await client.actor("scraperpro/google-maps-contributor-scraper").call(input);

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
    console.log(`${item.name} - Level ${item.local_guide_level} (${item.reviews.length} reviews)`);
});
```

***

#### 4. Automated Workflows (Make, Zapier, Webhooks)

Easily trigger this Actor automatically via webhooks whenever a new negative or positive review is detected on your Google Business profile, and send enriched Local Guide auditor reports straight to Slack, Airtable, or Google Sheets.

***

### ⚡ Speed & Reliability

- **Ultra-Fast & Stable:** Extracts up to 200 reviews in ~1.5 to 2 seconds without browser lag or unexpected crashes.
- **Smart Anti-Blocking:** Automatically handles rate limits and rotates proxy sessions to ensure high success rates.
- **State Checkpointing:** Safe against restarts; already-scraped contributors are remembered so you never scrape or pay for duplicates.

***

### ❓ Frequently Asked Questions (FAQ)

##### Q: Do I need programming or coding skills to use this Actor?

**Not at all!** This tool is designed for non-technical users, business owners, agency marketers, and data teams alike. You can run everything directly inside your web browser in the Apify Console and download ready-to-open **Excel (.xlsx)** or **CSV** files with a single click.

##### Q: How many reviews can I extract per profile?

The Actor extracts up to your configured `maxReviews` (0 to 200, default is 200) or the total number of public reviews available on the contributor profile in a single fast call. For contributors with fewer reviews than `maxReviews`, all available public reviews are extracted.

##### Q: Does it extract photos uploaded by contributors?

Yes! Every review object in the `reviews` array includes the full `photos: [...]` list of high-resolution image URLs attached to that specific review.

##### Q: What happens if a contributor has set their profile to private?

If a contributor has enabled privacy settings on Google Maps, Google does not make their reviews publicly visible. The Actor gracefully identifies this, returns `status: "PRIVATE"`, marks `is_private: true`, and still extracts all publicly visible metadata (display name, avatar, Local Guide level, points, and contribution counts) with an empty `reviews` array.

##### Q: Does every review have a direct permalink?

Yes! Every review object includes a verified `review_permalink` that links directly to that specific review on Google Maps.

##### Q: What proxies should I use?

We strongly recommend using **Apify Residential Proxies** (`{ "useApifyProxy": true }`). While datacenter proxies may work for low volumes, residential proxies provide consistent speed and prevent Google rate-limiting.

##### Q: Can I scrape only profile statistics without reviews?

Yes. Simply set `"scrapeReviews": false` in the input configuration. The Actor will extract only the profile metadata, Local Guide level, and contribution counts.

***

### 👨‍💻 Support & Maintenance

Actively maintained. If Google makes updates to contributor layouts, updates and fixes are deployed promptly within 24–48 hours.

For bug reports, feature requests, or custom scraping pipelines, open an issue in the Apify Actor console.

***

### Keywords

local guide scraper
google maps reviewer scraper
google local guide data extraction
official google maps api alternative
google places api reviewer profile
reviewer profile scraper
google maps public profile scraper
local influencer data collection
review fraud detection tool
contributor api
google maps contribution scraper
google maps local guide scraper
google maps review api
contributor profile api
google maps public scraper
guide level scraper
local guide scraper python
google maps profile scraper
reviewer profile scraper python
local guide api
google places api alternative

# Actor input Schema

## `contributors` (type: `array`):

Paste Google Maps contributor profile URLs or numeric User IDs.

**Supported formats:**
• `https://www.google.com/maps/contrib/102520373756565203865`
• `https://www.google.com/maps/contrib/102520373756565203865/reviews`
• `https://www.google.com/maps/contrib/102520373756565203865/photos`
• Extended URLs with coordinates/query params: `https://www.google.com/maps/contrib/102520373756565203865/reviews/@40.6925847,-74.1578387,11z...`
• Share shortlinks: `https://maps.app.goo.gl/...`
• Raw user ID: `102520373756565203865`

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

How many reviews to extract per contributor (0 to 200). The actor extracts up to this limit or the total number of public reviews available for that profile in a single high-speed call. Default is 200.

## `scrapeReviews` (type: `boolean`):

If enabled, extracts full reviews written by the contributor, including stars, full text, direct review permalinks, place info, and owner replies.

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

Proxies to use. Apify Residential Proxies are recommended to prevent rate limits.

## `maxConcurrency` (type: `integer`):

Number of profiles to scrape concurrently (1 to 10).

## `maxProxyRetries` (type: `integer`):

Number of times to swap proxy IP upon rate limits or 403 blocks.

## Actor input object example

```json
{
  "contributors": [
    "https://www.google.com/maps/contrib/102520373756565203865",
    "116847444302916322211"
  ],
  "maxReviews": 200,
  "scrapeReviews": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxConcurrency": 3,
  "maxProxyRetries": 5
}
```

# Actor output Schema

## `results` (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 = {
    "contributors": [
        "https://www.google.com/maps/contrib/102520373756565203865",
        "116847444302916322211"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperpro/google-maps-contributor-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 = {
    "contributors": [
        "https://www.google.com/maps/contrib/102520373756565203865",
        "116847444302916322211",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scraperpro/google-maps-contributor-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 '{
  "contributors": [
    "https://www.google.com/maps/contrib/102520373756565203865",
    "116847444302916322211"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scraperpro/google-maps-contributor-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraperpro/google-maps-contributor-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/fQmUF4KtQ3dcQWNYh/builds/7eaN4gJdtL2fnuzY1/openapi.json
