Google Maps Scraper - Places, Phones, Websites and Ratings avatar

Google Maps Scraper - Places, Phones, Websites and Ratings

Pricing

from $1.70 / 1,000 places

Go to Apify Store
Google Maps Scraper - Places, Phones, Websites and Ratings

Google Maps Scraper - Places, Phones, Websites and Ratings

Google Maps scraper and Places API alternative: local businesses by search term and location with name, categories, full address, coordinates, phone, website, rating, review count, opening hours, closed status, place ID and CID. Lead lists, no browser, no API key.

Pricing

from $1.70 / 1,000 places

Rating

0.0

(0)

Developer

CrawlKit

CrawlKit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

Scrape Google Maps for any business type in any location. Each result is one place with its name, main category and all categories, full address split into street, city, postal code, state and country code, coordinates, phone number, website, Google rating, review count, weekly opening hours, closure status, photo, Google place ID and CID, and a Google Maps link.

Give one or more searchTerms (dentist, coffee shop, roofing contractor) and a location (Austin, TX), or paste Google Maps search URLs. The Actor reads the same data the Google Maps web app loads, without a browser, so runs are fast and cheap.

What you can use it for

  • Lead lists of local businesses with phone and website (dentists in Austin, plumbers in Denver, restaurants in Paris).
  • Local market studies: how many competitors, their ratings and review counts, opening hours, closed locations.
  • Store locator and POI data with coordinates, place IDs and normalized addresses.
  • Data for AI agents: flat JSON, one item per place, explicit field names.

Input

FieldTypeDefaultDescription
searchTermsarray of strings-What to search, one search per term: dentist, pizza, Starbucks.
locationstring-Area added to every term: Austin, TX, Paris, France, 90210. Recommended: without it Google picks the area from the proxy IP.
searchUrlsarray of strings-Google Maps search URLs, e.g. https://www.google.com/maps/search/pizza/@41.9028,12.4964,14z. The map position in the URL is used.
maxItemsinteger20Maximum places per search term or URL (1-500).
languagestringenResult language (hl): en, fr, de, es, pt-BR...
countrystringusGoogle country (gl): us, gb, de, fr...
minRatingstringanyKeep only places rated at least 3, 3.5, 4 or 4.5 stars.
includeDetailsbooleanfalseOne extra request per place to add description and reviewsDistribution (reviews per star).

Either searchTerms or searchUrls is needed. Example:

{
"searchTerms": ["dentist", "orthodontist"],
"location": "Austin, TX",
"maxItems": 50,
"minRating": "4"
}

Output

One item per place, deduplicated by placeId across all searches of the run. Real example (dentist in Austin, TX, image URL shortened):

{
"placeId": "ChIJb5gBC-u0RIYRHkntaUcdJGs",
"cid": "7720327853776914718",
"featureId": "0x8644b4eb0b01986f:0x6b241d4769ed491e",
"name": "ATX Family Dental",
"category": "Dentist",
"categories": ["Dentist", "Cosmetic dentist", "Dental clinic", "Emergency dental service", "Pediatric dentist", "Teeth whitening service"],
"address": "1700 S 1st St, Austin, TX 78704",
"neighborhood": "Bouldin Creek",
"street": "1700 S 1st St",
"city": "Austin",
"postalCode": "78704",
"state": "Texas",
"countryCode": "US",
"latitude": 30.2482229,
"longitude": -97.75597049999999,
"phone": "(512) 717-3147",
"phoneUnformatted": "+15127173147",
"website": "https://www.atxfamilydental.com/",
"rating": 4.9,
"reviewsCount": 916,
"priceLevel": null,
"openingHours": [
{"day": "Monday", "hours": "8 AM–5 PM"},
{"day": "Tuesday", "hours": "8 AM–5 PM"},
{"day": "Wednesday", "hours": "8 AM–5 PM"},
{"day": "Thursday", "hours": "8 AM–5 PM"},
{"day": "Friday", "hours": "8 AM–4 PM"},
{"day": "Saturday", "hours": "Closed"},
{"day": "Sunday", "hours": "Closed"}
],
"permanentlyClosed": false,
"temporarilyClosed": false,
"timeZone": "America/Chicago",
"imageUrl": "https://lh3.googleusercontent.com/grass-cs/...=w100-h92-k-no",
"googleMapsUrl": "https://www.google.com/maps/search/?api=1&query=ATX%20Family%20Dental&query_place_id=ChIJb5gBC-u0RIYRHkntaUcdJGs",
"searchTerm": "dentist",
"rank": 1,
"scrapedAt": "2026-10-28T07:30:00+00:00"
}

With includeDetails, two fields are added:

{
"description": "Iconic Chicago Steakhouse",
"reviewsDistribution": {"oneStar": 117, "twoStars": 42, "threeStars": 111, "fourStars": 333, "fiveStars": 3620}
}

Field notes:

  • placeId works with the Google Places API and Maps URLs; cid is the listing id used in https://maps.google.com/?cid=... links.
  • rank is the position of the place in the Google Maps results of its search.
  • phone is formatted as Google shows it; phoneUnformatted has no formatting (E.164 with country code in most countries).
  • openingHours day names are always in English; the hours text follows language.
  • Service-area businesses (plumbers, cleaners...) often have no street address: address fields are null.

Pricing

Pay-per-event, no start fee: $2.80 per 1,000 places on the Apify Free plan, with lower prices on paid plans. Each place pushed to the dataset is one event; includeDetails is included at no extra charge.

EventFreeStarterScaleBusinessEnterprise
Place (PLACE)$2.80$2.40$2.10$1.70$1.70

Prices in USD per 1,000 events.

Cost examples (Free plan)

ScenarioPlacesCost
Quick look10$0.028
One category in one city100$0.28
Lead list1,000$2.80

Limitations

  • Google Maps lists about 120 places per search (sometimes up to ~240). For more places, split the search: several terms, neighborhoods or ZIP codes as locations.
  • Results follow Google's ranking for the query and location; places may move between runs.
  • priceLevel is only filled when Google includes it in the search data, which is rare: it was null for all 890 places of our test runs (restaurants included).
  • temporarilyClosed is detected on a best-effort basis; permanentlyClosed comes from Google's closure flag.
  • Reviews text is not extracted by this Actor.
  • Place URLs (/maps/place/...) are not accepted as input; use search terms or search URLs.