Google Maps Scraper - A tool to scrape map results with a simple API. Get place information like GPS coordinates, reviews, rating, type, operating hours, and more.
We provide the results in a structured JSON format, eliminating the need for parsing, coding, proxies, or any other web scraping headaches for developers.
Using a simple GET request, you can retrieve Google Maps search results:
https://serpapi.com/search.json?engine=google_maps&q=Coffee&ll=@40.7455096,-74.0083012,14z&api_key=YOUR_API_KEY
- Register for free at SerpApi to get your API Key
qparameter: defines the query you want to search.llparameter: defines the GPS coordinates of the location where you want the search to originate from. Its value must match the following format:@ + latitude + , + longitude + , + zoom/map_height
The zoom attribute ranges from 3z, map completely zoomed out - to 21z, map completely zoomed in. Alternatively, you can specify map_height in meters (e.g., 10410m).
Here are some code examples based on your favorite programming languages.
curl --get https://serpapi.com/search \
-d engine="google_maps" \
-d q="Coffee" \
-d ll="@40.7455096,-74.0083012,14z" \
-d api_key="secret_api_key"Preparation for accessing the SerpApi API in Python
Step 1:
Create a new main.py file. (You can name it whatever you want)
Step 2:
Install requests package with:
pip install requests
Step 3:
Add this code to your file:
import requests
SERPAPI_API_KEY = "YOUR_SERPAPI_API_KEY"
params = {
"api_key": SERPAPI_API_KEY,
"engine": "google_maps",
"q": "coffee",
"ll": "@40.7455096,-74.0083012,14z"
}
search = requests.get("https://serpapi.com/search", params=params)
response = search.json()
print(response)If you're only interested in the local_results, you can print them from the response directly. It's an array of places:
print(response["local_results"])Warning: Sometimes, this API returns
place_resultsinstead oflocal_resultsif Google Maps returns a specific place
Step 1:
Install the SerpApi JavaScript package:
npm install serpapi
Step 2:
Create a new index.js file. (You can name it whatever you want)
Step 3:
Add this to your file for basic search:
const { getJson } = require("serpapi");
getJson({
api_key: API_KEY, // Put your API Key
engine: "google_maps",
q: "coffee",
ll: "@40.7455096,-74.0083012,14z"
}, (json) => {
console.log(json["local_results"]);
});We're printing the local_results from Google Maps in this case.
While you can use our APIs using a simple GET request with any programming language, you can also see our ready-to-use libraries here: SerpApi Integrations.
Please find the parameters for the Google Maps Search API below:
| Name | Description | Requirement |
|---|---|---|
| q | Parameter defines the query you want to search | Required |
| ll | Parameter defines the GPS coordinates of the location where you want the search to originate from. Its value must match the following format: @ + latitude + , + longitude + , + zoom/map_height | Required |
| Localization | ||
| google_domain | Parameter defines the Google domain to use. It defaults to google.com | Optional |
| hl | Parameter defines the language to use for the Google Maps search. It's a two-letter language code. (e.g.,en for English, es for Spanish, or fr for French). | Optional |
| gl | Parameter defines the country to use for the Google Maps search. It's a two-letter country code. (e.g.,us for the United States, uk for United Kingdom, or fr for France). | Optional |
| Pagination | ||
| start | Parameter defines the result offset. It skips the given number of results. It's used for pagination. (e.g., 0 (default) is the first page of results, 20 is the 2nd page of results, 40 is the 3rd page of results, etc.). | Optional |
If you're searching for a specific place, you can use one of these parameters: data, place_id, or data_cid. Visit our documentation for more information.
Google Maps can return different information from time to time, depending on what information is available on their side. Here is what the local_results array may contain:
"local_results": [
{
"position": "Integer - Position of the local result on the page",
"title": "String - Title of the local result",
"place_id": "String - Place ID of the local result",
"data_id": "String - Data ID of the local result",
"data_cid": "String - Data CID of the local result (also known as `ludocid` in Google Local API)",
"reviews_link": "String - URL to the reviews of the local result",
"photos_link": "String - URL to the photos of the local result",
"gps_coordinates": {
"latitude": "Float - Latitude of the local result",
"longitude": "Float - Longitude of the local result"
},
"place_id_search": "String - URL to the SerpApi place search of the local result",
"provider_id": "String - Provider ID of the place",
"rating": "Float - Rating of the local result",
"reviews": "Integer - Number of reviews of the local result",
"price": "String - Price of the local result. e.g. $, $$, $$$, etc",
"type": "String - Type of the local result",
"types": "Array - Types of the local result",
"type_id": "String - Type ID of the local result",
"type_ids": "Array - Type IDs of the local result",
"address": "String - Address of the local result",
"open_state": "String - Open state of the local result",
"hours": "String - Open/Close hours of the local result",
"operating_hours": {
"day as key": "String - Open/Close hours of the local result"
},
"phone": "String - Phone number of the local result",
"website": "String - Website of the local result",
"amenities": "Array - Amenities of the local result",
"description": "String - Description of the local result",
"service_options": "Hash - Service options of the local result",
"thumbnail": "String - Thumbnail of the local result",
"extensions": [
{
"<extension_type>": "Array of strings - List of supported extensions"
},
...
],
"unsupported_extensions": [
{
"<extension_type>": "Array of strings - List of unsupported extensions"
},
...
],
}
],Here are some use cases, but not limited to, for the Google Maps API:
- Generate geo-targeted lead lists by scraping nearby businesses (name, phone, website, rating) for any keyword and location.
- Monitor competitors by tracking ratings, review counts, and price levels across multiple areas on a schedule.
- Enrich your CRM by resolving a place to structured details (hours, categories, coordinates) via place IDs.
- Analyze customer sentiment by pulling recent Google Maps reviews (text, stars, timestamps) for selected places.
- Build location pickers and store locators by querying places around a lat/lng or grid and plotting the structured results.
Interesting use cases:
- How AI Can Predict the Success of Your Business Using Data from Google Maps
- How To Make a Travel Guide Using SERP data and Python
- Gauge Business Popularity using Google Maps
- Scrape Google Maps reviews data using Python
- Scrape unlimited leads in one click (Collect data from Google Maps)
Feel free to reach out via contact@serpapi.com.
Check other Google Scraper from SerpApi.

