Google Maps Business Leads Scraper - Local Lead Generation
Pricing
from $1.75 / 1,000 results
Google Maps Business Leads Scraper - Local Lead Generation
Search Google Maps and export normalised business name, category, address, phone, website, rating, review count, opening hours, plus code, coordinates and place URL. A local business scraper for lead generation, territory research and CRM enrichment, exporting to JSON, CSV or Excel.
Pricing
from $1.75 / 1,000 results
Rating
0.0
(0)
Developer
Joseph McRell
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Google Maps Business Scraper & Leads Extractor
Scrape Google Maps businesses by keyword and location into clean, CSV-ready records. Get separate address, phone, website, rating, review count, category, opening-hours, Plus Code, and coordinate fields instead of a concatenated details blob. No Google API key is required.
What data can I extract?
- Business name and primary category
- Separate street address and formatted/dialable phone fields
- Business website and canonical Google Maps place URL
- Numeric rating and review count
- Today's displayed opening hours
- Plus Code, latitude, and longitude when available
- Source search URL and Google place identifier when exposed
All 30 columns
Identity — name, place_id
Status — category
Location — address, city, latitude, longitude, open_state, place_url, postal_code, state
Contact — booking_url, image_url, phone, phone_unformatted, search_url, website
Counts and measures — rating, reviews_1_star, reviews_2_star, reviews_3_star, reviews_4_star, reviews_5_star, reviews_count
Other detail — description, located_in, opening_hours, opening_hours_today, plus_code, street
Input example
{"search_query": "commercial electricians","location": "Dallas, Texas","max_items": 25,"include_details": true}
Use search_queries for a batch of up to 25 terms. max_items is a hard run-wide output ceiling so humans and agents can bound cost before calling the Actor.
Free built-in filters
Unlike scrapers that charge an extra per-place fee for each filter you turn on, filtering here is free — it costs you nothing on top of the per-place price. Filters are applied before results are counted against max_items, so a row that gets filtered out is never billed:
min_rating— only businesses at or above this rating.require_website— only businesses with a public website. Turns oninclude_detailsautomatically, since a website is only known after opening the business page.exclude_closed— drops businesses currently shown as closed or permanently closed.category_exact— only businesses whose category is an exact (case-insensitive) match, e.g.["Dentist"].
A business with no rating, website, or category shown does not pass a filter that requires one; exclude_closed only drops businesses with a confirmed closed status.
{"search_query": "dentists","location": "Dallas, Texas","min_rating": 4.5,"require_website": true,"exclude_closed": true,"max_items": 25}
Precise targeting
Already have exact listings to pull, instead of a keyword search? Pass place_urls (direct Google Maps place URLs, e.g. from a listing's Share link) and/or place_ids (Google place identifiers) and the Actor opens each place page directly — search_query, search_queries, and location are ignored. Business details are always fetched for these, regardless of include_details.
{"place_urls": ["https://www.google.com/maps/place/..."],"place_ids": ["ChIJN1t_tDeuEmsRUsoyG83frY4"]}
Output example
{"name": "Example Dental Group","place_url": "https://www.google.com/maps/place/...","place_id": "ChIJ...","category": "Dentist","address": "123 Main St, New York, NY 10001","street": "223 W Jackson Blvd","city": "Chicago","state": "IL","postal_code": "60606","phone": "+1 212-555-0199","phone_unformatted": "+12125550199","website": "https://example.com","rating": 4.7,"reviews_count": 1907,"reviews_5_star": 9616,"reviews_4_star": 2324,"reviews_3_star": 750,"reviews_2_star": 241,"reviews_1_star": 359,"open_state": "Open 24 hours","opening_hours_today": "Open until 6 PM","opening_hours": "Saturday, Open 24 hours; Sunday, Open 24 hours; Monday, Open 24 hours; Tuesday, Open 24 hours; Wednesday, Open 24 hours; Thursday, Open 24 hours; Friday, Open 24 hours","description": "Known for deep-dish pizza, this casual chain serves other classic Italian food, plus beer & wine.","booking_url": "https://tables.toasttab.com/restaurants/bedbc320-282f-4ef5-9ae8-b8ed91a0aa6e/findTime","image_url": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWlWThG54-6_6AjfPKg1HsO84haihAsRBjlD9H4gxocCAITqfwFzkSfzHCKFyCyiS-79pm1V9lRY2kBuB_FvVBQNeh4wUzewlgRXUlXdoA-1ehQIQDXZKo7uqWBGY97PlEV_BoWKF1yaJjmd=w408-h270-k-no","located_in": "Floor 1 · Brooks Building","plus_code": "Q2X4+9C New York","latitude": 40.7484}
2 further columns are omitted here for length — the full list is above, and every column appears in the export whether or not the source populated it.
Common use cases
- Build local-business lead lists with phone numbers and websites
- Find service providers, branches, stores, restaurants, or competitors by city
- Compare ratings and review counts across local markets
- Enrich CRM records with public business contact and location data
- Supply structured local-business context to AI agents
Use with AI agents and MCP
Apify's MCP server can discover and call this Actor. Give the agent a bounded intent, for example:
Find 50 HVAC companies in Phoenix and return business name, address, phone, website, rating, and review count.
Equivalent input:
{"search_query": "HVAC companies","location": "Phoenix, Arizona","max_items": 50,"include_details": true}
Pricing and cost control
Output is billed per result at $0.0025 per result (about $2.50 per 1,000 results), plus a $0.001 Actor-start charge billed once per gigabyte of memory at run start. Use max_items to cap both output volume and charges. The price shown on the Apify Store listing is authoritative.
Reliability
The Actor scrolls result feeds, deduplicates places, and enriches individual place pages. Search-result selectors are monitored by the fleet's contract canaries and self-healing workflow. Required output fields are validated before repaired selectors are promoted.
Limitations and responsible use
- Public Google Maps data only; some profiles omit phone, website, hours, or coordinates.
- Search results vary by query, geography, language, and upstream personalization.
- A displayed field may change or disappear when the source profile changes.
- Comply with applicable law, Google terms, privacy obligations, and outreach rules.
Integrate with No-Code, Webhooks & Spreadsheets
- Google Sheets & Excel: In Apify Console under the Actor's Dataset tab, click Export, select CSV, and paste the permanent API URL into
=IMPORTDATA("https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv")for auto-refreshing lead lists. - Zapier & Make: Connect your Apify account to Zapier or Make. Use the "Actor run finished" trigger to automatically post leads into HubSpot, Salesforce, Airtable, or your CRM.
- Webhooks: Under the Actor's Integrations tab, attach a webhook targeting your custom endpoint or Slack channel whenever a run completes.
- Python / Node.js: Query leads directly into pandas DataFrames or backend services using the official
apify-clientSDK in under 5 lines of code.
Related data tools and workflows
- Tech Stack Detector (
captainhandsome/tech-stack-detector): Inspect websites extracted from Google Maps to identify which CMS, CRM, e-commerce, or analytics tools each business uses. - US Business Entity Search (
captainhandsome/us-business-entity-search): Verify official state corporate registrations, legal names, and good standing for extracted businesses. - US Contractor License Search (
captainhandsome/us-contractor-license-search): Cross-reference contractor licenses, classifications, and insurance status for trade leads.
FAQ
How do I scrape phone numbers from Google Maps?
Set include_details to true. The Actor opens each public place page and returns phone and phone_unformatted separately when available.
Can I export Google Maps businesses to CSV?
Yes. Run the Actor, open its default dataset, and choose CSV or Excel export.
Can I search several business categories in one run?
Yes. Supply search_queries and a single location. Results are deduplicated and constrained by the run-wide max_items ceiling.
Does this use the Google Places API?
No Google API key is required. The Actor extracts publicly displayed Google Maps data.
Do the filters cost extra?
No. min_rating, require_website, exclude_closed, and category_exact are free. They run before max_items is applied, so you are never billed for a row that got filtered out.
Can I scrape a specific business instead of searching by keyword?
Yes. Pass place_urls and/or place_ids to fetch exact listings directly, skipping keyword search entirely.
See CHANGELOG.md for maintained schema changes.