# Google Maps Exact Match Guard (`firstrate/google-maps-exact-match-guard`) Actor

Prevent wrong-business Google Maps matches from entering your CRM or database. Verifies the expected name and address and returns MATCHED only with strong evidence; otherwise it refuses the result. Unofficial and not affiliated with Google.

- **URL**: https://apify.com/firstrate/google-maps-exact-match-guard.md
- **Developed by:** [First Rate](https://apify.com/firstrate) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Exact Match Guard

**Stop wrong-business Google Maps matches before they enter your CRM, lead list, database, or automation.**

Give the Actor the business name and address you expect. It performs one tightly scoped Google Maps lookup, compares the returned candidate against that expected identity, and returns `matched` only when the evidence is strong enough. Weak or contradictory results are refused instead of silently passing through.

### What you get

- `matched` — strong enough evidence to auto-use the returned business
- `ambiguous` — plausible candidate, but not safe enough to auto-select
- `no_match` — not verified; this does **not** necessarily mean the business does not exist

The Actor is intentionally **fail-closed**: questionable results are never labeled `matched`.

### Why use it

Google Maps search can sometimes return a plausible but different business. That can silently contaminate:

- CRM imports
- lead enrichment
- outreach lists
- review collection
- location databases
- automated business-data workflows

This Actor acts as a small identity-verification guard before downstream automation trusts the result.

### Example input

```json
{
  "name": "Apple Park Visitor Center",
  "address": "10600 N Tantau Ave, Cupertino, CA 95014, United States",
  "location": "Cupertino, CA"
}
```

Optional `website` and `phone` fields can provide additional evidence when available.

### Example outcomes

#### Strong match

```json
{
  "status": "matched",
  "confidence": "high",
  "safeToAutouse": true
}
```

#### Weak or conflicting identity

```json
{
  "status": "no_match",
  "confidence": "high",
  "safeToAutouse": false
}
```

Treat `no_match` as **not verified**, not as proof that the business is absent from Google Maps.

### How it works

1. Builds one exact search from the expected business name + address.
2. Requests at most one candidate from the upstream Google Maps search provider.
3. Compares name and address similarity.
4. Penalizes contradictions such as conflicting street numbers or postal codes.
5. Returns `matched` only when strict verification thresholds are satisfied.

The current version calls `compass/crawler-google-places` as its upstream Google Maps search provider with a one-result cap.

### Best practices

Use the most complete street address you have. Partial addresses are intentionally treated conservatively and may be returned as not verified.

For automation, rely on `safeToAutouse: true` rather than assuming every returned candidate is trustworthy.

### Current validation

Private tests before Store launch demonstrated:

- known wrong Google Maps candidate → rejected (`no_match`, high confidence)
- exact known-good business/address → accepted (`matched`, high confidence)
- incomplete address → refused automatic matching

This is an early market-test release. These checks demonstrate the intended fail-closed behavior but do not establish universal accuracy across every country, address format, or business type.

### Disclaimer

This is an independent, unofficial tool. It is not affiliated with, endorsed by, or sponsored by Google. Google Maps is a trademark of Google LLC.

# Actor input Schema

## `name` (type: `string`):

The business name you expect to find on Google Maps.

## `address` (type: `string`):

Use the most complete street address you know. Complete addresses produce safer verification decisions.

## `location` (type: `string`):

City/region used to focus the Google Maps search. If omitted, the Actor derives it from the address when possible.

## `website` (type: `string`):

Optional website/domain evidence. If supplied and the candidate has a conflicting domain, the Actor treats that as a contradiction.

## `phone` (type: `string`):

Optional phone-number evidence used when the Google Maps candidate exposes a phone number.

## Actor input object example

```json
{
  "name": "Apple Park Visitor Center",
  "address": "10600 N Tantau Ave, Cupertino, CA 95014, United States",
  "location": "Cupertino, CA",
  "website": "https://www.apple.com/"
}
```

# Actor output Schema

## `results` (type: `string`):

The default dataset contains the Actor's verification decision, confidence, expected identity, candidate evidence, and upstream run metadata.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("firstrate/google-maps-exact-match-guard").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("firstrate/google-maps-exact-match-guard").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 '{}' |
apify call firstrate/google-maps-exact-match-guard --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,firstrate/google-maps-exact-match-guard"
        }
    }
}

```

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/27a1UlqkOaPB0UYxS/builds/16B6zppFIxvQm7qCt/openapi.json
