Google Maps Scraper: Leads with Phones, Websites and Emails
This Actor returns businesses from Google Maps searches or place links with name, phone, website, address, rating, review count, hours and category, and can visit each website for emails and social links. It is for sales teams, agencies and local SEO work that need clean lead lists by search term and location.
Main price: $1.50 per 1,000 places, same on every Apify plan.
What you can do with it
- Build lists of dentists, plumbers, restaurants or any local business with phones and emails.
- Find businesses in a city, zip code or neighborhood and load them into a CRM.
- Count competitors per area and compare ratings and review counts.
- Check categories, ratings and opening hours for local SEO.
- Paste Google Maps place links and get structured data back.
What you get
Results come as rows in an Apify dataset, which you can export as JSON, CSV or Excel or read over the API. These are the main fields:
| Field | Example | Meaning |
|---|---|---|
name, category | Austin Dental Works, Dentist | Business and main category |
address, city, postalCode | 4601 N Lamar Blvd #503 | Address fields |
phone, phoneInternational | +15128779822 | Phone number |
website | https://www.austindentalworks.com/ | Business website |
rating, reviewsCount | 4.9, 636 | Google rating and number of reviews |
openingHours | [{ day, hours }] | Opening hours by day |
emails, facebook, instagram | info@austindentalworks.com | Contacts, with Find emails and social links on |
Pricing
This Actor is pay per event, with one price for every Apify plan, the free plan included. Prices are per 1,000 events.
| Event | What is charged | Price per 1,000 |
|---|---|---|
| Place | One unique place with name, address, phone, website, rating and hours. | $1.50 |
| Place contacts | Emails or social links found on the place website. Charged only when at least one is found. | $1.00 |
No run start fee. Prices come from the Apify Store and can change; the Actor's Apify page always shows the current ones. Platform usage is billed through your Apify account.
Run it from code
Create an API token in Apify Console (Settings, API and Integrations) and replace YOUR_APIFY_TOKEN. This call starts a run with a small input and returns the rows when it finishes. Synchronous calls suit small inputs; for big jobs, start a run and read the dataset later.
curl
curl -X POST "https://api.apify.com/v2/acts/apisamurai~google-maps-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchTerms": [
"dentist"
],
"locations": [
"Austin, TX"
],
"maxPlacesPerSearch": 20,
"includeContacts": true
}'Python (pip install apify-client)
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"searchTerms": ["dentist"],
"locations": ["Austin, TX"],
"maxPlacesPerSearch": 20,
"includeContacts": True,
}
# Start the Actor and wait for it to finish.
run = client.actor("apisamurai/google-maps-scraper").call(run_input=run_input)
# Read the results from the run's default dataset.
items = client.dataset(run.default_dataset_id).list_items().items
for item in items:
print(item)JavaScript (npm install apify-client)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
searchTerms: ['dentist'],
locations: ['Austin, TX'],
maxPlacesPerSearch: 20,
includeContacts: true,
};
// Start the Actor and wait for it to finish.
const run = await client.actor('apisamurai/google-maps-scraper').call(input);
// Read the results from the run's default dataset.
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Client calls follow the Python and JavaScript client docs. The full input reference is on the Actor's Apify page.
FAQ
- How many places can I get per search?
- Google Maps lists up to about 250 places for one search. For a whole city, split it into zip codes or neighborhoods. Places found twice are saved and charged once.
- How are emails found?
- With contacts on, the Actor opens the business website and up to 2 contact or about pages on the same domain. It never leaves the business's own domain.
- When is the contacts event charged?
- Only when at least one email or social link was found for a place.
- What is not charged?
- Duplicates, places removed by your rating or closed filters, failed requests and empty searches. There is no start fee.
- Where do I report a problem?
- Email hello@apisamurai.com, or open an issue on the Actor's Apify page.