Google Maps scraper API: local businesses for any search
Search 'dentist in Austin' or 'coffee in Tallinn' and get 20 businesses back as rows: name, rating, review count, category, address, phone, website, opening hours and GPS coordinates. One search costs €0.0015.
- per 1,000 calls
- €1.50
- per call
- €0.0015
- 0.15 cents
- rows per call
- up to 20
- per 1,000 rows
- ≈ €0.075
The Google Maps list, as a spreadsheet
The Google Maps scraper API returns 20 businesses per search, in the order Google Maps lists them, with name, star rating, review count, category, address, phone, website, opening hours for each day and GPS coordinates. One search costs €0.0015, so 1,000 searches cost €1.50 and give you up to 20,000 business rows. Save your searches once, and every business list is stored in your Scrapewise account for the table, Excel, your AI assistant or the API.
Anyone who has built a local lead list by hand knows the routine. Search, click a pin, copy the phone number, copy the website, go back, click the next pin. Twenty businesses take half an hour, and a list for 50 cities is a week of copy and paste. The official Maps developer API can do it too, but you need a Google Cloud project, a billing account and code before you see a single row.
Here you type the same search you'd type into Google Maps and get the list as a table. Each row also carries the place ID. Send it to the Google Maps place details API for one business in depth, with popular times, or to the Google Maps reviews API for reviews and review topics. If Excel is where your list ends up, our guide on how to export Google Maps to Excel or CSV walks through the steps. Prices for every source are on the all data APIs and prices page.
Who builds lists from Google Maps
Local marketing agencies
You sell websites, SEO or ads to plumbers, dentists and salons. Search '[trade] in [city]' and you have names, phone numbers and websites ready for outreach, with rating and review count to decide who to call first.
Franchise and store owners
Search your own category around your address and see every competitor Google shows, with their rating, review count and hours. Do it for each branch.
Lead-gen sellers
You build and sell B2B lists. A list of 2,000 restaurants in 10 cities is 100 searches, and 100 searches cost €0.15.
People planning a new location
Before you sign a lease, count the gyms, cafes or clinics near the address and check how well rated they are.
How it works
Save the searches
Enter a keyword with a place, like 'plumber in Leeds', or paste a Google Maps search link. Add one search per city or neighborhood. Each search is one call at €0.0015.
Run once or on a schedule
Run the batch now, or monthly to catch new businesses. Every run is saved with its date for 90 days.
Build your list
Filter by rating or category and download Excel for your CRM, pull rows by API, or ask your AI assistant: 'which plumbers in my list have under 4 stars and no website?'
Set it up once. The data keeps coming.
Save your search once and it runs by itself. Every run lands in your own Scrapewise database, and you pick how to read it.
Set it up once
Add your ASINs, keywords, places or apps to a scraper in the web app. New accounts get 5 free requests.
Runs on your schedule
Pick daily, weekly on the days you choose, every few days, or the first or last day of the month. Scheduled runs start at night, European time. Need it more often? Start runs from your own code.
Saved in your database
Each run adds dated rows, so this week sits next to last week. Rows are kept for 90 days.
Use it your way
Open the table in the web app and download the latest run as an Excel file. Ask your own AI assistant about it. Or pull the rows into your code with an API key.
Ask your AI assistant about your own data
Connect Claude Desktop, Claude Code or another MCP app with a read-only key. The assistant reads the rows you've already collected, at no extra cost on Scrapewise. With a full-access key it can start a run for you too.
- Which of my ASINs lost the Buy Box this week?
- Which competitor cut prices the most since Monday?
- Show the keywords where I dropped out of the top 10.
What you send and what you get back
Send a keyword plus a place, or a Google Maps search link. Each call returns up to 20 businesses, one row per place. Besides the contact basics, each row lists the attributes Google shows for that place, like dine-in, delivery, payments, parking and accessibility, one column per value. That's why the table is very wide.
- Google Maps search URL or keyword + placerequired
coffee in Tallinn
Up to 20 rows per call, 393 columns each
- sw status
- sw source url
- sw position
- sw title
- sw url
- sw external id
- sw id kind
- sw image
- sw rating
- sw rating count
- sw location
- sw fetched at
- +381 more, see all columns
Sample: Google Maps search for 'coffee in Tallinn'
Real business rows from a live search in September 2026. Phone numbers and addresses are the businesses' public listings. All columns the API returns are shown, so scroll sideways to see the attribute columns.
sw status_sw_statusResult of this row: OK, no results, or an error | sw source url_sw_source_urlThe input you gave: a link, keyword or ID | sw position_sw_positionRank of the item as the site shows it | sw title_sw_titleMain name of the item | sw url_sw_urlDirect link to the item | sw external id_sw_external_idThe site's own ID for this item | sw id kind_sw_id_kindWhat kind of ID the external ID is | sw image_sw_imageMain image link | sw rating_sw_ratingStar rating from 0 to 5 | sw rating count_sw_rating_countHow many ratings or reviews | sw location_sw_locationPlace the result is priced or ranked for | sw fetched at_sw_fetched_atWhen we collected this row (UTC) | positionpositionRank on the page | titletitleTitle | place_idplace_idGoogle place ID |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 1 | Kodu Coffee Roaster | https://www.kodu.coffee/ | ChIJa3N4WbqTkkYRXDieubieubM | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWkgFtDlTS-9BepnyV6L3_397W6MfrICEjbkW2_1F5LLX7LGnuxc7aNxDXPVeDtYrGA5gMtzfDaGTXc3YKbyIeRrvqTn4DhzkY1TyO5xcWPaSAQjjwHXr6FPHyB92IoTWI7NT2wWoOn0qVA=w80-h106-k-no | 4.8 | 139 | Sadama tn 4, 10111 Tallinn, Estonia | 2026-09-16T10:26:41Z | 1 | Kodu Coffee Roaster | ChIJa3N4WbqTkkYRXDieubieubM |
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 2 | Paper Mill Coffee | https://papermill.coffee/ | ChIJe8-Kv9KVkkYRTzFbwfJwU5g | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmN_96o3XBRwHkosLRbeEs0DG-pEc-4m0MsTXswlqaQLHVdO5nCT9Yd8SV0xcDA8DWBJRyaQZlgy_CXs4jhAiQNermClRbxHyfUg77vEjhK9LW_H_Y_WWPxaTNVRhofOV_ErDBpZg=w80-h106-k-no | 4.8 | 469 | Masina tn 20, 10144 Tallinn, Estonia | 2026-09-16T10:27:18Z | 2 | Paper Mill Coffee | ChIJe8-Kv9KVkkYRTzFbwfJwU5g |
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 3 | The Brick Coffee Roastery | http://thebrickcoffee.ee/ | ChIJ88Bs632TkkYRr6xgYOeC0x4 | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmXO-z3n8X3Ig_BucjkrzDfMMHD1_awFosJPilIXfZKSriashmlMPmFcgmtXcnS2jed0FfmHIne_xwvNuFKnjiDZVUFZe9s6D2i62NBY1_RbRumgMUCWa4ZOpHdaEpDnpGkYzS1=w80-h106-k-no | 4.8 | 394 | Telliskivi tn 60-2-i4 hoone, 10121 Tallinn, Estonia | 2026-09-16T10:27:55Z | 3 | The Brick Coffee Roastery | ChIJ88Bs632TkkYRr6xgYOeC0x4 |
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 4 | Värav Coffee and toast | ChIJ4-IA81qTkkYRa9bzDnN6RRA | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWm1DUmg5hhEwFHh1tsH6Zx-CFkOnZydAMxSsLR1YUl8JgjFlv5zBJSXQiFYJCG4INEIvgFnZmMT1AoC-oZajbBt-0MPxJ6BlAXRCNpMIi5vIzNzSOwt-LP0h-3twfzCeQ1jZmo=w80-h106-k-no | 4.6 | 775 | Väike Rannavärav 4, 10111 Tallinn, Estonia | 2026-09-16T10:28:32Z | 4 | Värav Coffee and toast | ChIJ4-IA81qTkkYRa9bzDnN6RRA | |
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 5 | Surfcafe Tallinn | https://www.instagram.com/surfcafe_tallinn | ChIJx8uo4nyTkkYRIVSj7k0LEOQ | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWlwyN4d-Mgso_rTKnQKwK3ybu-IO98GBZBwDBYIcISYjND12uA7m879Jq1AlEZjliKD76wHBr6FGs8BXzWOviALHumgKFCev93JeuucCrK-G1dmbEk8YLipBfHfmRxreHKEMZ_j=w122-h92-k-no | 4.8 | 287 | Kopli tn 1, 10149, 10412 Tallinn, Estonia | 2026-09-16T10:29:09Z | 5 | Surfcafe Tallinn | ChIJx8uo4nyTkkYRIVSj7k0LEOQ |
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 6 | Ristikheina Cafe | http://www.ristikheinakohvik.ee/ | ChIJUw1yw3-UkkYRWrv5Qc5etA8 | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWl6v9vjpS4-33T_6IqbJ0Cdof4GIwOALRHLoI7NEBrpmdqMLW2EHRerILkughgnsh6-GNAHezvUmBHbZlwbwkD7zR70Ct6PEsHW1_bRL5dPqUTxX9PyClEuebzgnCoN9M0yPEyV-w=w122-h92-k-no | 4.7 | 1222 | Ristiku tn 57, 10320 Tallinn, Estonia | 2026-09-16T10:29:46Z | 6 | Ristikheina Cafe | ChIJUw1yw3-UkkYRWrv5Qc5etA8 |
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 7 | Cafe Maiasmokk | http://www.kohvikmaiasmokk.ee/ | ChIJQ--MSGKTkkYRFPIs_SFl3Hg | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWm1tf4hdcu5KsGiHNxtAlwP7hMEsmb_3mGvay3pvsDrBCeJBN9AJIQbBW1JtPi6UjfppyMK3Vlhar4Psqn-af2PLbq0MqZOURTBwJ--1cFBG21XuTEjNpf-VnQci9ntRgi5kEwLNg=w122-h92-k-no | 4.5 | 3911 | Pikk tn 16, 10123 Tallinn, Estonia | 2026-09-16T10:30:23Z | 7 | Cafe Maiasmokk | ChIJQ--MSGKTkkYRFPIs_SFl3Hg |
| OK | https://www.google.com/maps/search/coffee+in+Tallinn | 8 | Coffee Grail House | ChIJ2YjLBvWTkkYR8O1BE5e1TGI | place_id | https://lh3.googleusercontent.com/gps-cs-s/AHRPTWl7hdu13ij3wFhVAi4rxVZIS5Rlg0loz9Kb2G2aK8LBtOLzMxcpUU8yQoXdLTsSik2Uff1KQ0n3avGO82Trwy2eScIrXqNSUIiuewfSsp30-Ul17jKFHiSLtlGJZWW4gZ-PzWDg6oVNcRGv=w122-h92-k-no | 4.8 | 76 | Müürivahe 52, 10140 Tallinn, Estonia | 2026-09-16T10:31:00Z | 8 | Coffee Grail House | ChIJ2YjLBvWTkkYR8O1BE5e1TGI |
What each column means
A Maps search returns 393 columns because Google lists dozens of attributes per business. You'll use a few groups most. The columns starting with 'sw' have the same names on every Scrapewise data API. Columns with a number in brackets, like types[0] and types[1], are lists split into one column per value.
Name, rank and IDs
Position is the order Google Maps listed the place. Place ID and data ID identify the business, and you send them to the place details and reviews APIs. Provider ID is Google's knowledge graph ID, which the food delivery API uses.
- sw position
- position
- sw title
- title
- sw external id
- sw id kind
- place_id
- data_id
- data_cid
- provider_id
Contact details
Address, phone and website as the business lists them on Google Maps. The sw url column holds the website when there is one.
- address
- sw location
- phone
- website
- sw url
Rating and reviews
Star rating, total review count and one short quote from a review, as Maps shows under the listing. The quote has no reviewer name.
- sw rating
- rating
- sw rating count
- reviews
- user_review
Category
The main category plus every extra category the business picked, as text and as Google's category codes.
- type
- types[0]
- types[1]
- type_id
- type_ids[0]
- type_ids[1]
Location
Latitude and longitude as two separate number columns, ready for a map or a distance calculation.
- gps_coordinates_latitude
- gps_coordinates_longitude
Hours
Open state is the live text, like 'Open, closes 6 PM'. Then one column per weekday with that day's hours.
- open_state
- hours
- operating_hours_monday
- operating_hours_tuesday
- operating_hours_wednesday
- operating_hours_thursday
- operating_hours_friday
- operating_hours_saturday
- operating_hours_sunday
Service options and attributes
True or false columns for dine-in, takeout and delivery, a link to order online when there is one, and list columns for what Google shows under the listing: offerings, payments, parking, accessibility, pets and more. The price column often holds one of these attribute texts, like 'Dogs allowed', so don't read it as a price level. The number after extensions changes from place to place, because each business shows a different set of sections, so match on the section name at the end.
- service_options_dine_in
- service_options_takeout
- service_options_delivery
- service_options_no_contact_delivery
- service_options_curbside_pickup
- service_options_drive_through
- order_online
- extensions[0]_service_options[0]
- extensions[9]_payments[0]
- extensions[3]_accessibility[0]
- extensions[11]_parking[0]
- price
- extracted_price
Images and request details
The listing thumbnail, your search as Google read it, and when we collected the row.
- sw image
- thumbnail
- sw status
- sw source url
- sw fetched at
- ctx_search_parameters_q
- ctx_search_information_query_displayed
- ctx_search_information_local_results_state
What you can do with a Google Maps list
Build a local lead list
Search 10 trades across 50 cities. That's 500 searches, up to 10,000 businesses with phone and website, for €0.75.
Pitch businesses with weak reviews
Filter the list to places rated under 4.0 or with fewer than 20 reviews. Those owners are the ones who listen when you offer reputation or review services.
Find businesses with no website
Sort by the website column and take the empty rows. A salon with 150 reviews and no website is a warm lead for a web designer.
Map your competitors
The latitude and longitude columns drop straight into Google My Maps or any mapping tool, so you can see how crowded each street is.
Check where you show up
Run 'pizza near [neighborhood]' for 5 neighborhoods and find your business in the position column. If you're 3rd in one area and missing in the next, you know where to work.
Compare opening hours
Each weekday has its own hours column. See which competitors open early on Sunday or close late on Friday before you change your own hours.
Real setups and what they cost
Web design freelancer
Searches 5 trades in 20 nearby towns once, then filters for businesses with no website. 100 searches, up to 2,000 businesses, for €0.15.
- calls per month
- 100
- cost per month
- €0.15
Agency building lists for clients
Runs 10 trades in 100 cities every month to keep lists fresh. 1,000 searches, up to 20,000 rows, for €1.50 a month.
- calls per month
- 1,000
- cost per month
- €1.50
Coffee chain watching 12 branches
Searches 'coffee' around each of 12 branches every day to track new competitors and its own position. About 360 calls a month, €0.54.
- calls per month
- 360
- cost per month
- €0.54
Why pull Google Maps data with Scrapewise
No Google Cloud setup
No API key, no billing account with Google and no code needed to get your first list. Type a search in the portal and read the rows.
One price per search
20 places for €0.0015, with phone, website, hours and GPS in the same call. No extra charge per contact field.
Rows that lead somewhere
Every place comes with its IDs, so the same list feeds the place details, reviews and food delivery APIs without searching again.
What your Google Maps list costs
Enter how many searches you run: keywords times cities times how often. Each search returns up to 20 businesses for €0.0015. Compare all data APIs
- Rows (up to)
- 20,000
- You pay
- €1.50
Frequently asked questions
Up to 20, which is the list Google Maps shows for that search. For a bigger list, split it by city or neighborhood: 'dentist in Brooklyn' and 'dentist in Queens' return different places.
Ready to pull Google data into your stack?
Sign up and your first 5 searches are free. A 10,000-business list costs about €0.75 on pay-as-you-go pricing.