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

Download original uncompressed high-res photos (=s0) and total photo view counts from any Google Maps Local Guide or contributor. Fast, pure HTTP, and pay per event.

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

## Pricing

from $1.20 / 1,000 photos

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 Photos Scraper

> **Looking to download original, full-resolution photos uploaded by any Google Maps Local Guide or contributor? Want to know how many millions of views their photos have reached?**\
> Just paste a profile link, click **Start**, and get hundreds of high-res photos with place details in seconds.

***

### 🚀 Try It in 3 Easy Steps

1. **Copy a Google Maps Contributor link** (e.g., from any review or photo you see on Google Maps).
2. **Paste it into the input box** below.
3. **Click Start** and instantly download your photos, view counts, and venue details in **Excel**, **CSV**, or **JSON**.

***

### ✨ What You Can Extract

- 📸 **Original Quality Photos:** Direct links to full-size, uncompressed images just as the photographer uploaded them.
- 👁️ **Verified Total Photo Views:** See the contributor's actual audience reach (e.g. 10M, 25M, or 50M+ total views).
- 📍 **Exact Place & Address:** Every photo is tagged with the venue name, street address, category, and map link.
- 🎖️ **Local Guide Status:** Discover their Local Guide level (1–10), points, and official badge.
- 💬 **Captions & Upload Dates:** Read the photographer's caption, upload date, and time elapsed.
- 📊 **Ready for Spreadsheets:** Clean, organized data with 1 row per photo, perfect for Excel or Google Sheets.

***

### 🎯 Popular Ways to Use This Scraper

#### 1. Find High-Impact Local Influencers

Identify top Google Local Guides in your city who have accumulated millions of photo views. Partner with them for restaurant launches, product reviews, and local brand promotions.

#### 2. Collect Restaurant Dishes & Menus

Gather real customer photos of food, cocktails, printed menus, and dining interiors across thousands of restaurants.

#### 3. Hotel & Travel Destination Research

Extract authentic guest photos of hotel rooms, resort amenities, pools, and vacation spots to see what venues actually look like in real life.

#### 4. Storefront & Retail Monitoring

Audit how retail locations, storefronts, and signage appear to everyday customers across different neighborhoods.

#### 5. AI Training & Visual Datasets

Collect high-resolution, localized photo datasets categorized by business type, location, and upload timeline.

***

### 📥 Simple Input Guide

| Setting | What It Does | Default |
| :--- | :--- | :--- |
| **Contributor URLs or User IDs** | Paste any contributor profile link, photos tab link, or user ID. | *Required* |
| **Max Photos per Contributor** | How many photos you want to extract per profile (up to 200). | `50` |
| **Extract Photos List** | Keep enabled to get photo links. Disable if you only want profile view stats. | `true` |
| **High-Resolution Image Links** | Automatically serves original, uncompressed full camera resolution. | `true` |
| **Proxy Configuration** | Automatically prevents rate limits so your runs finish smoothly. | Enabled |

#### Supported Link Formats

You can paste any of these formats directly:

- `https://www.google.com/maps/contrib/102520373756565203865`
- `https://www.google.com/maps/contrib/102520373756565203865/photos`
- `https://www.google.com/maps/contrib/102520373756565203865/reviews`
- Short share links: `https://maps.app.goo.gl/...`
- Raw user ID number: `102520373756565203865`

***

### 📤 Preview of Your Downloaded Data

Every photo includes complete contributor info and venue details:

```json
{
  "name": "Reema Mulchandani",
  "isLocalGuide": true,
  "localGuideLevel": 7,
  "totalPhotosCount": 878,
  "totalPhotoViews": 16200410,
  "photoUrlHighRes": "https://lh3.googleusercontent.com/gps-cs/AH1DqX...=s0",
  "caption": "Side of red chili sauce",
  "imageWidth": 4032,
  "imageHeight": 3024,
  "uploadDate": "2026-09-05",
  "placeName": "Juhu Cafe",
  "placeAddress": "517 Union Blvd Unit B, Totowa, NJ 07512",
  "placeCategory": "Cafe",
  "placeRating": 5.0,
  "placeReviewsCount": 65,
  "placeMapsUrl": "https://www.google.com/maps/place/...",
  "latitude": 40.9013793,
  "longitude": -74.2169567
}
```

***

### ❓ Frequently Asked Questions (FAQ)

#### What makes the photo quality "High Resolution"?

By default, Google thumbnails are downscaled for mobile screens. This scraper retrieves the original camera-resolution image file uploaded by the contributor, giving you crisp, uncompressed photos suitable for high-definition displays and design work.

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

If a user's Google account privacy settings hide their photos, the scraper will cleanly report their profile status as `"PRIVATE"` without failing, allowing your batch run to continue uninterrupted.

#### Can I just check a contributor's total views without downloading photos?

Yes! Turn off the **Extract Photos List** toggle. The scraper will instantly fetch the contributor's name, Local Guide level, and total view count in less than a second.

#### Can I export the data to Excel or Google Sheets?

Yes! As soon as your run completes, click the **Export** button on Apify and choose **CSV**, **Excel**, or **JSON**. You can also connect it directly to Google Sheets or webhooks.

***

### 🔗 Related Google Maps Scrapers

- 📝 [Google Maps Contributor Reviews Scraper](https://apify.com/scraperpro/google-maps-contributor-scraper) — Scrape all written reviews, ratings, and feedback from Local Guides.
- 🔍 [Google Maps Reviews Tracker](https://apify.com/scraperpro/google-maps-reviews-tracker) — Monitor reviews for your business and get alerted to deleted or edited reviews.

# 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/photos`
• `https://www.google.com/maps/contrib/102520373756565203865/reviews`
• Extended URLs with coordinates/query params
• Share shortlinks: `https://maps.app.goo.gl/...`
• Raw user ID: `102520373756565203865`

## `maxPhotos` (type: `integer`):

How many photos to extract per contributor (0 to 200). Default is 50.

## `scrapePhotos` (type: `boolean`):

If enabled, extracts individual photo items uploaded by the contributor with captions, high-res links, and place info. If disabled, only extracts the contributor profile summary and stats.

## `highResOnly` (type: `boolean`):

Automatically append `=s0` to Google photo URLs to retrieve the original full-resolution, uncompressed image.

## `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",
    "113063547225283431536"
  ],
  "maxPhotos": 50,
  "scrapePhotos": true,
  "highResOnly": 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",
        "113063547225283431536"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperpro/google-maps-contributor-photos-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",
        "113063547225283431536",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scraperpro/google-maps-contributor-photos-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",
    "113063547225283431536"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scraperpro/google-maps-contributor-photos-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-photos-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/8SRmH83iVuntCjgzz/builds/QtYYaTWHRWbbJ5s2K/openapi.json
