Google Maps Business Data Extractor
Pricing
$2.50 / 1,000 results
Google Maps Business Data Extractor
Extract business listings from Google Maps by location and keyword. Get name, address, phone, website, rating, reviews, and more.
Pricing
$2.50 / 1,000 results
Rating
0.0
(0)
Developer
Casey Marsh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract business listings from Google Maps by location and keyword. Get detailed business information including name, address, phone number, website URL, rating, number of reviews, business category, operating hours, and GPS coordinates.
Features
- π Search by keyword & location β Find businesses in any area by category or keyword (e.g., "plumber in Chicago", "restaurant in London")
- π Multi-location support β Search across multiple cities or regions in a single run
- π Rich business data β Extract name, address, phone, website, rating, reviews count, category, hours, and coordinates
- π Infinite scroll pagination β Automatically scrolls through search results to capture all available listings
- π‘οΈ Anti-blocking measures β Uses realistic browser fingerprints, proper user agents, and human-like interaction patterns
- π Structured output β Data is saved to a clean Apify dataset, ready for CSV/JSON export or API access
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchKeywords | string | β | β | Business category or keyword to search (e.g., "plumber", "restaurant", "dentist"). Comma-separated for multiple keywords. |
locations | array of strings | β | β | List of cities/areas to search in (e.g., ["New York", "Los Angeles"]). |
maxResults | integer | β | 50 | Maximum businesses to extract per keyword-location combination (max 500). |
maxConcurrency | integer | β | 5 | Number of concurrent browser pages (max 20). |
Example Input
{"searchKeywords": "plumber, electrician","locations": ["Chicago", "Houston"],"maxResults": 100,"maxConcurrency": 5}
Output
Each extracted business is a JSON object in the dataset with the following fields:
| Field | Type | Description |
|---|---|---|
businessName | string | Business name |
address | string | Street address |
phone | string | Phone number |
website | string | Website URL |
rating | number | Star rating (0β5) |
reviewsCount | number | Number of reviews |
category | string | Business category/type |
hours | string | Operating hours (if available) |
lat | number | Latitude coordinate |
lng | number | Longitude coordinate |
searchKeyword | string | The keyword used to find this business |
location | string | The location searched |
googleMapsUrl | string | Direct Google Maps URL for the business |
Example Output
{"businessName": "Joe's Plumbing Services","address": "123 Main St, Chicago, IL 60601","phone": "(312) 555-0123","website": "https://joesplumbing.example.com","rating": 4.5,"reviewsCount": 127,"category": "Plumber","hours": "Mon-Fri: 8AMβ6PM, Sat: 9AMβ3PM","lat": 41.8826,"lng": -87.6226,"searchKeyword": "plumber","location": "Chicago","googleMapsUrl": "https://www.google.com/maps/place/..."}
Use Cases
- Lead Generation β Build a database of businesses in specific industries for cold outreach
- Market Research β Analyze the competitive landscape in a given area
- Sales Prospecting β Find potential customers by category and location
- Data Enrichment β Add phone numbers, websites, and ratings to existing business lists
- Real Estate Analysis β Map businesses and services available in target neighborhoods
- SEO & Local Listings β Audit competitor presence on Google Maps
Pricing
This actor uses browser automation (Playwright) and incurs compute costs based on:
- Number of keyword Γ location combinations
maxResultssetting (more results = more page interactions)maxConcurrencysetting (higher concurrency = faster but more resource-intensive)
For typical usage (5 locations Γ 2 keywords Γ 50 results each), expect modest Apify platform usage within standard compute units.
Configuration Notes
- Rate limiting: Google Maps may show CAPTCHAs or rate-limit requests if too many searches are performed in quick succession. Reduce
maxConcurrencyto 2β3 for large multi-location runs. - Data freshness: Google Maps data may vary slightly by region and time of day. Results are as accurate as what is publicly displayed on the search page.
- Dedup: The actor deduplicates businesses by name + address within a single search combination.
- Location specificity: For best results, use city-level locations (e.g., "San Francisco" rather than "California").
FAQ
Q: How many results can I get per run?
A: Up to 500 per keyword-location combination. The number of results depends on what Google Maps displays for that search.
Q: Can I search for multiple keywords at once?
A: Yes! Use comma-separated values in the searchKeywords field, e.g., "dentist, orthodontist, oral surgeon".
Q: Does it handle pagination?
A: Yes β the actor automatically scrolls the search results to trigger infinite loading. It stops when no new results appear or when maxResults is reached.
Q: What if a business has no website listed?
A: The website field will be an empty string. Not all businesses list their website on Google Maps.
Q: Can I get email addresses?
A: Google Maps does not publicly display email addresses in search results, so this actor does not extract them.
Q: How do I export the data?
A: Data is saved to the Apify dataset. You can export as JSON, CSV, Excel, or XML from the Apify console, or access it via the Apify API.
Technical Details
- Runtime: Node.js 20 on Playwright with Chrome
- Framework: Crawlee PlaywrightCrawler
- Platform: Apify (actor-node-playwright-chrome base image)
- Deployment:
apify push
Built with β€οΈ for the Apify Store