🌐📍 LeadLocator Pro avatar
🌐📍 LeadLocator Pro

Pricing

from $1.95 / 1,000 results

Go to Apify Store
🌐📍 LeadLocator Pro

🌐📍 LeadLocator Pro

Developed by

Eliud Munyala

Eliud Munyala

Maintained by Community

This powerful Google Maps scraper helps you: 📍 Extract local business data from any location worldwide 📞 Collect contact information including phone numbers and emails 🏢 Build targeted lead lists for B2B sales and marketing ⭐ Filter by ratings and reviews to find quality prospects

0.0 (0)

Pricing

from $1.95 / 1,000 results

1

13

11

Last modified

6 days ago

LeadLocator Pro - Google Maps Lead Generator

Extract business contact data from Google Maps including phone numbers, emails, websites, ratings, and addresses. Uses a 3-phase intelligent extraction system to prioritize high-value leads.

What This Actor Does

This actor scrapes Google Maps search results and extracts business information in three phases:

Phase 1: Basic Data Collection

  • Business name, rating, review count
  • Address, category, hours
  • Price level, Google Maps URL

Phase 2: Enhanced Contact Extraction

  • Visits individual business pages
  • Extracts phone numbers and websites
  • Prioritizes businesses with highest rating × review count
  • Focuses on high-value prospects first

Phase 3: Email Extraction

  • Visits business websites to find email addresses
  • Prioritizes businesses that already have phone numbers
  • Creates complete contact records (phone + email + website)

Use Cases

  • Sales Teams - Build prospect lists for outreach campaigns
  • Marketing Agencies - Create location-based contact databases
  • Real Estate - Find local service providers and contractors
  • Recruiters - Discover companies in specific industries
  • Market Research - Analyze competitor presence and business density
  • Lead Generation - Collect verified contact information at scale

Input Configuration

Required Parameters

ParameterTypeDescriptionExample
searchesarrayList of search queries with locationsSee below

Search Object Structure:

{
"query": "law firms",
"location": "Los Angeles, CA",
"max_results": 50
}

Optional Parameters

ParameterTypeDefaultDescription
max_results_per_searchinteger50Default max businesses per search (1-200)
enhanced_extractionbooleantruePhase 2: Extract phones/websites from business pages
extract_emailsbooleantruePhase 3: Extract emails from business websites
minimum_ratinginteger0Filter by rating (in tenths, e.g., 35 = 3.5 stars)
minimum_reviewsinteger0Filter by minimum review count
include_closed_businessesbooleantrueInclude temporarily/permanently closed businesses
use_proxiesbooleantrueEnable Apify proxy rotation
proxy_countrystring"US"Proxy country code (US, GB, CA, AU, etc.)
delay_between_requestsinteger2Delay in seconds between searches
scroll_delayinteger1500Delay in milliseconds between scroll actions
timeout_per_searchinteger10Maximum time in minutes per search
output_formatstring"detailed"Output format: detailed, compact, csv_ready
enable_debug_logsbooleanfalseEnable detailed logging
custom_user_agentstring""Custom User-Agent string

Input Examples

{
"searches": [
{
"query": "coffee shops",
"location": "Seattle, WA",
"max_results": 30
}
]
}

Multiple Searches with Filters

{
"searches": [
{
"query": "law firms",
"location": "Los Angeles, CA",
"max_results": 50
},
{
"query": "dentists",
"location": "Miami, FL",
"max_results": 25
}
],
"minimum_rating": 40,
"minimum_reviews": 10,
"enhanced_extraction": true,
"extract_emails": true,
"use_proxies": true
}

Fast Basic Data Only

{
"searches": [
{
"query": "restaurants",
"location": "New York, NY",
"max_results": 100
}
],
"enhanced_extraction": false,
"extract_emails": false
}

Output Format

The actor outputs structured JSON data for each business:

{
"name": "Wilshire Law Firm",
"rating": 4.9,
"review_count": 2525,
"address": "660 S. Figueroa Street, Los Angeles, CA",
"category": "Personal Injury Attorney",
"phone": "+1 800-241-9170",
"website": "https://wilshirelawfirm.com",
"email": "info@wilshirelawfirm.com",
"price_level": "",
"hours": "Open 24 hours",
"maps_url": "https://www.google.com/maps/place/...",
"extracted_at": "2025-10-16T10:00:00.000Z"
}

Output Formats:

  • detailed - All available fields (default)
  • compact - Essential fields only (name, phone, email, address)
  • csv_ready - Flat structure optimized for CSV export

Features

Intelligent Prioritization

  • Sorts businesses by rating × review count
  • Extracts phone numbers from highest-value prospects first
  • Prioritizes email extraction for businesses with existing phone numbers
  • Maximizes lead quality within timeout constraints

Anti-Detection

  • Uses Crawlee framework with browser fingerprinting
  • Residential proxy rotation via Apify proxies
  • Human-like scrolling and interaction delays
  • Automatic retry on failures

Timeout Optimization

  • Works within Apify's platform constraints
  • Gracefully handles timeouts without data loss
  • Continues extracting from next search if one times out
  • Saves partial results if actor is interrupted

Data Quality

  • Validates and normalizes phone numbers
  • Extracts emails using multiple methods (mailto links, contact pages, footer text)
  • Verifies URLs and formats consistently
  • Includes extraction timestamp for all records

Limitations

  • Email Extraction Accuracy: Email extraction success varies by website structure (30-60% success rate). Websites with anti-scraping measures, JavaScript-heavy contact forms, or no visible emails cannot be extracted.
  • Rate Limits: Google Maps may rate-limit or block requests. Use proxies and appropriate delays to minimize this.
  • Dynamic Content: Some business information requires user interaction (clicking tabs, expanding sections) which may not be captured.
  • Data Availability: Not all businesses have phone numbers, websites, or emails publicly listed on Google Maps or their websites.
  • Extraction Speed: Phase 2 and 3 add significant time. A search with 50 businesses may take 8-12 minutes with full extraction enabled.
  • Regional Variations: Results vary by location and language. Some regions have less complete business data.

Performance & Pricing

Typical Performance:

  • Phase 1 only (basic data): 50-100 businesses per minute
  • Phase 2 (with phone/website extraction): 5-10 businesses per minute
  • Phase 3 (with email extraction): 3-6 businesses per minute

Resource Usage:

  • Basic extraction: ~0.01-0.02 compute units per 50 businesses
  • Enhanced extraction: ~0.05-0.08 compute units per 50 businesses
  • With email extraction: ~0.10-0.15 compute units per 50 businesses

Realistic Expectations:

For a search of 50 businesses with all features enabled:

  • Time: 10-15 minutes
  • Phone numbers found: 20-35 (40-70%)
  • Emails found: 8-15 (15-30% of total, 40-60% of those with websites)
  • Complete records (phone + email): 5-12 (10-25%)

Technical Details

Extraction Methods:

  1. Google Maps list scrolling to load all results
  2. Individual business page visits for detailed data
  3. Website scraping for email addresses using:
    • Mailto: links
    • Contact page analysis
    • Footer and header text parsing
    • Common email patterns

Supported Data:

  • Business names and categories
  • Ratings (0-5 scale) and review counts
  • Physical addresses
  • Phone numbers (validated and formatted)
  • Website URLs
  • Email addresses
  • Operating hours
  • Price levels
  • Google Maps URLs

Error Handling:

  • Graceful timeout handling
  • Automatic retries on network failures
  • Progressive validation (continues with valid searches even if some fail)
  • Detailed logging for troubleshooting

Integration

Use Apify's built-in features:

  • Dataset API - Access results via REST API
  • Scheduled Runs - Automate daily/weekly lead collection
  • Webhooks - Get notifications when runs complete
  • Zapier/Make - Connect to CRMs and marketing tools

Example Integration Flow:

  1. Schedule actor to run weekly
  2. Export results to Google Sheets via Apify integration
  3. Use Zapier to add new leads to Salesforce/HubSpot
  4. Set up email notifications for high-value leads (rating > 4.5)

Best Practices

  1. Start Small - Test with 1-2 searches and 10-20 results before scaling
  2. Use Proxies - Always enable proxies to avoid IP blocks
  3. Set Realistic Timeouts - 10-12 minutes per search for full extraction
  4. Filter Strategically - Use minimum_rating and minimum_reviews to focus on quality
  5. Batch Wisely - 3-5 searches per run is optimal for reliability
  6. Monitor Logs - Enable debug logs if extraction rates seem low
  7. Respect Rate Limits - Use delays between requests (2-5 seconds recommended)

This actor collects publicly available information from Google Maps. When using this data:

  • Comply with Google's Terms of Service
  • Follow local data protection regulations (GDPR, CCPA, etc.)
  • Respect CAN-SPAM and anti-spam laws for email outreach
  • Only use data for legitimate business purposes
  • Provide opt-out mechanisms for contacted businesses
  • Store data securely and delete when no longer needed

Troubleshooting

Low phone/email extraction rates?

  • Increase timeout_per_search to 12-15 minutes
  • Enable debug logs to see extraction details
  • Check if businesses in your niche typically have websites

Actor timing out?

  • Reduce max_results per search
  • Disable email extraction for faster runs
  • Increase timeout_per_search parameter

Getting blocked?

  • Ensure use_proxies is enabled
  • Increase delay_between_requests
  • Reduce max_results to avoid sustained scraping

Empty results?

  • Verify search query and location are valid in Google Maps
  • Check if location has businesses for that query
  • Try broader search terms

Support

For issues, questions, or feature requests, please contact Apify support or report issues through the Apify Console.


Built on Apify platform. Powered by Crawlee for Python.