Scraper API

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.

SUCCESS
99.9%

of requests succeed

P50
1.2s

median response

P95
1.6s

95% finish faster

PRICE
$0.37

per 1k searches at volume

Stop maintaining scrapers

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 integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: markup changed, nulls in output
fix: hours parser breaks on holidays
fix: attributes block moved again
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: dedupe on placeId
fix: gps coordinates swapped lat/lng
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
hotfix: markup changed, nulls in output
fix: hours parser breaks on holidays
fix: attributes block moved again
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: dedupe on placeId
fix: gps coordinates swapped lat/lng
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
hotfix: markup changed, nulls in output
fix: hours parser breaks on holidays
fix: attributes block moved again
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: dedupe on placeId
fix: gps coordinates swapped lat/lng
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
hotfix: markup changed, nulls in output
fix: hours parser breaks on holidays
fix: attributes block moved again
chore: bump browser pool memory
fix: selector drift after redesign
hotfix: dedupe on placeId
fix: gps coordinates swapped lat/lng
chore: re-run failed batch overnight
fix: pagination broke after redesign
fix: retry storm on timeouts
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
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 Query
Search query term or phrase.
start Result Offset
Specifies the result offset for pagination purposes. The offset dictates the number of rows to skip from the beginning of the results. This is useful for accessing subsequent pages of search results. For example, an offset of 0 (the default value) returns the first page of results, 20 returns the second page, 40 returns the third page, and so on. This parameter is especially relevant when used in conjunction with the 'll' parameter for location-based searches.
ll GPS Coordinates
GPS coordinates of the location where the search query is to be performed. This parameter is required if the 'start' parameter is present. The format for the `ll` parameter is `@` followed by latitude, longitude, and zoom level, separated by commas. The latitude and longitude should be in decimal degrees, and the zoom level is an integer. Example: `@40.7455096,-74.0083012,14z`.
domain Domain
Google domain to use. Default is google.com.
gl Country
The two-letter country code for the country you want to limit the search to.
hl Language
The two-letter language code for the language you want to use for the search.
TRY ALL 6 PARAMETERS FREE
Response

Every place, one predictable schema

The same keys come back on every request. Map the fields once and forget about it.

localResults.json
[
  {
    "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"
  }
]
Fields in localResults
position number

Rank in the results

title string

Business name

address string

Full street address

website string

Business website

rating / reviews number

Average score and review count

price string

Price band, e.g. "$1-10"

gpsCoordinates object

latitude and longitude

placeId string

Google place ID for the place endpoint

What We Offer

An all-in-one scraping service

Every feature you need to collect data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Capterra Capterra ★★★★★

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.

MC
Meghana C.
Trustpilot Trustpilot ★★★★★

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.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★★

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.

Arnold Foster
Arnold Foster
Trustpilot Trustpilot ★★★★★

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.

Hussein Ali
Hussein Ali
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
200 searches to start
1 concurrent request
Team seats
Community support
Start free
Startup
$41 /mo
$1.02 / 1k searches
40K searches / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$83 /mo
$0.41 / 1k searches
200K searches / month
30 concurrent requests
Team seats
Priority email support
Get started
Enterprise
$208 /mo
$0.35 / 1k searches
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly search volume
Free 200K 1M 4M 12M 20M
Best fit
Business
searches / mo
200K
Concurrency
30
$ / 1k searches
$0.41
$83 /mo
Get Started

Start with 200 free searches. No credit card required.

FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first Google Maps search
is minutes away

200 searches free · no credit card