Google Maps Business Scraper — Extract Businesses & Leads
Pricing
from $10.00 / 1,000 results
Go to Apify Store

Google Maps Business Scraper — Extract Businesses & Leads
An Apify Actor that scrapes business listings from Google Maps search results using Playwright. - **Search-based scraping**: Enter search queries like "restaura
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Julien ApiKiy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
18 days ago
Last modified
Categories
Share
Google Maps Business Scraper
An Apify Actor that scrapes business listings from Google Maps search results using Playwright.
Features
- Search-based scraping: Enter search queries like "restaurants paris" or "plombier nancy"
- Rich data extraction: Business name, address, phone, website, rating, review count, opening hours, coordinates, Google Maps URL
- Anti-detection: Random delays, user-agent rotation, webdriver spoofing
- No proxy required: Works with direct connections
- Pagination support: Automatically scrolls to load more results
- Error handling: Built-in retries and graceful failure handling
- Multi-language support: French, English, German, Spanish, Italian, Dutch, Portuguese, Polish
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | required | List of search queries (e.g., ["restaurants paris", "plombier nancy"]) |
maxResults | number | 20 | Maximum results per query (1-100) |
language | string | "fr" | Google Maps language code |
maxConcurrency | number | 2 | Concurrent browser tabs |
maxRetries | number | 3 | Retries for failed requests |
delayMin | number | 2000 | Min delay between requests (ms) |
delayMax | number | 5000 | Max delay between requests (ms) |
debugMode | boolean | false | Enable debug logging |
Output
Each business listing contains:
| Field | Type | Description |
|---|---|---|
name | string | Business name |
address | string | Full address |
phone | string | Phone number |
website | string | Website URL |
rating | number | Google rating (0-5) |
reviewCount | number | Number of reviews |
openingHours | string | Opening hours summary |
coordinates | object | { lat: number, lng: number } |
googleMapsUrl | string | Direct Maps link |
searchQuery | string | Original search query |
scrapedAt | string | ISO timestamp |
Usage
Via Apify Platform
- Go to Apify Console
- Search for "Google Maps Business Scraper" or create a new actor
- Provide your search queries and configuration
- Run the actor
Via Apify CLI
$apify call -i input.json
Example Input
{"searchQueries": ["restaurants paris", "plombier nancy"],"maxResults": 20,"language": "fr"}
Example Output
[{"name": "Restaurant Le Petit Cler","address": "29 Rue Cler, 75007 Paris","phone": "+33 1 45 55 12 34","website": "https://www.lepetitcler.fr","rating": 4.5,"reviewCount": 342,"openingHours": "Lundi-Vendredi: 12:00–14:30, 19:00–22:30","coordinates": { "lat": 48.8566, "lng": 2.3522 },"googleMapsUrl": "https://www.google.com/maps/place/...","searchQuery": "restaurants paris","scrapedAt": "2024-01-15T10:30:00.000Z"}]
Running Locally
# Install dependenciesnpm install# Run the actornpm start# Run testsnpm test
Docker
# Build the imagedocker build -t google-maps-scraper .# Run with inputdocker run -e APIFY_TOKEN=your_token google-maps-scraper
Notes
- Rate limiting: The actor includes random delays (2-5s by default) to avoid triggering Google's anti-bot measures
- No proxy needed: The actor works without a proxy by rotating user agents and using anti-detection techniques
- Language support: Set the
languageparameter to control the Google Maps interface language - Results vary: Google Maps results may vary based on location, time, and personalization
Limitations
- Google Maps may occasionally show CAPTCHAs or block automated access
- Some business details may not be available for all listings
- Opening hours may be approximate or outdated
- Results are limited by Google Maps' own pagination
💰 Pricing
Pay-per-use, no monthly fees:
| Price | |
|---|---|
| Actor start | $0.01 |
| Per result | $0.01 |
💡 Example: A run returning 500 results costs $5.01 total ($0.01 start + 500 × $0.01).
License
ISC