Scraper API

Google Maps Scraper API: Maps Search Results

ProxyField's Google Maps scraper API returns the Google Maps search results for your query and location, for $1.50 per 1,000 successful results, from $1.00 at volume, and you pay only for successful results. One successful result is one results page of up to 20 businesses for one search, such as "dentists in Austin", so the first page of a lead list of 20 business categories in 50 US cities is 1,000 results and costs $1.50, and a search read to its last page, 6 pages of up to 20 businesses, costs $0.009. Each Maps listing carries the business name, category, address, phone number, website, rating, review count and opening hours. To start, contact sales.

Google Maps scraper API per 1,000 successful results

Entry

$1.50

Volume, from

$1.00

Billed on successful results only.

In short

Google Maps scraper API
You senda search term and a location, such as "plumbers" + "Denver, CO"
You getthe businesses Google Maps lists for that search, as JSON, up to 20 per results page
Price$1.50 per 1,000 successful results, from $1.00 at volume
Billedsuccessful results only
Billing unitone results page of up to 20 businesses = one result; up to 6 pages per search
Needs a Google API keyno
Browser, IPs, retrieson our side
Pricing

Google Maps scraper pricing

The Google Maps scraper API costs $1.50 per 1,000 successful results, from $1.00 at volume; you pay only for successful results. The $1.00 price starts at 10,000 successful results in one purchase.

What a lead list or a local check costs at the $1.50 entry price, one successful result per results page of up to 20 businesses:

Google Maps scraper API per 1,000 successful results

Entry

$1.50

Volume, from

$1.00

Billed on successful results only.

Read moreShow less
JobResults pagesCost at $1.50 per 1,000
20 business categories in 50 US cities, first page of each search (up to 20,000 businesses)1,000$1.50
The same 1,000 searches read to the last page (6 pages each)6,000$9.00
100 categories in 200 cities, first page of each search20,000$30.00
300 local searches checked every day for a month, first page9,000$13.50
5,000 first pages a day for a month150,000$225.00

At the last volume, bought in one purchase, the $1.00 price applies: 150,000 results at $1.00 per 1,000 come to $150.00.

Comparing with tools that charge per business? Divide the price per result by the businesses in it: one result is one results page of up to 20 businesses, so at the entry price each business on a full page costs $0.000075 ($0.0015 ÷ 20). The API reads a search up to 6 pages deep, so reading one to the end costs up to $0.009 for up to 120 businesses.

What counts as a successful result: a results page delivered to you; a page with fewer than 20 businesses is still one result. Blocked and timed-out requests are not billed, and every response says whether it was billed. Prices are in US dollars; pay in USDT, BTC, ETH or 10 other coins. Balance for APIs: the same crypto balance as proxies, which never expires; there is no subscription or monthly fee. The APIs are paid from the shared balance, topped up from $2.95; there is no separate test volume.

Business names, phone numbers, ratings and opening hours as JSON

A Google Maps listing shows the public fields below; Google's official Places API returns the same ones as JSON under its own field names, and a Maps scraper reads them from the search results. ProxyField's API returns all of them as JSON, under the keys in the third column, plus each place's position, Google's place ID, price level, all its categories, coordinates, the open or closed line, service options, a thumbnail and the description. Export to CSV or a dashboard: not in the first version of the API

Read moreShow less
Field on the Maps listingExampleProxyField API fieldPlaces API (New) fieldUse in a lead list
Business nameBright Smile DentaltitledisplayName.textthe company to contact
CategoryDentistcategory, categoriesprimaryType, typesfilter to the trades you sell to
Address1200 Main St, Austin, TX 78701addressformattedAddressterritory, deduplication
Phone number(512) 555-0100phonenationalPhoneNumber, internationalPhoneNumbercall list, when the business publishes one
Websitebrightsmile.examplewebsite, domainwebsiteUrienrichment: emails and contacts come from here
Rating4.7ratingratingqualify: established or struggling
Review count312reviews_countuserRatingCountqualify: size and activity
Opening hoursMon–Fri 8:00–17:00hours (per weekday), open_stateregularOpeningHours.weekdayDescriptionswhen to call; open or closed

A Places API Text Search request for those four fields: you choose the fields in the X-Goog-FieldMask header, and you need a Google API key with billing on.

Shell
curl -X POST "https://places.googleapis.com/v1/places:searchText" \
  -H "Content-Type: application/json" \
  -H "X-Goog-Api-Key: YOUR_API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,places.nationalPhoneNumber,places.rating,places.regularOpeningHours" \
  -d '{"textQuery": "dentists in Austin, TX"}'

The answer has this shape (example values):

JSON
{"places": [{
  "displayName": {"text": "Bright Smile Dental", "languageCode": "en"},
  "nationalPhoneNumber": "(512) 555-0100",
  "rating": 4.7,
  "regularOpeningHours": {"weekdayDescriptions": ["Monday: 8:00 AM – 5:00 PM", "Saturday: Closed"]}
}]}

The Places API suits place data inside your own app, under Google's terms on storing it; a Maps scraper suits lead lists across many categories and cities (the comparison below). Google Maps does not show email addresses on listings, so no Maps scraper reads them from Maps; tools that offer emails visit each business's website. Businesses that have not published a phone number or hours have none to return, with any tool. ProxyField's API returns each place's rating, number of reviews and opening hours per weekday; review texts and emails are not part of it.

Sample request and response

The API takes a POST to https://api.proxyfield.io/v1/google/maps with your API key in an Authorization: Bearer <api_key> header and a JSON body. Parameter reference: API documentation.

Shell
# The request the Google Maps scraper API takes (access through Contact sales)
curl https://api.proxyfield.io/v1/google/maps \
  -H "Authorization: Bearer <api_key>" \
  -H "Content-Type: application/json" \
  -d '{"q": "coffee roasters", "ll": "@30.2672,-97.7431,14z", "gl": "us", "hl": "en", "page": 1}'

Example response (shortened to one place of the 20 on the page):

JSON
{
  "metadata": {"id": "req_5d2e7a9c0b4f8136", "api": "google_maps", "status": "success", "billed": true},
  "places": [
    {
      "position": 1,
      "title": "Example Roasting Co.",
      "place_id": "ChIJexample0101AustinTX",
      "address": "507 Example Ave, Austin, TX 78702",
      "phone": "+1 512-555-0187",
      "website": "https://www.example-roasting.com/",
      "domain": "www.example-roasting.com",
      "rating": 4.8,
      "reviews_count": 1126,
      "category": "Coffee roasters",
      "gps_coordinates": {"latitude": 30.2611, "longitude": -97.7262},
      "open_state": "Open · Closes 5 PM",
      "hours": {"monday": "7 AM–5 PM", "saturday": "8 AM–4 PM", "sunday": "Closed"}
    }
  ],
  "pagination": {"current_page": 1, "next_page": 2, "places_on_page": 20}
}
How it works

How to scrape Google Maps

Send a search term and a location, store the businesses that come back, and repeat over every category and city you need. With the API, the work is 4 steps:

  1. Build the search grid

    Combine your categories ("plumbers", "vegan restaurants") with your locations (cities, districts or postcodes). Each pair is one search.

  2. Send each search | You send | Example | Parameter | |---|---|---| | Search term | dentists | q | | Location | Austin, TX, or a map centre and zoom | location (a region or city by Google's canonical name), or ll, such as @30.2672,-97.7431,14z | | Country and language | us, en | gl, hl | | Results page | 1 to 6, up to 20 businesses each | page | The countries the API accepts: the proxy pool's 195+ countries.

  3. Store and deduplicate

    The same business shows up for neighbouring areas and similar categories; keep one row per business, matched on its name and address.

  4. Refresh what changes

    Ratings, review counts and hours change; re-run the grid monthly for lead lists, daily for local rank checks.

The API returns up to 6 pages of up to 20 businesses for one search, so up to 120, and a city with more businesses in a category than that needs smaller searches: districts or postcodes instead of the whole city, and narrower categories ("pediatric dentist" as well as "dentist"). A city with 1,000 dentists takes at least 9 searches, and more once you allow for overlap.

Free Google Maps scraper Chrome extensions: where they break

Free Chrome extensions are good enough for one search that you export and check by hand. They break on bigger lead lists for four reasons:

Where it breaksWhat happensWith the API
One search at a timeone search covers one category in one area, so a list of 1,000 businesses means many searches you run, scroll and merge yourselfyou send the grid; every results page of up to 20 businesses is one result
What is loadedan extension reads the list your browser has loaded; anything you did not scroll to is missingevery page of the result list you ask for, up to 6 per search
Export capsfree versions of many extensions cap rows or fields per export and sell the restno cap; priced per 1,000 successful results
Maps changesa change to the Maps page breaks the extension's selectors until its maker updates itnot your job

To test an extension on your own list, run the same search twice and count the rows in each export: different counts, or different rows each time, mean the extension exported only what was loaded.

Rule of thumb from these limits: one city and one category, an extension does the job; past 10 searches, or with a list you refresh every month, the manual scrolling and merging cost more time than the searches cost money: 1,000 results pages through the API, up to 20,000 businesses, are $1.50.

Open-source scrapers on GitHub remove the export caps, but you run the browser, the servers and the IPs, and fix the code when Maps changes.

A no-code tool or an API: which fits your lead list

Your jobFitsWhy
A few hundred businesses, oncea no-code tool or extensionone or a few searches; checking by hand is quick
The same categories in many citiesthe APIa grid of hundreds or thousands of searches; $1.50 per 1,000 results pages
A list you refresh monthly or dailythe APIthe same grid, re-sent on a schedule
Lead data inside your CRM or appthe APIyour code stores and merges the rows
Place details inside your own appGoogle's Places APIofficial, under Google's terms

Collect business leads from Google Maps

Google Maps is a directory of local businesses with names, addresses, phone numbers, websites, categories and ratings, which is why sales teams use it for lead lists. A typical B2B list:

  1. Pick the categories you sell to and the cities you cover.

  2. Run the search grid and keep one row per business.

  3. Qualify with the public data rating, review count, a website or no website, the category.

  4. Enrich outside Maps

    Contact details beyond what the listing shows come from the business's own website, which you can fetch with the Web Scraping API from $0.20 per 1,000 successful results.

Use public business data only, and follow the privacy and marketing rules where you sell: in the EU and the UK, business contact data about a named person is personal data under the GDPR. For company data from websites and directories beyond Maps, see the lead scraper page; for review sites, see the Yelp scraper page.

Google's Places API or a Google Maps scraper?

Use Google's official Places API when you need a few place details inside your own app under Google's terms; use a scraper when you need search results across many categories and cities as Maps shows them to users.

ItemGoogle Maps Platform (Places API)ProxyField Google Maps scraper API
What you getplace data for your app as JSON, including name, phone number, rating and opening hours from Place DetailsGoogle Maps search results for your query and location
Billingper request by product (SKU), with a monthly free usage allowance$1.50 per 1,000 successful results, from $1.00
Storing the datarestricted by Google's terms; check them before you build a listyour use is governed by Google's terms and the law; see the legal note below
Needs a Google API keyyes, and a billing accountno

Google publishes its current prices on the Google Maps Platform pricing page and its field list in the Place Details documentation. Check them before you compare, because Google changes its free allowances.

Scrape Google Maps yourself with Python and ProxyField proxies

If you keep your own scraper, Google Maps needs a real browser, because the results load with JavaScript, and IPs in the city you search from. ProxyField residential proxies give you 412M+ residential IPs in 195+ countries and 21,000+ cities, with country, region and city targeting and all 50 US states (US proxies). The pool is clean for Google, checked and segmented.

Python
# pip install playwright && playwright install chromium
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={"server": "http://gate.proxyfield.io:7000",
                                       "username": "<login>-country-us-city-new_york", "password": "<password>"})
    page = browser.new_page()
    page.goto("https://www.google.com/maps/search/coffee+shops+in+brooklyn", wait_until="domcontentloaded")
    page.wait_for_timeout(5000)  # let the result list load, then read it with your own selectors
    print(page.title())
    browser.close()

<login>-country-us-city-new_york asks for an IP in New York; region and session settings: -region-<region>, -session-<id> and -ttl-<seconds> (30 to 129,600 seconds, 20 minutes by default) after the location, as in <login>-country-us-region-new_york-city-new_york-session-he9f2qga-ttl-600. Keep one sticky session (30 s to 36 h) per search while you scroll the result list, and pace your requests. Full setup: Playwright with proxies. Which proxies Google targets need: Google proxies; for local rank checks: SEO proxies.

Residential proxies cost $2.95/GB for 1 GB and fall to $1.95/GB from 1,000 GB, with no subscription. Start with the Easy Trial: 1 GB for $2.95, with no minimum purchase; the traffic never expires and runs on the same pool as a 1 TB order. All purchases are final. API or proxies, with the costs side by side: Scraper API vs Proxies.

Legal

Google's terms and our Acceptable Use Policy

Google's terms of service restrict automated access to Maps and the storage of Maps content; read them, and the privacy rules where you sell, with your counsel before you build a database from Maps. Google's terms and the case law are in Is It Legal to Scrape Google?; the wider rules in the US and the EU are in Is Web Scraping Legal?.

Our Acceptable Use Policy allows collecting public web data, price and SEO monitoring and market research, and forbids fake accounts, spam and access to data behind logins you are not entitled to. Some site categories are restricted to protect the network. ProxyField's rule for every site: public pages only, and follow the site's terms. This is not legal advice.

Also from ProxyField

More scraper APIs

APIWhat it returnsPer 1,000 successful results
Google Maps scraper API (this page)Google Maps search results$1.50, from $1.00
Google SERP APIthe Google results page as JSON, with the AI Overview, the People Also Ask block and the local pack parsed$1.20, from $0.80
Web Scraping APIany URL, plain HTTP or with JS renderingHTTP $0.50, from $0.20; JS $2.00, from $1.00

The local pack on a normal Google results page, the three map listings above the organic results, comes parsed in the SERP API. Every API: all scraper APIs.

Start with the Google Maps scraper API

Tell sales your categories, cities and how often you refresh: the price is $1.50 per 1,000 successful results, or $1.00 from 10,000 results in one purchase.

FAQ

Google Maps Scraper API FAQ

24/7 support by live chat, including help with setup and integration.

What's the best Google Maps scraper for collecting business leads?

ProxyField's Google Maps scraper API runs your category and city grid for $1.50 per 1,000 successful results, from $1.00 at volume, one result per results page of up to 20 businesses: the first page of 20 categories in 50 cities is 1,000 results, or $1.50. The rule: a few hundred businesses once, an extension or no-code tool; the same categories in many cities, or a monthly refresh, the API, where a search read to its 6th page costs $0.009. Then enrich the list from each business's website.

Are free Google Maps scraper Chrome extensions good enough, or do they break on bigger lead lists?

Good enough for one search that you export and check by hand; a list of 1,000 businesses takes many searches. Past one search they break: you run, scroll and merge every search yourself, free versions often cap exports, and a change to Maps stops them until an update. ProxyField's API runs the whole grid at $1.50 per 1,000 results pages of up to 20 businesses.

Which Google Maps scraper APIs return business names, phone numbers, ratings and opening hours as JSON?

The business name, phone number, rating and opening hours are public on every Maps listing that has them, and Google's official Places API returns them as JSON (displayName, nationalPhoneNumber, rating, regularOpeningHours), with an API key and under Google's terms. ProxyField's Google Maps scraper API returns the Maps search results for your query and location as JSON, with title, phone, rating, reviews_count and hours per business, at $1.50 per 1,000 successful results and with no Google API key. Businesses that publish no phone number or hours have none to return, with any API.

Can you pull data from Google Maps?

Yes, three ways: Google's Places API for place data inside your app, a scraper API that returns the search results as Maps shows them, or your own browser scraper. ProxyField's API costs $1.50 per 1,000 successful results.

How can I scrape data from Google Maps?

Build a grid of search terms and locations, send each pair to a scraper API, and store one row per business. With your own code, you need a real browser, because Maps loads results with JavaScript, and IPs in the area you search.

What data can you scrape from Google Maps?

The public listing data Maps shows: business name, category, address, rating, review count, and often phone, website and opening hours. ProxyField's Google Maps scraper API returns the Maps search results for your query and location, at $1.50 per 1,000 successful results.

Is there a tool that can scrape addresses from Google Maps?

Yes: Google Maps scraper APIs, browser extensions and open-source tools all read the address from each listing. ProxyField's API returns Maps search results for $1.50 per 1,000 successful results.

What is the best free Google Maps scraper?

ProxyField's API is paid, at $1.50 per 1,000 successful results; the free options are browser extensions and open-source projects. Extensions suit one search you export by hand; open-source tools suit bigger jobs if you run the browser, the IPs and the fixes when Maps changes.

Is the Google Maps API still free?

Not entirely: Google Maps Platform needs a billing account and bills requests by product, with a monthly free usage allowance per product. Check Google's pricing page for the current allowances.

Show 11 more questionsShow fewer questions

How much does Google Maps API cost?

Google prices each Maps Platform product per 1,000 requests and lists the rates on its pricing page. ProxyField's Google Maps scraper API, a different product, costs $1.50 per 1,000 successful results, from $1.00 at volume.

Is there a free alternative to Google Maps API?

For maps and geocoding, open map data such as OpenStreetMap is free to use under its license. For Google's own business listings there is no free route at scale; scrapers cost money in tools, IPs or per result.

Is there an official Google Maps API?

Yes: Google Maps Platform, including the Places API for business data. It returns place data under Google's terms, which limit how you store it, and it needs an API key and a billing account.

Do I need a Google Maps API key to use a scraper?

No. A scraper reads the public Maps results, so it needs no key from Google. ProxyField's Google Maps scraper API costs $1.50 per 1,000 successful results.

Can you download all Google Maps data?

No: there is no export of all of it, and each search returns the businesses for one term in one area (up to 120 through ProxyField's API, as up to 6 pages of 20). You build coverage search by search, splitting cities into smaller areas and categories into narrower ones.

Why scrape Google Maps data?

For lead lists of local businesses, market research such as how many competitors sit in each district, local SEO checks, and keeping store or dealer directories up to date.

How do I scrape Google reviews?

Reviews sit on each business's Maps listing, so a reviews scraper opens every listing and reads its reviews. ProxyField's Maps API returns Maps search results with each business's rating and number of reviews, but not the review texts.

How do I scrape Google Maps with Python?

Use Playwright to load the Maps search in a real browser through a proxy in the right city, scroll the result list and read each listing with your selectors. Or send the searches to a scraper API from your Python code and skip the browser.

How do I avoid getting blocked when scraping Google Maps?

Pace your requests, use a real browser, keep one sticky IP per search while you scroll, and use IPs in the area you search. With the API you pay only for successful results.

Why is my Google Maps scraper returning empty results?

Usually because the results had not loaded when the scraper read the page, the selectors changed, or Google served a cookie notice or a verification page to that IP. Wait for the result list, check your selectors, and test with an IP in the target country.

Are open-source Google Maps scrapers on GitHub any good?

Some work well for small jobs, but they break when Google changes Maps, and you run the browser, the servers and the IPs. If you use one, ProxyField residential proxies cost from $1.95/GB, with city targeting.

Google Maps scraper API: $1.50 per 1,000 results, from $1.00

Billed on successful results only. Contact sales for the API and the volume you need. 24/7 live chat helps with setup and integration.