Google Maps Data Validator — Maps Quality Guard
Pricing
from $1.00 / 1,000 business records
Google Maps Data Validator — Maps Quality Guard
Already have Google Maps business leads? Flag duplicate listings, out-of-area places, missing fields, and changes between runs before CRM import. Works with Apify Dataset IDs, JSON, and CSV. Conservative branch matching; no live scraping or contact verification.
Pricing
from $1.00 / 1,000 business records
Rating
0.0
(0)
Developer
PBT Guard
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Features
Share
Maps Quality Guard — Business Data Validator

Validate business datasets before CRM import: duplicates, wrong geographic area, missing fields and changes across runs. This Actor does NOT scrape Google Maps, fetch websites, verify email deliverability or send messages.
Google Maps scraper -> quality-checked CRM export
You already have business records. Before sending them to a CRM, use this Actor to identify repeated Google Place IDs, locations outside your target area, incomplete source fields, and changes since an earlier dataset. It keeps every source row with a transparent decision so you can inspect excluded and review records before filtering.
Try the synthetic sample: Open Maps Quality Guard in Apify Console. The prefilled input contains 3 fictional businesses. One is a repeated Place ID; the other two are unique. No other scraper or API key is needed for this sample.
| Sample business | Decision | Why |
|---|---|---|
| Harbor Coffee (richer source row) | accepted | Unique matching Place ID, more complete fields |
| Harbor Coffee (second source row) | excluded | DUPLICATE_BUSINESS; points to the retained row |
| Garden Cafe | accepted | Different Place ID and address |
The sample above is fictional. A 3-row run producing 2 accepted and 1 excluded was verified in Apify; this is not a guarantee for other datasets.
Use your own Google Maps Scraper results in three steps:
- Open the source scraper's Storage -> Dataset and copy its Dataset ID (not the run URL or an API token).
- In this Actor's Input, clear the prefilled
recordsdemo array and choose yoursourceDatasetId. Optionally providepreviousDatasetIdto compare runs, and all ofcenterLat,centerLng,radiusKmfor a radius check. - Start the Actor. In Output, inspect
statusandreasonCodes. Export the default dataset to JSON/CSV, or filter forstatus = acceptedin your downstream CRM import.
Best for: local SEO agencies, B2B data teams, CRM integrators, and developers working with existing Google Maps exports of up to 10,000 rows. For ambiguous matches, the Actor marks records for review rather than deleting branches automatically.
Pricing: $0.001 per output row ($1 per 1,000 records) plus the stated per-start charge. Accepted, review, and excluded output rows are billed; the source scraping Actor is billed separately.
Features
- Duplicate detection: prefer exact Google Place ID; otherwise match normalized business name + street address or name + coordinates. Distinct branches are not merged just because their names are similar.
- Geographic validation: optional latitude, longitude and radius in km. Outside records are excluded; missing/invalid coordinates require review, not a false outside verdict.
- Completeness: flags missing address, website, phone and email without claiming they do not exist.
- Compare datasets: detects new, changed, unchanged and unverifiable businesses by stable identity.
- Output: default dataset with accepted/review/excluded rows, reasons, heuristic score and normalized fields; SUMMARY JSON in key-value store.
Quick start
- Supply exactly one source: records (JSON array), sourceDatasetId (accessible Apify dataset) or csvText (CSV with headers). Clear the default synthetic demo records before choosing dataset or CSV.
- Optional: provide previousDatasetId OR previousRecords to compare runs.
- Optional: set centerLat, centerLng and radiusKm together.
- Run and inspect Output. Export JSON/CSV using Apify's dataset export.
Example input — synthetic demo
{"records": [{"title":"Harbor Coffee","placeId":"demo-101","address":"10 Harbor Street, Izmir","location":{"lat":38.42,"lng":27.13},"website":"https://example.com","phone":"+90000000000"},{"title":"Harbor Coffee","placeId":"demo-101","address":"10 Harbor Street, Izmir","location":{"lat":38.42,"lng":27.13}},{"title":"Garden Cafe","placeId":"demo-102","address":"20 Garden Avenue, Izmir","location":{"lat":38.425,"lng":27.14}}],"maxRecords": 1000, "centerLat":38.42, "centerLng":27.13, "radiusKm":10}
The two Harbor Coffee rows have the same Place ID. The more complete one is retained; the other is flagged duplicate. The Garden Cafe branch is separate.
Outputs
- status: accepted, review, excluded. All input records (including excluded and review) are returned, for transparent decision-making.
- qualityScore: 0–100 heuristic data completeness score, NOT proof that a business is real or reachable.
- reasonCodes: e.g. DUPLICATE_BUSINESS, MISSING_PHONE, LOCATION_UNVERIFIED, OUTSIDE_TARGET_RADIUS.
- identityKey / identityEvidence / duplicateOf: match rationale and source-row link.
- changeStatus / changedFields: previous-data comparison, when supplied.
- distanceKm: numeric Haversine distance if a valid center and source coordinates are provided.
- businessName, placeId, address, city, website, phone, email, rating, reviewCount, latitude, longitude, sourceUrl: selected source fields, not independently verified.
Limits and privacy
- Maximum 10,000 rows per current/baseline dataset; default maxRecords 1,000. CSV text at most 2 MB, 80 columns.
- No live website checks and no third-party API calls. The only network requests use the Apify SDK to read selected Apify datasets and save results.
- Source data may contain personal information; do not process records without a lawful basis. We don't log source rows or external credentials.
- Location data is based only on source coordinates; city names are not geocoded.
- Place IDs and contact values are from the source, not independently validated. Duplicate detection is heuristic; review excluded rows before deleting data.
- Source fields not needed for validation are not copied to the output. Records are stored under your Apify account with its standard access/retention settings.
- No automatic outreach, stealth scraping, or login automation.
Pricing
Live Apify Store pricing: $0.001 per output dataset row ($1 / 1,000 business records), plus $0.00005 per Actor start. Each output row is billable whether marked accepted, review, or excluded. Apify platform usage is included in these prices (not separately charged to the user); source scraping and data acquisition are NOT included. The actual total charge is determined by event counts and your plan discounts, if any. The Actor does not run external paid APIs.
Support and maintenance
Open an Issue on the Actor page. Include only sanitized, synthetic example input, the error type and expected result; never post secrets or client records.
Changelog
0.1.0 — deterministic duplicate and location checks, missing-field flags, baseline comparison, CSV/JSON/Apify dataset input, summary and output schema.