Google Maps Business Data Extractor avatar

Google Maps Business Data Extractor

Pricing

$2.50 / 1,000 results

Go to Apify Store
Google Maps Business Data Extractor

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

Casey Marsh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Built with Apify

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

FieldTypeRequiredDefaultDescription
searchKeywordsstringβœ…β€”Business category or keyword to search (e.g., "plumber", "restaurant", "dentist"). Comma-separated for multiple keywords.
locationsarray of stringsβœ…β€”List of cities/areas to search in (e.g., ["New York", "Los Angeles"]).
maxResultsinteger❌50Maximum businesses to extract per keyword-location combination (max 500).
maxConcurrencyinteger❌5Number 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:

FieldTypeDescription
businessNamestringBusiness name
addressstringStreet address
phonestringPhone number
websitestringWebsite URL
ratingnumberStar rating (0–5)
reviewsCountnumberNumber of reviews
categorystringBusiness category/type
hoursstringOperating hours (if available)
latnumberLatitude coordinate
lngnumberLongitude coordinate
searchKeywordstringThe keyword used to find this business
locationstringThe location searched
googleMapsUrlstringDirect 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
  • maxResults setting (more results = more page interactions)
  • maxConcurrency setting (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 maxConcurrency to 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