Google Maps Places Scraper avatar
Google Maps Places Scraper

Pricing

$4.99/month + usage

Go to Apify Store
Google Maps Places Scraper

Google Maps Places Scraper

Retrieve verified business data directly from the Google Maps API. Search by keyword and location to collect structured details such as business name, phone number, address, website, ratings, reviews, and moreβ€”ideal for B2B lead generation, market research, and business intelligence

Pricing

$4.99/month + usage

Rating

5.0

(2)

Developer

ScrapeAI

ScrapeAI

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

13 days ago

Last modified

Share

🧠 Google Maps Places Scraper - API Based

This Apify actor retrieves verified business data exclusively through the Google Maps API. Search by keyword and location to collect structured business information including name, phone, address, website, ratings, reviews, and more. Perfect for B2B lead generation, market research, and business intelligence.

βœ… Use Cases

  • πŸ“‡ Generate local business leads with verified ratings
  • πŸ’¬ Build contact lists for cold outreach campaigns
  • πŸ™οΈ Conduct market research by city and category
  • 🧭 Perform competitive analysis in your niche
  • πŸ“Š Gather structured business intelligence

πŸ“₯ Input Configuration

You can customize the actor using the following input fields:

{
"searchStringsArray": ["software companies", "tech startups"],
"locationQuery": "Bangalore, India",
"maxCrawledPlacesPerSearch": 50,
"skipClosedPlaces": true,
"placeMinimumStars": "4.0",
"language": "en"
}

🧾 Fields Explained

FieldTypeDescription
searchStringsArrayarrayArray of search terms (e.g., "restaurants", "software companies")
locationQuerystringGeographic location to search in (e.g., "Bangalore, India")
maxCrawledPlacesPerSearchnumberMaximum number of places to retrieve per search query (1-500)
skipClosedPlacesbooleanWhether to exclude closed places or those with no opening hours
placeMinimumStarsstringMinimum star rating for places (e.g., "4.0")
languagestringLanguage code for results (e.g., "en" for English)

πŸ“€ Output

The actor returns a dataset containing structured business records. Each record includes comprehensive details about the business, suitable for lead generation, analytics, and market research.

🧩 Sample Output

{
"title": "Tech Park Bangalore",
"categoryName": "Technology Company",
"address": "123 Innovation Street, Bangalore, Karnataka 560001, India",
"city": "Bangalore",
"state": "Karnataka",
"postalCode": "560001",
"countryCode": "IN",
"phone": "+91 80 4000 1000",
"phoneUnformatted": "+918040001000",
"website": "https://techpark.example.com",
"totalScore": 4.7,
"reviewsCount": 245,
"location": {
"lat": 12.9716,
"lng": 77.5946
},
"placeId": "ChIJ_example_1",
"openingHours": [
{"day": "Monday", "hours": "9:00 AM - 6:00 PM"},
{"day": "Tuesday", "hours": "9:00 AM - 6:00 PM"}
],
"reviewsDistribution": {
"oneStar": 5,
"twoStar": 3,
"threeStar": 10,
"fourStar": 42,
"fiveStar": 90
}
}

πŸ“‹ Output Fields

FieldTypeDescription
titlestringBusiness name
categoryNamestringBusiness category/type
addressstringComplete business address
citystringCity name
statestringState/Province
postalCodestringPostal/ZIP code
countryCodestringISO country code (e.g., "IN")
phonestringFormatted phone number
phoneUnformattedstringPhone number without formatting
websitestringBusiness website URL
totalScorenumberAverage rating (0-5)
reviewsCountintegerTotal number of reviews
locationobjectGeographic coordinates (lat/lng)
placeIdstringUnique Google Places ID
openingHoursarrayBusiness operating hours
reviewsDistributionobjectCount of reviews by star rating

πŸ” Data Source

  • βœ“ Data fetched exclusively via Google Maps API (HTTP GET requests)
  • βœ“ No HTML scraping or DOM parsing
  • βœ“ Verified business information directly from Google Maps
  • βœ“ Automatic filtering and deduplication

πŸ”’ Proxy Configuration

This actor uses standard HTTP headers with optional proxy support for:

  • Avoiding IP-based rate limiting or bans
  • Accessing location-specific data
  • Ensuring stable data retrieval at scale

Configure proxy settings in Apify:

{
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "IN"
}

πŸš€ How to Use

  1. Open the actor in Apify Console
  2. Click "Try actor" or create a new task
  3. Enter your search terms and location
  4. Configure optional filters (minimum rating, closed places)
  5. Run the actor
  6. Download results in JSON, CSV, or Excel format

βš™οΈ Advanced Input Example

{
"searchStringsArray": ["restaurants", "hotels", "cafes"],
"locationQuery": "Mumbai, India",
"maxCrawledPlacesPerSearch": 100,
"skipClosedPlaces": true,
"placeMinimumStars": "3.5",
"language": "en"
}

πŸ› οΈ Tech Stack

  • Apify SDK β€” actor orchestration and data handling
  • Node.js 18+ β€” runtime environment with native fetch API
  • Google Maps API β€” exclusive data source for business information

πŸ“Š Data Processing Features

  • βœ“ Automatic duplicate detection using Place IDs
  • βœ“ Filtering by minimum rating and open status
  • βœ“ Structured data parsing and normalization
  • βœ“ Comprehensive logging and error handling
  • βœ“ Schema validation for all output records

πŸ”§ Local Development

Installation

$npm install

Running the Actor

$npm start

Validation

Validate all generated datasets against the schema:

$node validate-datasets.js

Code Quality

Format code:

$npm run format

Check linting:

$npm run lint

πŸ“‚ Project Structure

.
β”œβ”€β”€ .actor/ # Actor configuration
β”‚ β”œβ”€β”€ actor.json # Actor metadata
β”‚ β”œβ”€β”€ input_schema.json # Input parameters schema
β”‚ β”œβ”€β”€ dataset_schema.json # Output dataset schema
β”‚ β”œβ”€β”€ input.json # Default input
β”‚ β”œβ”€β”€ input-local.json # Local development input
β”‚ └── input-production.json # Production input
β”œβ”€β”€ src/
β”‚ └── main.js # Main actor script
β”œβ”€β”€ storage/
β”‚ └── datasets/default/ # Generated datasets
β”œβ”€β”€ package.json # Dependencies
β”œβ”€β”€ validate-datasets.js # Dataset validator
└── README.md # This file

🀝 Support

For issues, questions, or feature requests, please refer to the Apify documentation or contact support.