Google Maps Photos Leads Scraper avatar

Google Maps Photos Leads Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Google Maps Photos Leads Scraper

Google Maps Photos Leads Scraper

Collect public Google Maps business photos and metadata for brand monitoring, local audits, visual datasets, and competitor research.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Dmytro Paduchak

Dmytro Paduchak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Google Maps Photos Scraper

Collect publicly visible photo URLs from Google Maps places and export them as structured Apify Dataset records.

This Actor is a separate companion to the Google Maps Business Actor. It reuses the same public Google Maps place discovery and page navigation approach, but saves one output item per public photo. You can start it from Google Maps place URLs, search queries, or dataset items produced by the business Actor.

No Google Maps API key is required.

Input

Provide at least one source:

{
"searchQuery": "coffee shops in London",
"placeUrls": [
"https://www.google.com/maps/place/Example+Coffee/..."
],
"datasetItems": [
{
"businessName": "Example Coffee",
"googleMapsUrl": "https://www.google.com/maps/place/Example+Coffee/...",
"sourceQuery": "coffee shops in London"
}
],
"sourceDatasetId": "optional-business-actor-dataset-id",
"maxResults": 5,
"maxPhotosPerPlace": 10,
"language": "en",
"country": "uk",
"apifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"proxySessionRetries": 1,
"adaptiveThrottle": true
}
FieldTypeDefaultDescription
searchQuerystring-Single Google Maps search query.
searchQueriesstring[][]Multiple search queries.
placeUrls / googleMapsUrlsstring[][]Direct Google Maps place URLs.
startUrlsstring[] or { url }[][]Apify-style URL input.
datasetItemsobject[][]Items from the Google Maps Business Actor. Each item should include googleMapsUrl, placeUrl, or url.
sourceDatasetIdstring-Dataset ID or name to read business Actor items from.
maxResultsnumber5Maximum unique places to process across all sources.
maxPhotosPerPlacenumber10Maximum public photo records to save per place.
languagestring"en"Google Maps interface language.
countrystring-Optional country hint, such as uk, us, de, or fr.
apifyProxybooleanautoEnable Apify Proxy.
apifyProxyGroupsstring[][]Proxy pools: RESIDENTIAL, DATACENTER, SERP.
proxyCountriesstring[][]Route Apify Proxy through specific ISO 2-letter countries.
proxyUrlsstring[][]Custom proxy URLs. These override Apify Proxy.
proxySessionRetriesnumber1Retry browser sessions after blocking, empty results, or navigation failures.
adaptiveThrottlebooleantrueSlow down automatically when Google Maps loads slowly or shows blocking signals.

Output

Each result is one photo record. The Actor preserves original place fields from dataset input when provided, enriches missing place fields from the Google Maps page when visible, and appends photo-specific fields.

{
"businessName": "Example Coffee",
"category": "Coffee shop",
"rating": 4.6,
"reviewCount": 321,
"address": "10 Example Street, London",
"phone": "+44 1234 567890",
"website": "https://example.com/",
"googleMapsUrl": "https://www.google.com/maps/place/Example+Coffee/...",
"latitude": 51.5072,
"longitude": -0.1276,
"placeId": "0x487...",
"sourceQuery": "coffee shops in London",
"photoUrl": "https://lh3.googleusercontent.com/...",
"photoIndex": 1,
"photoAuthor": "Visible contributor name",
"photoCaption": "Visible caption or nearby label",
"photoSource": "google_maps_photos_panel",
"photoPageUrl": "https://www.google.com/maps/place/Example+Coffee/...",
"scrapedAt": "2026-05-13T12:00:00.000Z"
}

Some optional fields, such as photoAuthor, photoCaption, or photoPageUrl, may be missing when Google Maps does not expose them in the public UI.

How It Works

The Actor accepts direct places immediately. For search queries, it opens public Google Maps search results, scrolls the result list, and collects place URLs. For business Actor dataset input, it keeps the original business fields and uses the stored Google Maps URL.

For each place, it opens the public place page, extracts visible business metadata, opens the photos panel when available, scrolls through public photos, normalizes Google-hosted image URLs, and saves unique photo records.

Deduplication uses:

  • Google Maps place ID when available
  • Normalized Google Maps place URL
  • Normalized public photo URL

Reliability Notes

Google Maps can show captcha or automated-traffic blocking, especially on repeated runs, high result counts, or datacenter IPs. The Actor detects common blocking pages and retries with fresh proxy sessions when configured.

The Actor metadata requests a 3600 second default timeout, but an individual run or task can still be started with a shorter timeout such as 300 seconds. For short runs, keep maxResults, maxPhotosPerPlace, and proxySessionRetries low. The scraper stops early with partial results when it detects that the Apify timeout is close.

For larger runs:

  • Enable Apify Proxy, preferably a residential pool
  • Keep maxResults and maxPhotosPerPlace moderate
  • Use focused search queries
  • Increase proxySessionRetries and maxThrottleDelayMs if Google Maps loads slowly
  • Review output quality before scaling

This Actor is intended for academic, educational, and research purposes only. Users are responsible for ensuring that their use complies with Google's Terms of Service, Google Maps Terms, and applicable local laws regarding data privacy and scraping.

Automated access to Google services may be restricted. We do not encourage or condone use that violates the rights of others or a service provider's terms.