Fast Google Maps Search Scraper API | Business Listings & Leads
Pricing
Pay per event
Fast Google Maps Search Scraper API | Business Listings & Leads
Find high-value leads fast with our low-cost Google Maps scraper. Instantly extract business names, contact details, emails, phone numbers, and reviews—perfect for sales prospecting and outreach. Affordable, reliable, and built for scale.
Pricing
Pay per event
Rating
5.0
(9)
Developer

Agents
Actor stats
17
Bookmarked
361
Total users
55
Monthly active users
27 minutes ago
Last modified
Categories
Share
Fast Google Maps Search Scraper API: Extract Business Listings, Ratings & Contact Data at Scale
The Google Maps Search Scraper is an Apify Actor that extracts structured business listings from Google Maps—including names, addresses, phone numbers, websites, ratings, review counts, operating hours, GPS coordinates, and business categories—without requiring a Google Places API key. This google maps scraper api collects 20+ data fields per listing from keyword searches and direct URLs.
Why scrapers instead of the Google Places API? The Google Places API charges $32 per 1,000 Nearby Search requests and imposes strict daily quotas. This scraper delivers complete business data at $0.016 per query with the first ~40 results FREE on every search—no API key, no rate limits, no OAuth setup. Extract business names, phone numbers, websites, and addresses at scale for lead generation, market research, or directory building.
Use this google maps data extractor for lead generation, competitor analysis, market research, or local business intelligence. Download Google Maps business data to JSON, CSV, or Excel for sales prospecting, location analytics, and competitive benchmarking.
Pricing: $0.016/query (first ~40 items FREE) | $0.0004/listing | No Google API key required
Table of Contents
- What Does the Google Maps Search Scraper Do?
- Features and Capabilities
- Pricing
- Input Parameters
- Output Format and Data Fields
- Custom Map Function
- AI Agent Integration via MCP
- Related Tools
- Demo Mode and Free Testing
- Automated Scheduling and Monitoring
- Quick Start Guide
- Use Cases and Industries
- Troubleshooting
- Frequently Asked Questions
- Contact
What Does the Google Maps Search Scraper Do?
Google Maps business data extraction is the automated process of collecting business listings, contact details, ratings, and location metadata from Google Maps search results. Google Maps indexes over 200 million businesses worldwide, making it the most comprehensive source for local business intelligence, lead generation, and market research.
The Agents Google Maps Search Scraper is a high-performance data extraction tool built to scrape Google Maps business listings from keyword searches and direct URLs at scale. Extract structured business data quickly and reliably—without needing the Google Places API, API keys, or complex authentication.
This tool serves as a practical alternative to the official Google Places API for bulk business data collection. The Places API charges $32/1,000 Nearby Search requests and requires billing setup with quotas—this Actor delivers equivalent data at $0.016 per query with no daily limits.
What You Get From Every Business Listing
When you extract Google Maps business data, you receive:
Business Identity and Contact
- Business name, full address (street, city, state, postal code, country)
- Phone number and website URL
- Google Maps Place ID and direct URL
- Neighborhood classification
Ratings and Reputation
- Star rating (1.0–5.0 aggregate)
- Total review count
- Price level indicator (e.g., "$", "$$", "$$$")
Classification and Context
- Business categories (e.g., "Restaurant", "American cuisine", "Bar & grill")
- Full operating hours for every day of the week
Geographic Data
- GPS coordinates (latitude, longitude)
- Google Maps FID identifier
Features and Capabilities
Input Flexibility
| Input Type | Example | Best For |
|---|---|---|
| Keyword Search | "Italian restaurants in downtown Chicago" | Discovering businesses by category and location |
| Direct URL | https://www.google.com/maps/search/coffee+shops+near+Times+Square | Extracting from specific Google Maps search results |
Core Features
- High-Speed Extraction — Extract hundreds of business listings efficiently
- Free Tier — First ~40 items FREE with every search query
- No API Key — No Google Places API key or OAuth setup required
- Full Contact Data — Phone numbers, websites, and full addresses
- Operating Hours — Complete weekly schedule for every business
- GPS Coordinates — Latitude and longitude for geographic analysis
- Business Categories — Multi-label classification for filtering and segmentation
- Multiple Export Formats — JSON, CSV, Excel direct download
- Custom Transformations — Reshape output with custom JavaScript map functions
- API Integration — RESTful API for Python, Node.js, or any HTTP client
- Scheduled Runs — Automate recurring extraction for market monitoring
Pricing
Event-Based Cost Structure
Pay only for what you scrape—no subscriptions, no hidden fees. This google maps scraper api uses transparent pay-per-event pricing:
| Event Type | Price | What's Included |
|---|---|---|
| Query | $0.016/query | First ~40 items FREE |
| Dataset Item | $0.0004/listing | Each business in results |
Cost Comparison: This Scraper vs. Google Places API
| Feature | This Scraper | Google Places API |
|---|---|---|
| Cost per 1,000 listings | ~$0.40 | $32.00 (Nearby Search) |
| Results per request | Unlimited (use maxItems) | 20 max (60 with pagination) |
| API key required | No | Yes (with billing) |
| Free tier | ~40 items FREE/query | $200 monthly credit |
| Rate limits | No hard limits | Strict daily quotas |
| Operating hours | Full weekly schedule | Requires additional call |
| Phone numbers | Included | Requires Place Details call ($) |
Example: Extracting 10,000 business listings costs approximately $4.02 with this scraper vs. $320.00 with Google Places API Nearby Search—a 98.7% cost reduction.
Input Parameters
| Field | Type | Description | Default |
|---|---|---|---|
startUrls | array | Direct Google Maps URLs from which to extract business listings | [] |
keywords | string | Search terms to find businesses (e.g., "restaurants near me", "hotels in Paris") | null |
maxItems | number | Maximum number of business listings to extract | Infinity |
customMapFunction | string | JavaScript function to transform each business object (transformation only, not filtering) | null |
Input Examples
Keyword Search — Lead Generation:
{"keywords": "Italian restaurants in downtown Chicago","maxItems": 200}
Direct URL — Specific Search Results:
{"startUrls": ["https://www.google.com/maps/search/coffee+shops+near+Times+Square"],"maxItems": 100}
Broad Market Research — Multiple Categories:
{"keywords": "dentists in Los Angeles","maxItems": 500}
Output Format and Data Fields
Each extracted business listing is a structured JSON object containing 20+ fields. Here is a sample:
{"id": "0x8898a0fc93d02c8b:0xb7c1863bdd5355eb","name": "City Bistro & Grill","address": "123 Main Street, New York, NY 10001","neighborhood": "Manhattan","street": "123 Main Street","city": "New York","state": "NY","postalCode": "10001","country": "United States","phone": "+1 212-555-0123","website": "https://citybistrogrill.com","rating": 4.5,"totalReviews": 342,"priceLevel": "$$","categories": ["Restaurant", "American cuisine", "Bar & grill"],"hours": {"monday": "11:00 AM - 10:00 PM","tuesday": "11:00 AM - 10:00 PM","wednesday": "11:00 AM - 10:00 PM","thursday": "11:00 AM - 10:00 PM","friday": "11:00 AM - 11:00 PM","saturday": "10:00 AM - 11:00 PM","sunday": "10:00 AM - 9:00 PM"},"location": {"lat": 40.7614327,"lng": -73.9776216},"placeId": "ChIJiyyAjAyRyzsRm1XT3TuGHLs","url": "https://www.google.com/maps/place/City+Bistro+%26+Grill/@40.7614327,-73.9776216,17z","scrapedAt": "2025-04-04T12:03:59.811Z"}
Complete Field Reference
| Field | Type | Description |
|---|---|---|
id | string | Google Maps FID identifier |
name | string | Business name |
address | string | Full formatted address |
neighborhood | string | Neighborhood or district name |
street | string | Street address |
city | string | City name |
state | string | State or province code |
postalCode | string | Postal/ZIP code |
country | string | Country name |
phone | string | Business phone number |
website | string | Business website URL |
rating | number | Aggregate star rating (1.0–5.0) |
totalReviews | number | Total number of Google reviews |
priceLevel | string | Price indicator ("$", "$$", "$$$", "$$$$") |
categories | array | Business category tags |
hours | object | Operating hours for each day of the week |
location | object | GPS coordinates (lat, lng) |
placeId | string | Google Maps Place ID |
url | string | Direct Google Maps URL |
scrapedAt | string | ISO 8601 extraction timestamp |
Data Fields by Use Case
| Use Case | Key Fields |
|---|---|
| Lead Generation | name, phone, website, address, categories |
| Market Research | categories, rating, totalReviews, priceLevel, city |
| Local SEO Auditing | rating, totalReviews, categories, address, url |
| Directory Building | name, address, phone, website, hours, categories |
| Geographic Analysis | location.lat, location.lng, city, neighborhood, postalCode |
| Competitive Intelligence | name, rating, totalReviews, priceLevel, categories |
Custom Map Function
Transform each business listing before it's saved to the dataset. The customMapFunction parameter accepts a JavaScript function that reshapes every listing object. Use this to extract specific fields, rename properties, or compute derived values.
Important: The custom map function is for transformation only, not filtering. Every listing will still be saved—you're changing its shape, not deciding whether to include it.
Example: Flatten for Lead Generation CRM
(business) => ({companyName: business.name,phoneNumber: business.phone,website: business.website,fullAddress: business.address,city: business.city,state: business.state,rating: business.rating,reviewCount: business.totalReviews,category: business.categories?.[0] || null})
Example: Extract for Geographic Analysis
(business) => ({name: business.name,latitude: business.location?.lat,longitude: business.location?.lng,neighborhood: business.neighborhood,city: business.city,postalCode: business.postalCode,categories: business.categories?.join(", "),priceLevel: business.priceLevel})
AI Agent Integration via MCP
Apify provides a hosted Model Context Protocol (MCP) server at mcp.apify.com that allows AI agents and LLM-based applications to discover and run Apify Actors as tools—including this Google Maps Search Scraper.
What This Means
If you're building AI agents using Claude Desktop, VS Code with MCP support, or any framework that implements the MCP specification, you can give your agent the ability to search Google Maps and extract business data autonomously. The agent can call this scraper as a tool, receive structured JSON results, and use them in downstream reasoning.
How to Connect
Add this scraper to your MCP client configuration by pointing to the Apify MCP server with the actor specified:
https://mcp.apify.com?tools=agents/google-maps-search
Or use the CLI for local development:
$npx @apify/actors-mcp-server --tools agents/google-maps-search
Use Cases for AI Agent Integration
- Autonomous lead research — An AI agent receives a prompt like "Find all Italian restaurants in downtown Chicago" and calls this scraper to retrieve structured data, then formats it into a prospecting spreadsheet.
- Market analysis workflows — Feed business data into an LLM for summarization, competitive analysis, or report generation.
- Multi-step research pipelines — Combine this scraper with the Google Maps Reviews Scraper in a single agent workflow: first discover businesses, then extract their reviews.
For full setup instructions, see the Apify MCP documentation.
Related Tools
Agents Data Intelligence Suite
All tools below are built and maintained by Agents—a team of ex-Big Tech engineers, former ad agency strategists, and data specialists delivering intelligence, precision, and impact at scale.
| Tool | What It Extracts | Best For |
|---|---|---|
| Google Maps Search Scraper | Business listings, contact, ratings, hours | Lead generation, directories (You are here) |
| Google Maps Reviews Scraper | Reviews, ratings, reviewer profiles, location data | Sentiment analysis, reputation monitoring |
| Trustpilot Reviews Scraper | Reviews, TrustScores, company replies | SaaS/B2B analysis |
| Yelp Reviews Scraper | Reviews, ratings, reviewer profiles | Restaurant/hospitality |
| Yelp Business Scraper | Business profiles, ratings, contact | Business data, prospecting |
| TripAdvisor Reviews Scraper | Hotel/restaurant reviews, ratings | Hospitality intelligence |
Demo Mode and Free Testing
If you run on Apify's Free plan, you can still use this google maps search scraper with limited results. For unrestricted usage and full API access at scale, subscribe to a paid Apify plan.
Free Plan Benefits:
- First ~40 items FREE with every search query
- Test the API before committing to larger runs
- Validate output format and data quality
- No credit card required to start
Upgrade for Full Access:
- No listing limits per query
- Full API access for integration with your systems
- Scheduled runs for automated monitoring
- Webhook notifications for pipeline automation
Automated Scheduling and Monitoring
Business landscapes change constantly—new businesses open, others close, ratings shift, and contact details update. For accurate market intelligence and lead generation, set up automated recurring runs to keep your data current.
Why Schedule Extraction?
- Lead pipeline freshness — Ensure your prospect lists always reflect the latest businesses
- Market monitoring — Track new entrants and closures in your target areas
- Rating trend tracking — Monitor how competitor ratings change over time
- Directory maintenance — Keep business directories up to date automatically
- Agency reporting — Automated data for client market intelligence dashboards
How to Set Up Scheduled Runs
- Open the Actor in Apify Console
- Configure your input parameters (keywords, maxItems, etc.)
- Click Schedule and set frequency (daily, weekly, monthly)
- Optionally add a webhook to push new data to your pipeline
Webhook Integration
Combine scheduled runs with webhooks to build fully automated data pipelines:
Scheduled Run → Business Data Extracted → Webhook fires → Your CRM/database receives data
Use webhooks to trigger:
- CRM updates with new lead data
- Database syncs for directory platforms
- Spreadsheet refreshes for market reports
- Slack alerts when new businesses match your criteria
Quick Start Guide
For Non-Technical Users (Apify Console)
- Go to Google Maps Search Scraper on Apify
- Click Try for free
- Enter your search keywords (e.g., "plumbers in Seattle") or paste a Google Maps URL
- Set
maxItemsto your desired listing count - Click Start and wait for results
- Export Google Maps business data to CSV from the Storage tab
For Developers (Python API)
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("agents/google-maps-search").call(run_input={"keywords": "Italian restaurants in downtown Chicago","maxItems": 200})items = client.dataset(run["defaultDatasetId"]).list_items().items
For Sales Teams (Lead Generation)
{"keywords": "software companies in San Francisco","maxItems": 300}
Schedule weekly. Export to CSV. Import into your CRM. Each listing includes phone number, website, address, and business category—everything you need for targeted outreach.
For Market Researchers (Geographic Analysis)
{"keywords": "coffee shops in Manhattan","maxItems": 500,"customMapFunction": "(b) => ({ name: b.name, lat: b.location?.lat, lng: b.location?.lng, rating: b.rating, reviews: b.totalReviews, neighborhood: b.neighborhood })"}
Use the custom map function to flatten output for direct import into mapping tools or GIS software.
Use Cases and Industries
Lead Generation and Sales Prospecting
Extract business names, phone numbers, websites, and addresses for targeted outreach campaigns. Filter by category, location, and rating to build high-quality prospect lists. A sales team searching for "accounting firms in Houston" receives structured contact data ready for CRM import.
Key fields: name, phone, website, address, categories, rating
Market Research and Competitive Analysis
Analyze business density, category distribution, and rating patterns across geographic areas. Compare competitor ratings, review volumes, and price levels. Identify underserved markets by mapping business coverage against population data.
Key fields: categories, rating, totalReviews, priceLevel, city, location
Business Directory and Aggregator Platforms
Build comprehensive local business databases with verified contact information, operating hours, and categorization. Keep directories current with scheduled extraction runs. Each listing includes the full weekly operating schedule—data that typically requires manual collection.
Key fields: name, address, phone, website, hours, categories
Local SEO Auditing
Audit Google Business Profile performance across a client's locations or competitor set. Track rating distribution, review volume, and category classification. Identify which businesses rank for specific keyword searches and how their profiles compare.
Key fields: rating, totalReviews, categories, url, address
Real Estate and Location Intelligence
Research the commercial ecosystem around properties or neighborhoods. Map business density, category mix, and quality signals (ratings, reviews) to assess area desirability. GPS coordinates enable direct integration with GIS platforms and mapping tools.
Key fields: location, neighborhood, city, categories, rating, priceLevel
Academic and Urban Research
Build datasets for studying urban commercial patterns, business lifecycle analysis, or economic geography. Structured output with GPS coordinates, categories, and neighborhood data supports spatial analysis and statistical modeling.
Key fields: location, city, postalCode, neighborhood, categories, rating, totalReviews
Troubleshooting
Common Issues and Solutions
| Issue | Cause | Solution |
|---|---|---|
| Fewer results than expected | Search query too broad | Use specific keywords with location modifiers (e.g., "Italian restaurants in downtown Chicago" instead of "restaurants") |
| Empty results | Invalid URL format | Verify the Google Maps URL opens correctly in a browser before using it as input |
| Duplicate listings | Overlapping search areas | Use more specific location terms or limit maxItems |
| Missing phone numbers | Business hasn't listed one | Some businesses don't have phone numbers on Google Maps—this is expected |
| Missing operating hours | Business hasn't provided them | Not all businesses list hours on their Google profile |
Performance Tips
- Be specific: "Italian restaurants in downtown Chicago" returns better results than "restaurants in Chicago"
- Use location modifiers: Include city names, neighborhoods, or "near [landmark]" in keywords
- Start small: Use the free tier (~40 items) to validate your search before scaling to larger runs
- Batch by location: For national-scale research, run separate queries per city or region rather than one broad query
- Monitor costs: Check the Apify Console billing section to track per-run costs before scaling
Frequently Asked Questions
What data can I extract from Google Maps business listings?
Extract business names, full addresses (street, city, state, postal code, country), phone numbers, website URLs, star ratings (1.0–5.0), review counts, price levels, business categories, operating hours for every day of the week, GPS coordinates (latitude/longitude), Google Place IDs, and neighborhood data—all in structured JSON or CSV format.
Can I export Google Maps business data to CSV?
Yes. Download Google Maps business data directly from Apify Console in JSON, CSV, or Excel format. This is ideal for CRM import, spreadsheet analysis, and database loading.
How is this different from the Google Places API?
The Google Places API charges $32 per 1,000 Nearby Search requests, returns a maximum of 20 results per request (60 with pagination), and requires an API key with billing enabled. This scraper delivers equivalent data at $0.016 per query (~$0.40 per 1,000 listings) with no per-request limits and no API key. It also includes operating hours and phone numbers in the base response—data the Places API charges separately for via Place Details requests.
Can I use Python to scrape Google Maps?
Yes. Full Python support via the Apify Client library. See the Quick Start Guide above for Python integration with client.actor("agents/google-maps-search").
Can I search by keyword and location?
Yes. Use the keywords parameter with location-specific terms like "dentists in Los Angeles" or "coffee shops near Times Square." Google Maps resolves the location from your search query.
Can I scrape from a specific Google Maps URL?
Yes. Use the startUrls parameter to provide one or more direct Google Maps search result URLs. This is useful when you've already performed a search in Google Maps and want to extract the results programmatically.
How many businesses can I extract per search?
There is no hard limit from the scraper side. Set the maxItems parameter to control how many listings to extract. The actual number depends on Google Maps' results for your query—some searches return hundreds of results while others return fewer.
Can AI agents use this scraper?
Yes. Through Apify's Model Context Protocol (MCP) server, AI agents built with Claude Desktop, VS Code, or any MCP-compatible framework can call this scraper as a tool. This enables autonomous lead research, market analysis, and multi-step data pipelines. See the AI Agent Integration via MCP section for setup details.
Does this extract Google Maps reviews?
No. This scraper focuses on business listings and contact data. For reviews, use the Google Maps Reviews Scraper which extracts full review text, star ratings, reviewer profiles, and review photos.
Can I extract operating hours for businesses?
Yes. Every listing includes the full weekly operating schedule in a structured hours object with entries for each day of the week (e.g., "monday": "11:00 AM - 10:00 PM"). Not all businesses list their hours on Google Maps—when hours are unavailable, the field may be empty.
Is this legal to use?
This tool extracts publicly available data from Google Maps. Always ensure your use case complies with Google's Terms of Service and applicable data protection regulations.
This Scraper vs. Google Places API
| Feature | This Scraper | Google Places API |
|---|---|---|
| API Key Required | No | Yes (with billing) |
| Cost per 1,000 listings | ~$0.40 | $32.00 (Nearby Search) |
| Results per request | Unlimited | 20 max (60 with pagination) |
| Free Tier | ~40 items FREE | $200 monthly credit |
| Operating Hours | Included | Requires Place Details ($) |
| Phone Numbers | Included | Requires Place Details ($) |
| MCP Integration | Yes (via Apify MCP server) | No |
Contact
Built by Agents — Where others search, we uncover. Our team of ex-Big Tech engineers, growth hackers, and data specialists builds high-performance scraping tools engineered for speed, precision, and reliability.
For questions or further assistance:
- Email: Reach out at whoaretheagents@gmail.com
- Discord: Join our community to connect with our support team
Ready to start extracting Google Maps business data? With transparent event-based pricing, first ~40 items FREE, and no API key required, this Google Maps Search Scraper API by Agents is the definitive tool for lead generation, market research, directory building, and competitive intelligence. Start scraping today.