Google Maps Place Matcher: Business Lookup by Name & Address
Match a messy list of business names and addresses to Google Maps: place ID, clean address, coordinates, phone, website, rating and reviews per row. A wrong house number or name is never billed.
Verification
Not yet in the weekly verification report.
Output fields
Authoritative field set from the dataset schema.
| Field | Type |
|---|---|
input | string|null |
input_id | string|null |
place_id | string|null |
name | string|null |
address | string|null |
street | string|null |
city | string|null |
state | string|null |
zip_code | string|null |
latitude | number|null |
longitude | number|null |
phone | string|null |
website | string|null |
rating | number|null |
review_count | integer|null |
categories | array|null |
google_maps_url | string|null |
matched_by | string|null |
confidence | string|null |
other_matches | array|null |
source_url | string|null |
notice | string|null |
notice_type | string|null |
Sample row
{
"input": "Blue Bottle Coffee 480 9th St Oakland",
"input_id": null,
"place_id": "ChIJLRIbILeAj4ARyWoMWFQmkSY",
"name": "Blue Bottle Coffee",
"address": "480 9th St, Oakland, CA 94607",
"street": "480 9th St",
"city": "Oakland",
"state": "CA",
"zip_code": "94607",
"latitude": 37.8012466,
"longitude": -122.2739477,
"phone": "(510) 653-3394",
"website": "https://bluebottlecoffee.com/us/eng/northern-california-cafes?utm_source=google&utm_medium=organic&utm_campaign=cafe_business_listing_norcal",
"rating": 4.4,
"review_count": 396,
"categories": [
"Coffee shop"
],
"google_maps_url": "https://www.google.com/maps/search/?api=1&query=Blue%20Bottle%20Coffee&query_place_id=ChIJLRIbILeAj4ARyWoMWFQmkSY",
"matched_by": "name + address",
"confidence": "high",
"other_matches": [],
"source_url": "https://www.google.com/maps/search/?api=1&query=Blue%20Bottle%20Coffee&query_place_id=ChIJLRIbILeAj4ARyWoMWFQmkSY"
} Inputs
| Field | Type | Req | Default | Description |
|---|---|---|---|---|
queries | array | no | ["Blue Bottle Coffee 480 9th St Oakland","starbucks lafayette ca 94549","1600 Amphitheatre Pkwy Mountain View CA"] | One per line, as messy as your list is: a business name with its address or city ("Blue Bottle Coffee 480 9th St Oakland"), a name and a ZIP code ("starbucks lafayette ca 94549"), or an address alone. Each line returns the one Google Maps place it is, or a free row when nothing fits. |
query | string | no | — | A single lookup, for API calls and saved tasks. Combined with the list above. |
rows | array | no | [{"id":"crm-17","name":"Tartine Bakery","city":"San Francisco","state":"CA"}] | A JSON list of objects with any of id, name, address, city, state, zip, country, e.g. [{"id": "crm-17", "name": "Tartine Bakery", "city": "San Francisco"}]. Your id comes back on the matched row as input_id, so you can join the result to your own list. When a row gives a name, the place must share a word with it; when it gives an address, the place must have its house number. |
maxItems | integer | no | — | Optional spend cap for the whole run: only the first this-many inputs are looked up, and a free row says how many were left. Leave empty to look up every input. |
proxyConfiguration | object | no | {"useApifyProxy":true} | Apify's datacenter proxy by default, which is what this actor was built for. |
Pricing
Pay per result (place-matched) — no charge for empty runs.
Example: 1000 matched places at $0.0015/result ≈ $1.50.
FAQ
What can I send?
Lines of text, one business or address each, as messy as your list is: a name with its street address or city, a name with a ZIP code, or an address alone. Or rows (JSON) with any of id, name, address, city, state, zip and country; the id comes back on the match as input_id.
How does it avoid the wrong business?
Before a match is billed, every number you gave (house number, ZIP) must be in the place's address, and at least half of the place's name words must be in what you sent (and, for a row with a name, half of your name's words in the place's name). So "Peet's Coffee 410 9th St Oakland" does not bill for Blue Bottle Coffee at 480 9th St: it comes back as a free row listing the Peet's locations Google offered.
What does an address alone return?
The place Google Maps has at that address, whatever it is called: "350 5th Ave New York NY" returns the Empire State Building, "1600 Amphitheatre Pkwy Mountain View CA" a Google building. matched_by says "address".
What does confidence mean?
high: Google Maps answered with this one place. medium: Google answered with several and this was its first. low: Google's first answers failed the check and a later one passed. other_matches lists the rest, which helps with chains (two Starbucks on the same street).
Do I need a Google API key?
No. The actor reads Google Maps' own search, the one the website uses, so there is no Cloud project, billing account or key.
How am I charged?
$0.0015 per input matched to a place. Inputs that match nothing, lookups Google refused and input mistakes are free rows. Set "Maximum inputs to look up" to cap a run's spend.
How fast is it?
Measured on 2026-11-06: 10 lookups in about 2 seconds, five at a time.
Which countries?
It was built and tested on US businesses and addresses, and the address fields (state, ZIP) are split the US way. A non-US query is sent to Google as written; include the city and country, and check the first rows before a large run.
Guides & use cases
Related actors