Google Maps Places Scraper
Pricing
$4.99/month + usage
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
Actor stats
0
Bookmarked
4
Total users
3
Monthly active users
13 days ago
Last modified
Categories
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
| Field | Type | Description |
|---|---|---|
searchStringsArray | array | Array of search terms (e.g., "restaurants", "software companies") |
locationQuery | string | Geographic location to search in (e.g., "Bangalore, India") |
maxCrawledPlacesPerSearch | number | Maximum number of places to retrieve per search query (1-500) |
skipClosedPlaces | boolean | Whether to exclude closed places or those with no opening hours |
placeMinimumStars | string | Minimum star rating for places (e.g., "4.0") |
language | string | Language 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
| Field | Type | Description |
|---|---|---|
title | string | Business name |
categoryName | string | Business category/type |
address | string | Complete business address |
city | string | City name |
state | string | State/Province |
postalCode | string | Postal/ZIP code |
countryCode | string | ISO country code (e.g., "IN") |
phone | string | Formatted phone number |
phoneUnformatted | string | Phone number without formatting |
website | string | Business website URL |
totalScore | number | Average rating (0-5) |
reviewsCount | integer | Total number of reviews |
location | object | Geographic coordinates (lat/lng) |
placeId | string | Unique Google Places ID |
openingHours | array | Business operating hours |
reviewsDistribution | object | Count 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
- Open the actor in Apify Console
- Click "Try actor" or create a new task
- Enter your search terms and location
- Configure optional filters (minimum rating, closed places)
- Run the actor
- 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.
