Google Map Scraper avatar

Google Map Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Google Map Scraper

Google Map Scraper

Extract company profiles from Google Maps search results using custom queries. Collect structured business data like name, industry, address, contact details, ratings, and website, ready in dataset/CSV format for lead generation or analysi

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Komala Maran

Komala Maran

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

5 days ago

Last modified

Share

Google Maps Company Scraper (Apify Actor)

This Actor scrapes company profiles from Google Maps search results and exports structured business data.

What it does

  • Builds a Google Maps query from your input parameters.
  • Opens the Google Maps search result list for that query.
  • Scrolls the result feed until it collects enough place links.
  • Saves search-list results to the default Apify dataset as soon as links are collected, so output is available before short run timeouts.
  • Visits remaining place detail pages only when there is enough time and the result was not already saved.
  • Extracts normalized company fields from the best data available before timeout.

Extracted output fields

Each dataset item contains:

  • companyName
  • companyIndustry
  • locationRegion
  • exactAddress
  • servicesOffered
  • companyDomain
  • googleMapsLink
  • contactNumber
  • emailId
  • starRating
  • reviewCount
  • totalCompaniesFound

Input schema

The Actor expects the following input fields (configured in .actor/input_schema.json):

  • searchQuery (string, optional)
    • Main query term. If empty, query is auto-built.
  • location (string, required)
    • City/region to search in.
  • industryFilter (string, optional)
    • Used for auto-built query when searchQuery is empty.
  • minEmployees (integer, optional, default 0)
    • Appended to the query when greater than 0.
  • maxEmployees (integer, optional)
    • Used with minEmployees for range query text.
  • numResults (integer, required, default 50, max 500)
    • Number of places to extract.
  • useProxy (boolean, default true)
    • Enables Apify Proxy configuration.

Query-building behavior

Query logic:

  1. Start with searchQuery if provided.
  2. Otherwise use:
    • "<industryFilter> companies" when industryFilter is set, or
    • "companies" fallback.
  3. Append in <location> unless the base query already includes the city name.
  4. Append employee-size text:
    • with <min> to <max> employees when both min and max are provided.
    • with <min>+ employees when only min is provided.

Anti-block and reliability settings

  • Optional Apify Proxy support (useProxy).
  • Session pool enabled.
  • Persistent cookies per session enabled.
  • Browser launch args include:
    • --disable-blink-features=AutomationControlled
    • --lang=en-US

Tech stack

  • Node.js (ES modules)
  • Apify SDK (apify)
  • Crawlee (PlaywrightCrawler)
  • Playwright

Example input

{
"searchQuery": "AI Companies",
"location": "Bangalore, India",
"industryFilter": "IT Services",
"minEmployees": 500,
"maxEmployees": 1000,
"numResults": 20,
"useProxy": true
}

Notes

  • Data quality depends on what each Google Maps place profile exposes publicly.
  • The actor prioritizes saving records before a run timeout; records saved directly from the search list may contain N/A for fields that require opening a detail page.
  • emailId is inferred as info@domain when website domain is available.
  • contactNumber may be parsed from page text when a direct phone selector is absent.