Google Maps Places & Business Scraper avatar

Google Maps Places & Business Scraper

Pricing

from $2.00 / 1,000 dataset items

Go to Apify Store
Google Maps Places & Business Scraper

Google Maps Places & Business Scraper

Scrape Google Maps business listings at scale — name, category, full address, GPS, phone, website, rating, review count, opening hours and photos as clean JSON. Built for lead generation, local SEO and market research. Simple, transparent pricing — pay only for the results you get.

Pricing

from $2.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Turn any keyword + location into a clean, structured list of Google Maps businesses — name, category, full address, GPS, phone, website, rating, review count, opening hours and photos — exported as JSON, CSV, or Excel, ready for your CRM, spreadsheet, or data pipeline.

No Google API key, no quotas, no login. Just search terms and a place.

Who it's for

  • Agencies & lead generation — build call/outreach lists with phone numbers, websites and full addresses for any niche in any city.
  • Local SEO & market research — map competitors by category with ratings, review counts, categories and hours.
  • PropTech / SaaS / directory builders — a stable JSON schema with place_id, cid and ftid for clean joins and deduplication, callable from code, MCP, or an AI assistant.

What you get (output fields)

FieldTypeDescription
namestringBusiness / place name
primary_category / categoriesstring / arrayBusiness category and all labels
rating / review_countnumber / intAverage star rating and number of reviews
phone / phone_displaystringPhone in E.164 (+1415…) and local format
website / website_domainstringBusiness website and bare domain
full_addressstringComplete formatted address
street / city / state / postal_code / country_codestringStructured address parts
neighborhood / timezone / plus_codestringDistrict, IANA timezone, Plus Code
latitude / longitudenumberGPS coordinates
opening_hoursobject{today, status, week[]} (full week with detail enrichment)
price_levelstringRelative price band, e.g. $$
photosarray{photo_id, url, width, height, caption, media_type}
thumbnail / descriptionstringPrimary image and editorial summary
attributesobjectGrouped amenities/accessibility (e.g. Service options)
place_id / cid / ftid / kgmidstringStable Google identifiers
maps_urlstringCanonical Google Maps place URL
search_query / search_location / scraped_atstringRow provenance

High-value use cases

  1. B2B lead lists — "dentists in Chicago", "law firms in London" → a CSV of names, phones, websites and addresses for outreach.
  2. Local competitor analysis — pull every "coffee shop" in a district with ratings and review counts to benchmark your location.
  3. Store/agent locators & directories — power a niche directory site with a fresh, deduplicated business dataset keyed by place_id.
  4. Territory & market sizing — count and map businesses per category across neighborhoods for sales planning.
  5. Data enrichment — join place_id/cid into your existing records to add phone, hours, GPS and categories.

Input parameters

FieldTypeDefaultDescription
searchQueriesarray(required)Keywords/categories, e.g. ["restaurants","dentist"]
locationstring""City/area to search within (geocoded), e.g. "San Francisco, CA"
customCoordinatesobject{lat,lng,zoom} to override geocoding for an exact viewport
zoominteger14Viewport zoom (11≈city, 14≈district, 16≈neighborhood)
maxItemsinteger100Stop after this many total places
enrichPlaceDetailsbooleanfalseExtra per-place call: full-week hours, full gallery, editorial summary
includePhotosbooleantrueInclude the photo array in each row
languagestring"en"Response language
countryCodestring"us"Country bias
proxyConfigurationobjectResidentialApify Proxy (rotated on rate-limit)

Example input

{
"searchQueries": ["coffee shops"],
"location": "San Francisco, CA",
"maxItems": 50,
"includePhotos": true,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Example output row

{
"name": "Blue Bottle Coffee",
"primary_category": "Coffee shop",
"categories": ["Coffee shop", "Cafe"],
"rating": 4.5,
"review_count": 1280,
"phone": "+14156538205",
"phone_display": "(415) 653-8205",
"website": "https://bluebottlecoffee.com/",
"full_address": "66 Mint St, San Francisco, CA 94103",
"city": "San Francisco",
"state": "CA",
"postal_code": "94103",
"country_code": "US",
"latitude": 37.782,
"longitude": -122.407,
"opening_hours": { "today": "7 AM–6 PM", "status": "Open", "week": [] },
"photos": [{ "photo_id": "AF1…", "url": "https://lh3.googleusercontent.com/…=s0", "width": 4032, "height": 3024, "media_type": "Photo" }],
"place_id": "ChIJ8_Ju2YSAhYARz1234567890",
"cid": "16472…",
"maps_url": "https://www.google.com/maps/place/?q=place_id:ChIJ8_Ju2YSAhYARz1234567890",
"search_query": "coffee shops",
"search_location": "San Francisco, CA",
"scraped_at": "2026-09-04T12:00:00Z"
}

Scheduling, webhooks & integrations

  • Schedule runs (hourly/daily/weekly) from the Apify Console to keep a fresh dataset.
  • Webhooks notify your system on run finish; push results straight to Google Sheets, Make, Zapier, Slack, or S3.
  • API — start runs and fetch the dataset in JSON/CSV/Excel with the Apify API or any Apify client library.

Use it from an AI assistant (MCP)

This actor works with the Apify MCP server, so AI assistants (Claude, ChatGPT, Cursor, VS Code) can call it as a tool — e.g. "Get me every dentist in Austin with a phone number and website." Point your MCP client at Apify and invoke axlymxp/google-maps-places-scraper.

FAQ

How many places can I get per search? Google returns roughly 120–200 places per term + viewport. To go wider, add more search terms or split a city into smaller location/customCoordinates areas.

Do I get email addresses? No. This actor returns the data Google Maps exposes — phone and website, not email. Pipe the website field into an email-finder actor if you need emails.

Do I get individual review text? No. You get the rating, review count and a reviews URL; full review text is not part of this actor's scope.

How fresh is the data? Every row is scraped live at run time (scraped_at timestamp included).

Is it reliable? Yes — it calls Google Maps' own public endpoints and rotates Apify Residential proxies, backing off automatically if Google rate-limits an IP.

Is scraping Google Maps legal? The actor collects publicly available business information. You are responsible for using the data in line with applicable laws and Google's terms.

Something looks off — how do I get help? Open an issue on the actor's page; issues are monitored and addressed quickly.