Google Maps API - Places, Reviews, Emails & Leads avatar

Google Maps API - Places, Reviews, Emails & Leads

Pricing

from $2.80 / 1,000 places

Go to Apify Store
Google Maps API - Places, Reviews, Emails & Leads

Google Maps API - Places, Reviews, Emails & Leads

No Google API key needed. Google Maps API and Places API alternative: search places by keyword and location or by URL / place_id. Phone, website, rating, hours, GPS, reviews and website emails as JSON or CSV. Pay per place.

Pricing

from $2.80 / 1,000 places

Rating

0.0

(0)

Developer

PNDA

PNDA

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

A Google Maps API and Google Places API alternative that needs no API key. Search businesses on Google Maps by keyword and location, or look up specific places by URL or place_id, and get clean JSON, CSV or Excel: name, address, phone, website, rating, reviews count, categories, opening hours, GPS coordinates, place_id, CID and Google Maps link. Add the latest reviews and the public emails found on each business website to turn Google Maps into a local business leads list.

No Google Cloud account, no API key, no proxy, no browser to set up. Type a search, pick a location, get a spreadsheet of leads. Pay only for the places delivered.

Why use this Google Maps API instead of the official Places API?

  • No API key and no Google Cloud billing account: you call one Apify endpoint, Apify handles the rest.
  • All fields in one call: the official Places API splits contact, atmosphere and reviews into separately billed SKUs. Here a place comes back with phone, website, hours, rating and coordinates at a flat price.
  • More than 5 reviews: the official Places API returns at most 5 reviews per place. This Actor returns up to 1,000, sorted the way you want.
  • Emails: the official API has no email field. This Actor visits the business website and returns the public emails it finds (local business leads, ready for outreach).
  • Bulk: many search terms and many place IDs in a single run, deduplicated.

What you get

  • Every useful field of a Google Maps listing: name, full address, phone, website, rating, reviews count, main category and all categories, price level, open/closed state, opening hours per day, latitude/longitude, place_id, CID and a Google Maps link.
  • Search by keyword and location: "dentist" in "Austin, TX", "coffee shop" in "Paris, France"... up to about 120 places per search, the maximum Google Maps shows.
  • Look up specific places: paste Google Maps place URLs, place_ids (ChIJ...) or CIDs.
  • Reviews (optional): text, rating, date, author, local guide flag, likes, owner response and photos, sorted by newest, most relevant, highest or lowest rating.
  • Emails (optional): the Actor visits each business website (homepage and contact page) and returns the public email addresses it finds.
  • Deduplicated: a place found by two searches is delivered and billed once.
  • Budget-safe: the Actor never fetches more than your Maximum cost per run can pay for.

Input

FieldDescriptionDefault
searchQueriesWhat you would type in Google Maps, one per line.-
locationCity, region or country added to every search term.-
maxResultsPerSearchPlaces per search term (5 to 120).20
placeUrlsGoogle Maps place URLs, place_ids or CIDs to look up directly.-
maxReviewsPerPlaceReviews added to each place (0 = none).0
reviewsSortnewestFirst, qualityScore, ratingHigh or ratingLow.newestFirst
scrapeEmailsFind emails on each place's website.false
coordinatesOptional map center: "latitude,longitude[,zoom]".-
languageLanguage of the results (en, fr, de...).en
countryGoogle country code (us, gb, fr...).us
{
"searchQueries": ["dentist", "orthodontist"],
"location": "Austin, TX",
"maxResultsPerSearch": 50,
"maxReviewsPerPlace": 10,
"scrapeEmails": true
}

Output

One row per unique place:

{
"type": "place",
"searchQuery": "coffee shop in Paris, France",
"name": "Café Example",
"address": "12 Rue de Rivoli, 75004 Paris, France",
"phone": "+33 1 23 45 67 89",
"website": "https://cafe-example.fr/",
"rating": 4.6,
"reviewsCount": 1234,
"category": "Coffee shop",
"categories": ["Coffee shop", "Cafe"],
"priceLevel": "€€",
"openState": "Open ⋅ Closes 7 PM",
"openingHours": { "monday": "8 AM–7 PM", "tuesday": "8 AM–7 PM" },
"latitude": 48.8559,
"longitude": 2.3589,
"placeId": "ChIJ...",
"dataId": "0x47e66e1f...:0x40b82c36...",
"cid": "290832459437401184",
"googleMapsUrl": "https://www.google.com/maps/search/?api=1&query=Caf%C3%A9%20Example&query_place_id=ChIJ...",
"emails": ["contact@cafe-example.fr"],
"reviews": [
{ "rating": 5, "text": "Best flat white in the Marais.", "publishedAt": "2026-09-01T10:12:00Z", "authorName": "Ann", "isLocalGuide": true, "ownerResponse": "Thank you Ann!" }
],
"scrapedAt": "2026-09-29T12:00:00.000Z"
}

emails and reviews appear only when the options are on. A place given by URL that no longer exists returns {"status": "not-found"} and is not billed. A SUMMARY record in the key-value store gives the run totals.

Pricing

Pay per event, only for what is delivered:

EventPrice
Place from a search$2.80 per 1,000 places
Place looked up by URL / place ID$0.04 per place
Review$2.50 per 1,000 reviews
Place with at least one email found (option)$1.90 per 1,000 places
Run start$0.01 per run

Duplicates, places without email and places not found are free. Example: 1,000 dentists with emails found on 400 of them costs $0.01 + $2.80 + $0.76 = $3.57.

This Actor is available on paid Apify plans only. On a free plan, the run returns a single item that explains this, and nothing is billed.

Use it through the API

curl -X POST "https://api.apify.com/v2/acts/pnda~google-maps-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQueries": ["plumber"], "location": "Chicago, IL", "maxResultsPerSearch": 40}'

It also works from Make, Zapier, n8n and the Apify Python and JavaScript clients.

FAQ

Do I need a Google Maps API key or a Google Places API key? No. You only need an Apify account on a paid plan. There is nothing to set up on Google Cloud.

Can I get Google Maps reviews by place ID? Yes. Put the place_id (or the Google Maps URL) in placeUrls and set maxReviewsPerPlace.

Why about 120 places at most per search? Google Maps itself stops there. To cover a whole city, split it: one search per neighborhood or per category.

How do I stay under a budget? Set Maximum cost per run in the run options. The Actor stops before it goes over.

Are the emails verified? They are the addresses published on the business website. To check that the mailbox exists, run them through Email Verifier.

Is it legal? The Actor only collects publicly available business information. Personal data in reviews (author names) may be protected by GDPR and similar laws: process it only with a legitimate reason.