Fast Google Maps Search Scraper API | Business Listings & Leads avatar

Fast Google Maps Search Scraper API | Business Listings & Leads

Pricing

Pay per event

Go to Apify Store
Fast Google Maps Search Scraper API | Business Listings & Leads

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

Agents

Maintained by Community

Actor stats

17

Bookmarked

361

Total users

55

Monthly active users

2 hours ago

Last modified

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

  1. What Does the Google Maps Search Scraper Do?
  2. Features and Capabilities
  3. Pricing
  4. Input Parameters
  5. Output Format and Data Fields
  6. Custom Map Function
  7. AI Agent Integration via MCP
  8. Related Tools
  9. Demo Mode and Free Testing
  10. Automated Scheduling and Monitoring
  11. Quick Start Guide
  12. Use Cases and Industries
  13. Troubleshooting
  14. Frequently Asked Questions
  15. 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 TypeExampleBest For
Keyword Search"Italian restaurants in downtown Chicago"Discovering businesses by category and location
Direct URLhttps://www.google.com/maps/search/coffee+shops+near+Times+SquareExtracting 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 TypePriceWhat's Included
Query$0.016/queryFirst ~40 items FREE
Dataset Item$0.0004/listingEach business in results

Cost Comparison: This Scraper vs. Google Places API

FeatureThis ScraperGoogle Places API
Cost per 1,000 listings~$0.40$32.00 (Nearby Search)
Results per requestUnlimited (use maxItems)20 max (60 with pagination)
API key requiredNoYes (with billing)
Free tier~40 items FREE/query$200 monthly credit
Rate limitsNo hard limitsStrict daily quotas
Operating hoursFull weekly scheduleRequires additional call
Phone numbersIncludedRequires 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

FieldTypeDescriptionDefault
startUrlsarrayDirect Google Maps URLs from which to extract business listings[]
keywordsstringSearch terms to find businesses (e.g., "restaurants near me", "hotels in Paris")null
maxItemsnumberMaximum number of business listings to extractInfinity
customMapFunctionstringJavaScript 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

FieldTypeDescription
idstringGoogle Maps FID identifier
namestringBusiness name
addressstringFull formatted address
neighborhoodstringNeighborhood or district name
streetstringStreet address
citystringCity name
statestringState or province code
postalCodestringPostal/ZIP code
countrystringCountry name
phonestringBusiness phone number
websitestringBusiness website URL
ratingnumberAggregate star rating (1.0–5.0)
totalReviewsnumberTotal number of Google reviews
priceLevelstringPrice indicator ("$", "$$", "$$$", "$$$$")
categoriesarrayBusiness category tags
hoursobjectOperating hours for each day of the week
locationobjectGPS coordinates (lat, lng)
placeIdstringGoogle Maps Place ID
urlstringDirect Google Maps URL
scrapedAtstringISO 8601 extraction timestamp

Data Fields by Use Case

Use CaseKey Fields
Lead Generationname, phone, website, address, categories
Market Researchcategories, rating, totalReviews, priceLevel, city
Local SEO Auditingrating, totalReviews, categories, address, url
Directory Buildingname, address, phone, website, hours, categories
Geographic Analysislocation.lat, location.lng, city, neighborhood, postalCode
Competitive Intelligencename, 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.


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.

ToolWhat It ExtractsBest For
Google Maps Search ScraperBusiness listings, contact, ratings, hoursLead generation, directories (You are here)
Google Maps Reviews ScraperReviews, ratings, reviewer profiles, location dataSentiment analysis, reputation monitoring
Trustpilot Reviews ScraperReviews, TrustScores, company repliesSaaS/B2B analysis
Yelp Reviews ScraperReviews, ratings, reviewer profilesRestaurant/hospitality
Yelp Business ScraperBusiness profiles, ratings, contactBusiness data, prospecting
TripAdvisor Reviews ScraperHotel/restaurant reviews, ratingsHospitality 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

  1. Open the Actor in Apify Console
  2. Configure your input parameters (keywords, maxItems, etc.)
  3. Click Schedule and set frequency (daily, weekly, monthly)
  4. 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)

  1. Go to Google Maps Search Scraper on Apify
  2. Click Try for free
  3. Enter your search keywords (e.g., "plumbers in Seattle") or paste a Google Maps URL
  4. Set maxItems to your desired listing count
  5. Click Start and wait for results
  6. Export Google Maps business data to CSV from the Storage tab

For Developers (Python API)

from apify_client import ApifyClient
client = 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

IssueCauseSolution
Fewer results than expectedSearch query too broadUse specific keywords with location modifiers (e.g., "Italian restaurants in downtown Chicago" instead of "restaurants")
Empty resultsInvalid URL formatVerify the Google Maps URL opens correctly in a browser before using it as input
Duplicate listingsOverlapping search areasUse more specific location terms or limit maxItems
Missing phone numbersBusiness hasn't listed oneSome businesses don't have phone numbers on Google Maps—this is expected
Missing operating hoursBusiness hasn't provided themNot 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.

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.

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

FeatureThis ScraperGoogle Places API
API Key RequiredNoYes (with billing)
Cost per 1,000 listings~$0.40$32.00 (Nearby Search)
Results per requestUnlimited20 max (60 with pagination)
Free Tier~40 items FREE$200 monthly credit
Operating HoursIncludedRequires Place Details ($)
Phone NumbersIncludedRequires Place Details ($)
MCP IntegrationYes (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:


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.