Google Maps Data Validator — Maps Quality Guard avatar

Google Maps Data Validator — Maps Quality Guard

Pricing

from $1.00 / 1,000 business records

Go to Apify Store
Google Maps Data Validator — Maps Quality Guard

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

PBT Guard

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Features

Limited permissions

Share

Maps Quality Guard — Business Data Validator

Maps Quality Guard brand icon

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 businessDecisionWhy
Harbor Coffee (richer source row)acceptedUnique matching Place ID, more complete fields
Harbor Coffee (second source row)excludedDUPLICATE_BUSINESS; points to the retained row
Garden CafeacceptedDifferent 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:

  1. Open the source scraper's Storage -> Dataset and copy its Dataset ID (not the run URL or an API token).
  2. In this Actor's Input, clear the prefilled records demo array and choose your sourceDatasetId. Optionally provide previousDatasetId to compare runs, and all of centerLat, centerLng, radiusKm for a radius check.
  3. Start the Actor. In Output, inspect status and reasonCodes. Export the default dataset to JSON/CSV, or filter for status = accepted in 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

  1. 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.
  2. Optional: provide previousDatasetId OR previousRecords to compare runs.
  3. Optional: set centerLat, centerLng and radiusKm together.
  4. 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.