Google Maps Search API
with hours, ratings, and place details
Search Google Maps for any query and location. One request returns a full page of places with ratings, hours, coordinates, and contact details as clean JSON. No proxy or infrastructure to manage.
of requests succeed
median response
95% finish faster
per 1k searches at volume
Map listings change daily. Your code shouldn't care.
- A parser per page layout
- Hours in a dozen formats
- Place attributes buried in nested JSON
- Headless browsers to keep warm
- Fix the parsers again next week
One GET Request. That's the whole integration.
Start with just a query. Add more parameters when your use case needs them.
curl -G 'https://api.hasdata.com/scrape/google-maps/search' \
--data-urlencode 'q=Pizza' \
--data-urlencode 'll=@40.7455096,-74.0083012,14z' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'q * Search Querystart Result Offsetll GPS Coordinatesdomain Domaingl Countryhl Languagecurl -G 'https://api.hasdata.com/scrape/google-maps/place' \
--data-urlencode 'placeId=ChIJFU2bda4SM4cRKSCRyb6pOB8' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'placeId * Google Place IDdomain Domainhl LanguageEvery place, one predictable schema
The same keys come back on every request. Map the fields once and forget about it.
[
{
"position": 1,
"title": "Trippy Buck Coffee",
"address": "720 Brazos St, Austin, TX 78701",
"website": "https://linktr.ee/TrippyBuckCoffee",
"rating": 4.9,
"reviews": 39,
"type": "Coffee shop",
"price": "$1-10",
"gpsCoordinates": {
"latitude": 30.269416999999997,
"longitude": -97.7410702
},
"placeId": "ChIJbz4l-kK1RIYRElA6U66oEQg"
}
]position numberRank in the results
title stringBusiness name
address stringFull street address
website stringBusiness website
rating / reviews numberAverage score and review count
price stringPrice band, e.g. "$1-10"
gpsCoordinates objectlatitude and longitude
placeId stringGoogle place ID for the place endpoint
{
"type": "Coffee shop",
"types": [
"Coffee shop",
"Breakfast restaurant",
"Brunch restaurant",
"Cafe",
"Espresso bar",
"Lunch restaurant",
"Restaurant",
"Wine bar"
]
}type stringPrimary category
types string[]Every Google category the place is listed under
{
"timezone": "America/Chicago",
"days": [
{
"day": "Monday",
"time": "8 AM-5 PM"
},
{
"day": "Tuesday",
"time": "8 AM-5 PM"
},
{
"day": "Wednesday",
"time": "8 AM-5 PM"
}
]
}timezone stringIANA timezone of the place
days object[]Per-day opening hours
days[].day / time stringWeekday and its open hours
{
"highlights": [
"Great coffee",
"Great tea selection"
],
"serviceOptions": [
"Onsite services",
"Dine-in"
],
"popularFor": [
"Solo dining"
],
"accessibility": [
"Wheelchair accessible entrance",
"Wheelchair accessible parking lot"
]
}highlights string[]What the place is known for
serviceOptions string[]Dine-in, takeout, delivery, …
popularFor string[]Occasions it is popular for
accessibility string[]Accessibility features
{
"menu": {
"overview": {
"menuPhotos": [
{
"url": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWnUHEQ7TcISjeYZn7ztgRBmia9vGjltHDp5PHtnKJPYJT-TT_mR12gthRcuStMGlfGSVYgqscyNE5D2kGH1B3BrApXjhJVR8qHHUu13viqAqelEj8pRVC72iEA1_AqxPynvwXRHRHHbF3Ym=…",
"postedAt": "2025-12-15"
},
{
"url": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWnwqaRquUyI4L6sW8lP5_wYVXVPlrRtsjGub45G0k6d1V5r31D8YRaXTZaVjzB0zWMuYwkG75DiY1lAphPnZfImA3ejH13CVekET7-TGG9zaL9CKcyPoagzJpmJp1aXEEfuNmxFs0oQiBeT=…",
"postedAt": "2025-12-15"
}
]
}
}
}menu.overview.menuPhotos object[]Photos of the menu
menuPhotos[].url stringImage URL
menuPhotos[].postedAt stringWhen the photo was posted
{
"plusCode": "7795+QH Austin, Texas",
"images": [
{
"title": "All",
"thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmpC7eumNqHuCWymRdRgiVveTQ4kym0IYeyLKHjkatG4I1eVjt__8Asu2Q1VdxDM6u9Pd5MTqHuiqZxRdR-S4K4gPW0egtH2FSCIKU4kRVTk39pl1eEiWpt6809tttip6ch1oI4exZTIy6E=…"
},
{
"title": "Menu",
"thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWnUHEQ7TcISjeYZn7ztgRBmia9vGjltHDp5PHtnKJPYJT-TT_mR12gthRcuStMGlfGSVYgqscyNE5D2kGH1B3BrApXjhJVR8qHHUu13viqAqelEj8pRVC72iEA1_AqxPynvwXRHRHHbF3Ym=…"
}
],
"userReviews": {
"summary": [
{
"snippet": "\"From the moment you walk in, the owner and staff make you feel like family.\""
},
{
"snippet": "\"I ordered an oat latte iced with simple syrup.\""
}
]
}
}plusCode stringOpen Location Code for the place
images object[]Place photos by category
userReviews.summary object[]Review snippets
userReviews.reviews object[]Full reviews with rating, author, and date
An all-in-one scraping service
Every feature you need to collect data from thousands to millions of requests.
Discover similar
scrapers and APIs
to expand your projects.
Google Maps Photos API
Place Photos • $0.37 / 1k Request
Google Maps Reviews Scraper
Sentiment Analysis • $0.07 / 1k Rows
Fits right into your stack.
Works with the tools you already use.
View Documentation ->Teams that deleted their scraper
Now it's the part of the pipeline they don't think about
The Google Maps API from HasData has been incredibly useful for collecting structured local business data. We were able to extract names, categories, contact details, and even customer reviews.
HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.
We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.
Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.
I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.
Plans that get cheaper at scale
Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.
Free
Startup
Business
RecommendedEnterprise
Monthly search volume
Start with 200 free searches. No credit card required.
Questions, answered
Per successful request. One search returns a full page of places, around 20 results. A failed request costs nothing.
Yes, a one-time trial of 200 searches with every field included. No credit card required. When you're done testing, pick a plan that fits your volume.
Paid plans start at $49 per month for 40,000 searches and scale to 20 million a month. The unit price drops with volume, from $1.23 down to $0.37 per 1,000 searches.
Name, address, website, rating and review count, categories, price band, working hours, GPS coordinates, attributes like highlights and accessibility, and menu photos.
Yes. Pass a placeId to the place endpoint and get the full record, including image galleries and user review snippets.
Set q to your query and ll to the map center as @latitude,longitude,zoom. Each request returns one page of about 20 places. Request the next page with the pagination token to go deeper.
Nothing on your side. We track the changes and keep the response schema stable. Fields keep their names and types, and existing keys don't disappear.
No. Requests run on HasData's infrastructure, so there's nothing to provision or maintain. You're responsible for using the results in line with each target site's terms and applicable law.
Yes, you can cancel your subscription at any time from your dashboard in a few seconds. Once cancelled, there are no recurring payments.
Your first Google Maps search
is minutes away
200 searches free · no credit card