Google Maps Scraper avatar

Google Maps Scraper

Pricing

from $2.00 / 1,000 business scrapeds

Go to Apify Store
Google Maps Scraper

Google Maps Scraper

Turn any Google Maps search into clean business leads: names, addresses, phones, websites, ratings, and hours. You only pay for the businesses returned. Add decision-maker contacts, verified work emails, and full Google reviews as paid add-ons. No proxies, no login.

Pricing

from $2.00 / 1,000 business scrapeds

Rating

5.0

(1)

Developer

Atomus APIs

Atomus APIs

Maintained by Community

Actor stats

1

Bookmarked

8

Total users

5

Monthly active users

12 hours ago

Last modified

Share

Google Maps Scraper extracts business listings from Google Maps by keyword and location. Give it a search like "coffee shops in Berlin" and get back clean, structured records with names, addresses, phone numbers, websites, ratings, review counts, categories, coordinates, and opening hours. No proxies to configure, no login, no blocks to fight, and nothing to maintain.

What data can you extract from Google Maps?

Search any keyword and location and get one structured record per business:

FieldDescription
nameBusiness name
original_titleUntranslated business name, when Google localized the name
addressFull address
address_infoStructured address (street, city, zip, region, country)
phonePhone number
websiteWebsite URL
domainWebsite domain
contact_urlContact, menu, or appointment link on Google Maps, when available
contributor_urlGoogle Maps contributor profile of the listing's main contributor
ratingStar rating
reviews_countNumber of reviews
rating_distributionCount of ratings per star (1 to 5)
hotel_ratingHotel star rating, for hotels
categoryPrimary category
additional_categoriesSecondary categories
category_idsGoogle category identifiers (stable, language-independent)
price_levelPrice level (inexpensive to very expensive)
latitude, longitudeGPS coordinates
place_id, cid, feature_idGoogle place identifiers
hoursOpening hours by day
statusWhether the place is open now
is_claimedWhether the owner has claimed the listing
is_directory_itemWhether the result is a directory entry rather than a single business
book_online_urlReservation or booking link, when available
total_photosNumber of photos on the listing
main_imageMain photo URL
local_justificationsGoogle's "why this result" match justifications, when present
rank, rank_groupPosition in the results (overall and within its group)

How do I scrape Google Maps?

  1. Enter a search query, for example "coffee shops", "plumber", or "dentist".
  2. Set a location, for example "New York, United States" or "Berlin, Germany".
  3. Choose how many businesses you want back (1 to 700).
  4. Run the actor. Results appear in the dataset, ready to fetch via the Apify API.

Input

FieldRequiredDescription
queryYesWhat to search for on Google Maps
locationNoCity, region, or country. Defaults to United States
locationCoordinateNoSearch around a point: "latitude,longitude,zoom" (e.g. "40.7128,-74.0060,14z"). Overrides location
languageCodeNoTwo-letter language code, e.g. "en", "fr", "de" (default "en")
maxResultsNoHow many businesses to return, 1 to 700 (default 20)

You get back exactly the number of businesses you ask for when they are available. Ask for 5 and you get 5, even when the area has more.

Free filters

Narrow the results at no extra cost. Filters apply to the whole search, up to the number of businesses you asked for, so a strict filter over 700 results really does look at all 700. Filtering itself is always free:

FieldDescription
minRatingOnly businesses with at least this star rating (0 to 5)
requireWebsiteOnly businesses that have a website
skipClosedExclude closed or permanently closed businesses
exactMatchOnly businesses whose name contains your exact search text
categoryOnly businesses whose category matches this text

Find businesses that got a bad review recently

recentBadReviewMaxRating (1 to 4) plus recentBadReviewPeriod returns only the businesses that received a review at or below that rating inside the period. Set the rating to 1 and the period to 6 months and you get the businesses that took a 1-star review in the last six months, which is the list reputation agencies prospect from.

recentBadReviewPeriodMeaningCost
3m / 6m / 12m / 24mGot a bad review inside that windowReads reviews (paid)
allEver got a bad reviewFree

all is free because the Google Maps search already returns each business's count of reviews per star rating. That count is complete, so "has ever been rated 1 star" is answered without reading a single review, and more accurately than sampling the most recent ones.

The dated periods cost money because that same count says how many 1-star reviews exist but never when they were left. Only the reviews carry a date, so those periods switch the reviews add-on on by themselves at 10 reviews per business. Two things follow, both stated on the input page:

  • Businesses that have never been rated that low are discarded first, for free, so we only pay to read the reviews of real candidates.
  • You are billed for the reviews we read, not only for the businesses that end up matching. Reading is what identifies a match. A search of 100 businesses where 60 have ever taken a 1-star bills reviews for 60 and may return 9.

For dated periods we read only the bad reviews, and all of them, never a sample of the newest few. The same free per-star count that powers all says how many reviews sit at or below your threshold, so a business with 8 reviews of 2 stars or fewer has all 8 read. A business whose only 2-star review is the 150th most recent is still found. Only businesses with more than 200 bad reviews are sampled.

The filter combines with the reviews add-on: set maxReviews as well and every business that matches comes back with its reviews attached, billed once.

Periods are deliberately coarse. Many Google reviews carry only a relative date ("a month ago"), which answers "last 3 months" cleanly and "the last 47 days" not at all, so we read those relative dates rather than discard the reviews that have them.

Output

Each business is one record in the dataset:

{
"name": "Blue Bottle Coffee",
"address": "66 Mint St, San Francisco, CA 94103",
"address_info": { "address": "66 Mint St", "city": "San Francisco", "zip": "94103", "region": "California", "country_code": "US" },
"phone": "+14156535228",
"website": "https://bluebottlecoffee.com",
"domain": "bluebottlecoffee.com",
"rating": 4.5,
"reviews_count": 1243,
"rating_distribution": { "1": 20, "2": 15, "3": 60, "4": 300, "5": 848 },
"category": "Coffee shop",
"additional_categories": ["Cafe", "Espresso bar"],
"price_level": "moderate",
"latitude": 37.7825,
"longitude": -122.4072,
"place_id": "ChIJ...",
"cid": "987654321",
"hours": { "monday": [{ "open": { "hour": 7 } }] },
"status": "open",
"is_claimed": true,
"is_directory_item": false,
"book_online_url": "https://www.google.com/maps/reserve/...",
"total_photos": 342,
"main_image": "https://lh3.googleusercontent.com/...",
"category_ids": ["coffee_shop", "cafe"],
"feature_id": "0x8085808:0xabc123",
"contributor_url": "https://maps.google.com/maps/contrib/1142866417270639...",
"rank": 1,
"rank_group": 1
}

With the Business leads add-on on, each business also carries a leads array (and each lead an email + email_status when the Lead emails add-on is on):

{
"name": "Neon Ambition",
"domain": "neonambition.com",
"leads": [
{
"full_name": "Jordan Slover",
"title": "Founder",
"seniority": "founder",
"department": "c_suite",
"linkedin_url": "https://www.linkedin.com/in/jordanslover",
"company_name": "Neon Ambition",
"company_industry": "advertising services",
"company_employee_count": 16,
"email": "jordan@neonambition.com",
"email_status": "VALID"
}
]
}

How much does it cost to scrape Google Maps?

Pay per business, with no subscription:

  • $0.003 per business returned ($3 per 1,000). Higher Apify plans (Gold and up) pay $2 per 1,000.
  • Minimum of 1 business per 100 results scanned. Running the search costs us money whether or not your filters keep anything, so every search has a small floor. It only shows up when a filter throws almost everything away: ask for 700 and get 3 matches, and you are billed 7 businesses ($0.021) instead of 3. A search with no filters always bills exactly what you receive.

A search that returns 20 businesses costs 20 x $0.003 = $0.06, and scraping 1,000 businesses is $3.00. A search that returns nothing still charges for one business. Failed searches are free.

Optional extras, billed only when you turn them on:

  • Reviews ($0.0008 per review, dropping to $0.0005 on higher Apify plans). Set "Reviews per business" to also pull Google reviews for each result, with review text, rating, author, author avatar, date, the photos the reviewer attached, and the owner's reply. Each business with reviews enabled bills a minimum of about 3 reviews (about $0.0024) even if it has fewer, because the reviews lookup runs and bills regardless. A search of 20 businesses with 10 reviews each adds about 20 x 10 x $0.0008 = $0.16.

  • Business leads ($0.006 per lead found). Set "Maximum leads per place" to also find decision-maker contacts at each business — full name, job title, seniority, department, LinkedIn profile, and company data (industry, employee count). Filter by seniority (owner, founder, C-suite…) and department. The number is per place found: 5 leads across 200 places attempts up to 1,000 leads. You are only charged for leads actually found; businesses with no website, and leads not found, are free. Works only when a business has a website.

  • Lead emails ($0.006 per email found). Turn on "Find lead emails" to also find and verify each lead's work email (with a VALID/INVALID status). This requires "Maximum leads per place" above 0 — there is no email to find without first finding the person. You are only charged for emails successfully found; not-found emails are free.

Leads appear under a leads array on each business. A search of 50 places (with websites) finding ~2 leads each is about 100 x $0.006 = $0.60 for leads; adding emails found for ~70 of them adds about 70 x $0.006 = $0.42.

Limits and how it handles them

  • Up to 700 businesses per search. For a bigger market than one query can cover, vary the location or narrow the query.
  • A location is required for good results. If you leave it empty, the search defaults to the United States.
  • You get exactly maxResults businesses. If you ask for fewer than the area has, we return and bill for only what you asked; if the area has fewer, you get what exists.

Use it with AI agents and MCP

Like any Apify actor, Google Maps Scraper can be called from the Apify API and used as a tool by AI agents and MCP clients. An agent can run it to pull fresh local-business data on demand, then feed the structured records straight into its workflow.

Use cases

  • Generate qualified leads. Build prospect lists of local businesses with names, websites, and phone numbers for your sales team.
  • Track competitors by area. See where competitors operate and how they are rated across any city or region.
  • Run market research. Measure how saturated a market is, find service gaps, and benchmark local businesses by rating and reviews.
Google Maps ScraperOfficial Google Places APIBrowser or cookie tools
SetupQuery + location, runAPI key, billing account, quotasInstall extension or manage a browser
Proxies / blocksHandled for youNot applicableYou manage them
Cost modelPay per business returnedPer request, with field-based tiersYour time and infrastructure
Bulk friendlyYes, up to 700 per searchRate-limited and quota-cappedManual and slow
MaintenanceNoneKey and quota managementBreaks when the site changes

FAQ

Is there an official Google Maps API? Yes, the Google Places API. It requires a billing account, API key, and works per request with field-based pricing. This actor gives you the same core business data with a simpler input and per-result pricing.

Is it legal to scrape Google Maps? Scraping publicly available business information is widely used for lead generation and market research. You are responsible for how you use the data and for complying with applicable laws and terms.

How many businesses can I get per search? Up to 700 per search. To cover a bigger market, run several searches with different locations or narrower queries.

Do I need a Google account or login? No. There is no login, no cookies, and no proxy setup.

Disclaimer

This actor extracts publicly available business information from Google Maps. Use it in compliance with applicable laws and the terms of the services involved. It is not affiliated with or endorsed by Google.