logo
languageENdown
menu

Scraping Google Maps: How to Bypass the 120-Result Limit and Extract Full City Data (2026)

star

Stuck at Google Maps' 120-result cap? Learn how maps splitting unlocks full city and country coverage, no-code, Python, and API methods compared, backed by real test data across three countries.

8 min read

Google Maps limits every search to 120 results. Scroll to the bottom of any city search and you’ll see the same message: “You’ve reached the end of the list.”

For a quick lookup, that’s fine. For any team building a lead list, mapping a market, or running competitive research across a city or country, it’s a real obstacle.

This guide covers everything you need to know about scraping Google Maps in 2026. Why the 120-result limit exists, how Octoparse uses maps splitting bypasses it, which method fits your situation, and how to get from keyword to usable dataset, with or without code.

Scraping Google Maps: Quick Answers

QuestionAnswer
What is the Google Maps 120-result limit?Google Maps shows a maximum of 120 places per search viewport, by design
How does maps splitting bypass it?Divides the target area into smaller grid cells, runs one search per cell, combines results
What data fields of Google Maps can you extract?Name, address, phone, website, rating, reviews, hours, coordinates, popular times, and more
What’s the fastest no-code method?Octoparse Google Maps Scraper template, runs in the cloud, no setup required

Ready to try it? Run your first Google Maps scrape with the Octoparse template below. No code, no setup, results in minutes.

https://www.octoparse.com/template/google-maps-advanced-scraper

Why Scrape Google Maps (And Why It’s Harder Than It Looks)

Google Maps holds over 200 million businesses and places around the world, updated continuously by business owners, Google’s own crawlers, and user contributions. For sales teams, marketing agencies, and market researchers, it’s the closest thing to a real-time global business directory.

What data is available on Google Maps

Every Google Maps listing contains two layers of data:

Listing layer (visible in search results):

FieldExample
Business nameBlue Bottle Coffee
CategoryCoffee shop
Rating4.6 stars
Review count1,842
Address300 Webster St, Oakland, CA
Coordinates37.8044, -122.2712
Price range$$
Current statusOpen / Closed

Detail layer (requires visiting the individual business page):

FieldExample
Phone number+1 510-653-3394
Website URLbluebottlecoffee.com
Opening hours (per day)Mon–Fri 7 AM–5 PM
Popular times (hourly %)Monday 12 PM: 78% busy
Plus CodeCRHM+QG Oakland
Delivery / service tagsTakeout, Dine-in, Delivery
Place IDChIJN1t_tDeuEmsRUsoyG83frY4

The detail layer is where most business value lives: phone numbers for outreach, opening hours for operational context, popular times as a foot-traffic proxy, for instance. Not all tools reach this layer. Many stop at the listing. Apify’s Google Maps Scraper, for example, doesn’t visit detail pages by default — it’s fast because it’s only pulling listing-layer data unless you turn detail scraping on.

Who Uses Google Maps Data and What They Do With It

1. Sales & Lead Generation

Sales and lead generation teams scrape Google Maps to build targeted prospect lists by industry, city, and rating threshold, then enrich with phone numbers and websites for direct outreach.

One marketing agency built their entire outbound operation on daily Octoparse Google Maps scrapes across Spain. Their sales operations team flags new businesses within 15 days of their first appearance on Google Maps, before competitors reach them. With 30 remote reps working from segmented lead lists, they turned real-time data into a consistent first-mover advantage in a crowded market.

For a deeper look, see our Google Maps lead generation guide.

2. Research & Intelligence

Market research and competitive intelligence teams map competitor locations, review volume, and rating distributions before entering a new market.

Rating and review count together are a useful signal of how competitive a market already is: a neighborhood packed with highly-rated, heavily-reviewed listings is likely saturated, while one with few reviews and modest ratings may still have room for a new entrant.

3. Real Estate & Site Selection

Real estate and site selection professionals use Google Maps data as a first-pass market map, checking category density per area, competitor proximity, and rating distribution before committing to a lease.

Popular times data serves as a foot-traffic proxy without commissioning a study. Coordinate-level data also enables precise proximity analysis.

See our guide on how to extract Google Maps coordinates for location-specific workflows.

4. Database & Directory Building

Local business database builders re-run the same template on a daily, weekly, or monthly schedule to maintain a continuously refreshed data asset.

Each run picks up new businesses, catches closures, and logs rating changes, which is useful for vertical directories, local SEO agencies, and SaaS platforms serving SMBs. Once you have the data, you can export Google Maps results to Excel or push directly to your CRM or database.

3 Reasons Standard Google Maps Searches Fall Short

Google Maps is built for human browsing, not bulk data export. No matter how large your search radius, every viewport caps at 120 results. Here’s why that’s a real problem in practice:

1. 120 results is a sample, not a complete picture

A city can have thousands of businesses in your target category. A single search returns 120 of them. For lead generation or market research, that’s a partial list — and partial lists produce incomplete outputs.

2. Dense areas are the hardest to cover

The more businesses packed into a district, the more a standard search misses. Results overlap, the viewport gets crowded, and Google tends to surface the same popular listings repeatedly. Scrolling through the panel does not help. You are still looking at the same capped set.

Google Maps search results for coffee shops in Tokyo showing a dense cluster of red pins

3. Complex geographies break simple grid approaches

Coastal cities, island chains, and multi-district metro areas waste a large share of search points on ocean or uninhabited land. A rectangular bounding box over Tokyo or Jakarta will burn budget on water.

Map of Tokyo with a rectangular bounding box highlighting the coastal, irregular city boundary

The official Google Places API also has per-query limits, though they differ from the Google Maps web UI: Text Search (New) returns up to 60 results across all pages, Nearby Search (Legacy) tops out at 60, and Nearby Search (New) allows only 1-20 results per request via maxResultCount. Either way, city-scale or country-scale collection means firing off hundreds of requests. For context, New York City alone has over 29,000 restaurants.

The only systematic fix is to stop thinking about one search and start thinking about many targeted searches across smaller areas. That’s what maps splitting does, and it’s the core technology behind the Octoparse Google Maps Scraper.

For a full cost and field comparison, see our Google Places API vs. Scraping guide.

Scraping Google Maps at Scale with Octoparse

Octoparse is a cloud-based web scraping platform with pre-built Google Maps templates that handle the entire pipeline from maps splitting to deduplication to export, without any code.

Maps splitting is the systematic answer to all three problems above. Here’s how Octoparse implements it and how you can run your first city-scale scrape in minutes.

Using the Google Maps Scraper template

Octoparse Google Maps Scraper takes two required inputs: a search term (up to 10,000 keywords in a single run) and a location. You can also set an optional cap on the number of places to extract per keyword, and toggle Q&A collection on or off.

From those inputs, the template returns a structured dataset covering both the listing layer and the detail layer:

Google Maps Scraper output fields

PurposeFields
Business identificationTitle, Category, Address, City, State, Country, Latitude, Longitude, Place ID, Google ID, Page URL
Contact & outreachPhone, Website, Plus Code
Qualification & scoringRating, Review Count, Price Range, Current Status, Delivery tags, Additional info
Operational intelligenceOpening hours (per day of week), Popular times (per day), Description
Visual referenceMain image, Image 1–3

Whether you’re building a lead list, mapping a market, or researching competitors, the output is ready to filter, sort, and export without any cleaning.

Template pricing: $2 per 1,000 records, billed per result. So you don’t need a recurring subscription to keep using the template. Pricing reflects built-in place_id deduplication. Results are cleaned before delivery, so you’re not paying for duplicate records.

The fastest path to get started from keyword to dataset:

  1. Search the Octoparse Google Maps Scraper template at Octoparse Desktop or template library. Or you can click the template card below to have a try:
Octoparse template library search results for Google Maps Scraper

https://www.octoparse.com/template/google-maps-advanced-scraper

  1. Enter your search keyword (e.g. “dental clinic”) and target location (e.g. “Germany”)
  2. Set the number of places to extract per keyword (optional; leave blank to collect all available results)
  3. Click Run. The task executes on Octoparse’s cloud servers, so you don’t need to keep your computer on
  4. Export as CSV, Excel, JSON, or push directly to Google Sheets. Here is the data I exported. How easy it is!
Octoparse task results screen showing 1,234 records extracted in 5 minutes 43 seconds

The template automatically handles AJAX loading, infinite scroll, and Google’s anti-bot measures. You get both listing-layer and detail-layer fields in a single output.

How Octoparse’s Google Maps Scraper uses maps splitting to bypass the 120-result limit

Standard scraping hits 120 results and stops. Octoparse’s Google Maps Scraper uses maps splitting, a multi-step geographic decomposition algorithm, to systematically cover an entire area.

Here’s what happens when you run a country-level or city-level scrape:

Step 1: Get the exact boundary of your target area

Instead of a rectangular bounding box, the algorithm fetches the actual administrative boundary of the target area (a polygon or MultiPolygon for complex regions like island chains or coastal cities). Tokyo, Jakarta, and New York’s five boroughs all have irregular shapes that a rectangle would handle badly, wasting search points on ocean or uninhabited areas.

Scatter plot of Tokyo search points following the city's administrative boundary with sea filtering

Step 2: Remove ocean and uninhabited areas

Before cutting the grid, the algorithm overlaps the target boundary with land data. Ocean zones get removed. Offshore islands that may contain businesses are kept.

This matters for two reasons. First, it stops the scraper from sending requests into water where no businesses exist. Second, it puts more coverage where businesses actually are.

Coastal and archipelago cities like Tokyo, Hong Kong, China, and Jakarta benefit most from this step. Their boundaries include scattered islands and irregular coastlines. A simple rectangular box would cover large areas of ocean, wasting requests and missing businesses on smaller islands.

Grid of search points covering Tokyo's main island and surrounding islands, ocean areas excluded

Step 3: Divide the area into a search grid

Once the land area is defined, the algorithm cuts it into a grid of smaller cells. Each cell becomes one independent search.

Cell size is not fixed. Busy city centers get smaller cells so more searches run in a concentrated area. Sparse suburbs and rural edges get larger cells to avoid running too many searches where few businesses exist.

This means the scraper spends more effort where there are more businesses, and less where there are few.

Step 4: Assign a zoom level to each grid cell

Each cell gets a zoom level between 14 and 17. Cells in dense areas get a higher zoom so more pins are visible. Cells in sparse areas get a lower zoom to cover more ground per search. The zoom level is calculated based on the cell’s distance from the city center, estimated business density, local population density, and cell size.

Scatter plot of Tokyo search points colored by assigned zoom level from 14 to 17

Step 5: Turn each cell into a Google Maps search

Each cell is converted into a Google Maps search URL using its exact coordinates: @lat,lon,zoomz. All URLs run in parallel, so hundreds of searches happen at the same time instead of one after another.

This shifts the question from:

“How do I get more results from one search?”

to:

“How do I search a city in smaller sections and combine the results?”

For example, a single search for coffee shops in Tokyo looks like this:

https://www.google.com/maps/search/coffee/@35.6884274,139.6813785,14775m

With maps splitting, that same search becomes five separate URLs, each covering a different section of the city:

https://www.google.com/maps/search/coffee/@35.6884274,139.6813785,14775m
https://www.google.com/maps/search/coffee/@35.6306112,139.6936841,14775m
https://www.google.com/maps/search/coffee/@35.7607862,139.3147604,14775m
https://www.google.com/maps/search/coffee/@35.7898614,139.2588329,14775m
https://www.google.com/maps/search/coffee/@35.5445786,139.7687058,14775m

A full city-scale scrape generates hundreds or thousands of URLs like these, all running at the same time.

Step 6: Collect listing data, then enrich with details

Most tools stop at the listing layer. But for sales, market research, or building a local business database, knowing a business exists is not enough. You need a phone number to call, opening hours to plan around, and a website to research before you reach out.

Collection runs in two passes:

  • Listing layer: name, rating, review count, category, address, coordinates
  • Detail layer: phone number, opening hours, images, description, price range, Plus Code, popular times, delivery information

The first pass sweeps across all search URLs quickly. The second pass visits individual business pages to fill in the detail layer for selected records.

You may also be interested in: 5 Best Google Image Scraper

Step 7: Remove duplicate results

Neighboring grid cells overlap slightly, so the same business can show up in more than one cell. The scraper deduplicates by place_id, a unique identifier Google assigns to every business. Each business appears exactly once in the final output.

Diagram of three data layers: search results, place details, and enrichment/deduplication

👉 Get Octoparse today!

Real test data: what maps splitting produces

We ran the Octoparse Google Maps Advanced Scraper across three geographic scenarios:

Real test data across three geographic scenarios

Poland (furniture stores)New York (restaurants)UK (e-bike shops)
ScopeCountry level, 3 synonym keywordsFull cityCountry level, 4 synonym keywords
Total collected19,8129,0367,189

Note on Poland data: one keyword was entered with a trailing space, and several sub-tasks stopped early due to a data-collection issue identified during testing. The actual coverage for a clean run of the same parameters is higher.

📑On the duplicate data question:

When you search with synonym keywords like “restaurant,” “bistro,” and “eatery,” Google Maps can return the same business for all three terms. That means your raw output will contain duplicates before any cleaning happens.

This is not a bug. It happens with every Google Maps scraper because it is how Google Maps search works.

Octoparse handles this by deduplicating on place_id, the unique identifier Google assigns to every business. The Poland test ran three synonym keywords across an entire country and confirmed 0 duplicates in a 20,110-record sample.

The other thing you can do on your end: use keywords that do not overlap. “Coffee shop” and “café” will return many of the same places. “Coffee shop” and “coworking space” will not. Keep in mind that entering many overlapping synonyms also slows down your scrape since more keywords mean more search cycles and more results to deduplicate.

Custom workflows for non-standard needs

The pre-built template covers most Google Maps scraping needs. When it doesn’t fit your needs (you need fields the template doesn’t include, or want to scrape a specific URL with custom filters), Octoparse’s visual workflow builder lets you build a custom scraper by clicking on the page elements you want. No code required.

Keep in mind that a custom workflow built this way is still a single Google Maps search and can hit the same 120-result cap per query. It doesn’t get maps splitting automatically. If you need fields the main template doesn’t cover, it’s usually faster to ask Octoparse to add them (as a template update or add-on) than to rebuild maps splitting yourself.

The key steps to build a custom Google Maps scraper in Octoparse:

  1. Create a new task in Octoparse and paste your Google Maps search URL
  2. Set up scroll pagination so the scraper loads all visible results before extracting
  3. Add a loop that clicks into each individual listing to collect detail-layer fields like phone numbers and opening hours
  4. Click on the page elements you want to extract to define your data fields
  5. Refine XPaths for dynamic elements like opening hours dropdowns to make sure the full schedule is captured
  6. Configure the scraper to return to the main results list after each listing visit, so it continues through all results

📖 Watch the Octoparse Google Maps custom scraper tutorial for a full walkthrough (10 minutes):

Scraping Google Maps with Octoparse MCP

If you work inside an AI client like Claude or ChatGPT, Octoparse’s MCP (Model Context Protocol) integration lets you trigger Google Maps scrapes from a simple chat prompt, with no need to open the Octoparse interface.

Setup:

  • Pick your AI client and follow the setup guide for it: Claude, ChatGPT, Cursor, etc. For instance, if you pick Claude, add https://mcp.octoparse.com as a custom connector in Claude Desktop, authorize with your Octoparse account and enable it. About 3 minutes, no config files.
  • Example prompt: Once connected, type something like:

Scrape Google Maps for restaurants in Los Angeles using the Google Maps Scraper template. Use these search keywords: “restaurants Los Angeles CA”, “fine dining Los Angeles CA”, “casual dining Los Angeles CA”. Set the number of places to extract per search term to 300. Export up to 500 results.

Once run, Claude should identify the right template, create the task, execute the scrape, and return structured data directly in the conversation.

For a full workflow walkthrough including lead enrichment and review collection, see our Google Maps Lead Generation with Octoparse MCP guide.

Other Google Maps Scraping Methods: Python, Scraping APIs, and Browser Extensions

Scraping Google Maps with Python

For developers who want control over the extraction logic, Python is viable for small to medium-scale scraping. Playwright is the preferred library in 2026. It’s faster than Selenium, with better async support and more resilient against Google’s bot detection.

A minimal example on Google Maps scraping with Python:

from playwright.async_api import async_playwright
import asyncio

async def scrape_google_maps(keyword, location):
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page()

        search_url = f"https://www.google.com/maps/search/{keyword}+{location}"
        await page.goto(search_url)
        await page.wait_for_timeout(3000)

        # Scroll to load results
        results_panel = page.locator('[role="feed"]')
        for _ in range(5):
            await results_panel.evaluate("el => el.scrollTop += 500")
            await page.wait_for_timeout(1000)

        # Extract business names
        names = await page.locator('a[class*="hfpxzc"]').all_text_contents()

        await browser.close()
        return names

asyncio.run(scrape_google_maps("coffee shop", "Tokyo"))

Where Python falls short at scale:

Getting past 120 results requires implementing maps splitting yourself: generating coordinate grids, managing seed URLs, rotating proxies, and handling deduplication. That’s a serious engineering project, not a weekend script.

Google’s anti-bot systems detect behavioral patterns: fixed timing intervals, mathematical scroll speeds, repeated requests from the same IP. Without residential proxy rotation and randomized behavior, most scrapers get rate-limited within a few hundred requests.

Python is best for: small-batch tests under 500 records, learning, integrating scraping into existing Python pipelines where you manage your own infrastructure.

Scraping APIs

SerpApi and ScraperAPI handle infrastructure for you (proxies, rendering, CAPTCHA) and return structured JSON. They work well for real-time single-record lookups: enriching a CRM record, checking current hours for a specific business, or building a lightweight live integration.

Where scraping APIs falls short:

The tradeoff is that most don’t include maps splitting, so you still hit the 120-result ceiling per query. Cost typically runs $3-10+ per 1,000 records at scale.

Best for: real-time single-record lookups, developer integrations that need JSON responses without managing browser infrastructure.

Browser extensions

Instant Data Scraper, G Maps Extractor, and similar tools pull results from whatever is currently visible in your browser. Free, no setup, and useful for quick tasks under 100 records.

Where browser extensions fall short:

The ceiling is the viewport itself. No extension can bypass the 120-result limit because there’s no maps splitting happening. What you see is what you get.

Best for: one-off exports of a specific search result, testing what data is available before committing to a full scrape. For anything under 500 records, the Octoparse Google Maps Scraper template also works well and adds the detail layer these tools can’t reach.

Quick comparison

OctoparsePython (Playwright)Scraping APIBrowser Extension
Bypasses 120-result limitYes (maps splitting)Only with custom codeNoNo
No-codeYesNoPartialYes
City / country scaleYesWith significant effortNoNo
Detail layer (phone, hours)YesYesVariesNo
Popular timesYesYes (complex)RarelyNo
Scheduling / automationYesSelf-managedVariesNo
Per-result template price$2 / 1,000Infrastructure cost$3-10+ / 1,000Free (120-result cap)
Setup timeMinutesDaysHoursMinutes

If you are looking for more Google Maps scraper tools, check our honest comparison on Google Maps extractors.

Octoparse vs. Apify vs. Outscraper

OctoparseApifyOutscraper
Maps splittingAutomatic (polygon + land masking + adaptive grid)More developer/config-driven than OctoparseZIP-code grid, manual selection
No-code optionYes (visual template)Yes (no-code Actor config, though many output fields to sift through)Yes (web UI)
Detail enrichmentPhone, hours, popular times (social/email via a separate Contact Details Scraper)Available as paid add-onsAvailable via “lead packs”
Cloud executionYesYesYes
MCP integrationYes (3-min setup, no config files)Yes (hosted OAuth via Apify MCP)No
Per-result template price$2/ 1,000$1.50-$4.00 / 1,000 (tiered by plan)$3.00 / 1,000 ($1.00 after 100K)
Free tier2000 export records for new users to try Octoparse MCP$5/month credits500 places/month
Best forComplex geographies, team reuse, non-technical usersDeveloper-focused custom workflowsQuick one-off exports

Pricing reflects per-result template billing as of June 2026, based on published rates. Apify and Outscraper also offer subscription plans with different unit economics at volume. Apify uses plan-based tiered pricing: for its Google Maps Scraper Actor, scraped-place pricing ranges from $4.00/1K on the Free plan to $1.50/1K on Business, and add-ons such as filters, additional place details, contacts, email verification, social profiles, and reviews are billed separately.

For a deeper feature comparison including test results and edge cases, see our Apify vs. Octoparse: Google Maps Scraper Comparison.

Which Google Maps Scraping Method Should You Use?

SituationBest method
City or country-level collection, no codingOctoparse template
Specific fields not in the templateOctoparse custom workflow
AI-first workflow (Claude, ChatGPT)Octoparse MCP
Small test run under 500 recordsOctoparse template like Google Maps Scraper, Python, or browser extension
Real-time single-record enrichmentScraping API
Quick one-off, 120 results is enoughBrowser extension
Developer building a custom pipelinePython + Octoparse API

The right choice depends on three factors: how much data you need, your budget (Octoparse’s template scales from small tests to city-wide runs with an optional per-keyword record cap, so it isn’t only for large budgets), and whether you have technical resources.

For most teams, the template handles 92% of use cases. The custom workflow and MCP paths cover the rest without requiring any code.

Public-data scraping has favorable precedent under US federal computer law in some cases, but Google Maps’ Terms of Service still prohibit scraping, and legal risk depends on your jurisdiction and use case. (This is general information, not legal advice. Talk to a lawyer if scraping is core to your business.)

1. US courts have ruled that scraping public data is not hacking

The hiQ Labs v. LinkedIn case (9th Circuit, 2022) established that scraping data visible to any browser user does not violate the Computer Fraud and Abuse Act (CFAA). The Van Buren v. United States decision (Supreme Court, 2021) reinforced this: the CFAA applies to systems that require login credentials, not to publicly visible pages. Google Maps business listings require no login or account. Under these rulings, they are public data.

2. Google’s ToS prohibits scraping

Section 3.2.3 of the Google Maps Platform Terms of Service explicitly prohibits exporting, extracting, or scraping Google Maps content for use outside the service, including copying and storing business names, addresses, and user reviews. Violating ToS is a contractual matter, not a criminal one, but it’s a real restriction, not a technicality. The real risk is IP blocking or account suspension, not prosecution.

3. How to reduce risk in practice

  • Use a cloud-based scraper like Octoparse. Your personal IP is never used for scraping
  • Scrape at reasonable rates to avoid triggering Google’s anti-bot systems
  • Stick to publicly visible business data and avoid collecting personal data about individuals
  • For EU operations: generic company information (business name, category, public address) is generally treated as non-personal commercial data, but named employee contact details like a specific person’s business email or direct phone number, can still count as personal data under GDPR (European Commission guidance, ICO guidance). Collect only what you need for a specific purpose, and treat named-contact fields with the same care as any other personal data.

FAQs about Google Maps Scraping

  1. How do I get more than 120 results from Google Maps?

Use the Octoparse Google Maps Scraper template, which implements geographic area splitting (maps splitting) automatically. The tool divides your target area into a grid of smaller cells, runs a separate search in each one, and combines results. Each cell can return up to 120 records. For a city like New York, this means hundreds of individual searches running in parallel, producing thousands of unique business records from a single keyword.

  1. What is the difference between the Google Maps API and scraping?

The Google Places API provides structured JSON responses and is designed for live app integration: real-time single-record lookups, displaying results on maps, and developer workflows. It imposes per-query result limits that make city-scale bulk collection impractical, and charges per request at scale. Scraping reads the same public data shown in the browser, is better suited for bulk export and market research, and costs significantly less per record at volume. For 250,000 records, Octoparse is roughly 2x cheaper than Google Places API for basic fields, and can be 7-10x cheaper when richer lead fields such as phone, website, hours, ratings, or reviews are included. The right choice depends on your use case.

  1. How accurate is the location data?

Location accuracy depends on the precision level you target. Octoparse’s Google Maps Scraper filters results at the State level by default. This is reliable and consistent across all test runs. For sub-state precision (county, city district, ZIP code), accuracy varies because Google Maps itself can return results slightly outside a specified boundary. Our New York test returned 93.8% city-accurate results from a city-level query, with 6.2% falling in adjacent areas within New York State. If county-level precision is critical for your use case, inputting more granular location terms (specific ZIP codes, neighborhood names) alongside State filtering improves accuracy. This is a known behavior across all Google Maps scrapers. None can override Google’s own result ranking logic.

  1. What data can I export from Google Maps?

From the listing layer: business name, category, address, coordinates, rating, review count, price range, current status, Place ID, Google ID. From the detail layer: phone number, website, opening hours per day, popular times (hourly breakdown), Plus Code, delivery and service tags, and description. Email addresses and social profiles are not on Google Maps directly. You can get them by feeding the business website URLs from your Google Maps results into Octoparse’s Contact Details Scraper, which isn’t billed per record.

https://www.octoparse.com/template/contact-details-scraper

  1. Is there a free option for scraping Google Maps?

Yes, with limitations. Browser extensions are free but cap at 120 results. Octoparse’s Free Plan provides 10 tasks and local execution at no cost, good for testing. Outscraper offers 500 places/month free. For city-scale or country-scale collection, a paid option is necessary.

  1. Can I scrape Google Maps reviews?

Yes, but through a separate template. Octoparse’s Google Maps Scraper and Leads Scraper return review count and rating as part of the detail layer; getting individual review text, reviewer names, and dates requires Octoparse’s dedicated Google Maps Reviews Scraper. Because it means visiting each business’s reviews individually, bulk review collection takes noticeably longer than listing-only scrapes.

https://www.octoparse.com/template/google-maps-review-scraper-cloud

Conclusion

The 120-result ceiling isn’t a bug you can script around. It’s how Google Maps is built. The only way to collect at city or country scale is to run many smaller searches across a divided area. That’s what maps splitting does.

If you need a one-off small batch, Python or a browser extension works fine. If you’re building something repeatable (lead lists, market maps, competitive monitoring), a no-code template gets you there without the infrastructure overhead.

Get Web Data in Clicks
Easily scrape data from any website without coding.
Free Download

Hot posts

Explore topics

image
Get web automation tips right into your inbox
Subscribe to get Octoparse monthly newsletters about web scraping solutions, product updates, etc.

Get started with Octoparse today

Free Download

Related Articles