# Changelog of Google Maps Scraper — Leads, Emails, Phone Numbers & Contacts (`kestrel/google-maps-scraper`) Actor

- **URL**: https://apify.com/kestrel/google-maps-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/kestrel/google-maps-scraper.md

## Changelog

### 1.1 — 2026-09-21

- Fixed: `is_claimed` was `true` for every place, so the `unclaimed` lead flag never appeared. It is now read from Google's own "Claim this business" link (in tests on Shibuya restaurants, 4–14% of listings are unclaimed).
- New free filter `isClaimed` (`any` / `yes` / `no`): keep only unclaimed listings — the ones Google still offers to "Claim this business" — or only claimed ones. Filtered places are not charged.
- Listing rewritten for AI agents and MCP clients: the inputs an agent needs first (contacts, email-only, website, rating, review and claimed filters, monitoring) now lead the input schema, every input says what to pass and what it costs, and the README opens with a request-to-input table.

### 1.0 — 2026-09-21

First release.

- Google Maps places as one flat row each: ids and link, name and categories, address in parts, coordinates and plus code, phone in local and international format, website and domain, rating, review count and the per-star histogram, claimed and closed status, opening hours, description, attributes, booking link, cover photo and photo count, timezone.
- Searches × locations, full phrases, circles, bounding boxes and polygons, pasted search URLs, place URLs, short links, place ids, feature ids and CIDs. Input saved for other Google Maps actors pastes unchanged (`searchStringsArray`, `locationQuery`, `maxCrawledPlacesPerSearch`, `countryCode`).
- Free filters applied before billing: rating, review count, has website, has phone, categories, name, closed, inside the area, skip-lists by id or by dataset, only places with an email. The status row counts what each filter removed.
- Contact enrichment from the place's own website (home page plus contact, about, team and imprint pages): emails with their source page, phone numbers, Facebook, Instagram, LinkedIn, X, YouTube, TikTok, WhatsApp. `contact-found` is charged only when something was found. Measured on 200 places: a contact for 51%, an email for 34%.
- Full coverage: the area is split into a grid to go past the 120–220 places a single query lists; every place is delivered and billed once.
- Only-new monitoring with a monitor key: later runs deliver and bill only places not delivered before.
- A location Google Maps does not know ends as a successful, free run with an explanation instead of another town's places; a small town that answers empty is searched again around its looked-up centre.
- Answers that arrive with review counts stripped (about half of them) are asked again, so `review_count` is filled on every row.
- Charged equals delivered: rows are charged first and only the charged rows are written; the spending limit and an abort both stop billing and delivery at the same moment.
