SERP API · Google Maps
Google Maps places API
The places Google Maps shows for a search in an area, returned as JSON: name, rating, category, address, phone, website, opening hours, coordinates and the place id. This is the SERP API with search_type: "places" (or maps) and, for one place, place_details. No Maps Platform project, no billing account, pay per search.
![A Google Maps places search for pizza restaurants around Brooklyn, NY: a map with pins and the first place card, then the real places[0] JSON with name, rating 4.7, category, open state and hours. The answer came from the plain page: $0.0009 per search, $0.002 when rendered.](/serp-api/google/maps/hero.webp?v=20261030api)
What you get
One place, one object.
| Field | What it holds |
|---|---|
rank | 1-based position |
name | Business name |
rating | Average rating |
reviews | Number of reviews when shown |
category | Main category ("Pizza restaurant") |
address | Address as shown |
phone | Phone number when shown |
website | Website when shown |
hours | Today's hours as shown |
gps_coordinates | Latitude and longitude |
place_id | Google place id |
data_id | Feature id, used for details and reviews |
open_state | Open or closed now |
For one place, search_type: "place_details" with its place_id or data_id returns the full card in payload.place_results: plus code, weekly hours, attributes and a sample of user reviews. All its reviews come from the reviews vertical.
Example
One request, one JSON answer.
curl -X POST https://api.quanticdata.io/v1/scraper/serp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"pizza restaurants","search_type":"places","location":"Brooklyn, NY","country":"us","num":10}'import requests
r = requests.post("https://api.quanticdata.io/v1/scraper/serp",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"query": "pizza restaurants", "search_type": "places", "location": "Brooklyn, NY", "country": "us", "num": 10})
for p in r.json()["payload"]["places"]:
print(p["name"], p["rating"], p["phone"], p["address"]){
"rank": 1,
"name": "Frank and Sal Italian Market Staten Island",
"rating": 4.7,
"category": "Italian grocery store",
"address": "4060 Hylan Boulevard, Staten Island, New York 10308",
"phone": "(718) 966-7400",
"hours": "Friday: 8 AM–6 PM",
"gps_coordinates": {
"latitude": 40.540583999999996,
"longitude": -74.147198
},
"place_id": "0x89c24a35537f404b:0x2ba28a40618be10b",
"data_id": "0x89c24a35537f404b:0x2ba28a40618be10b",
"open_state": "Closed · Opens 8 AM"
}The answer is the usual envelope: payload.places holds the list above, payload.search_metadata says which tier answered and how long it took.
Parameters
What, around where, how many.
| Parameter | Meaning |
|---|---|
query | What you would type in Maps: "pizza restaurants", "dentist" |
location | Where to center the map ("Brooklyn, NY"); also uule as lat,lon |
place_id, data_id | For place_details: the place to read |
num, page | Results per call and the page to read |
country | Proxy exit and Google locale (gl), ISO code: us, gb, de, it… |
lang | Interface language (hl): en, de, it… |
device | desktop (default), mobile, ios or android |
Every parameter, for every vertical, is in the API reference.
Price
Per search, nothing monthly.
A successful search costs $0.0009 when Google's plain page answers and $0.002 when the rendered page is needed; search_metadata.path in the answer says which one you got. In our test on 30 October 2026 the call answered from the plain page in 2.95 seconds.
Failed searches are not charged. There is no subscription: a $2 free credit every month covers the first calls, then you top up your balance by card, PayPal or crypto.
If you would rather pay per place than per search, the Google Maps places collector returns the same data at $0.001 per delivered place (up to 300 per run), with no pagination to handle.
Every price per search and per vertical: SERP API pricing.
Official API or this one
The official Places API is a different product, with its own terms.
Google's official route is the Places API of Google Maps Platform: it needs a Cloud project with billing, is priced per request by the fields you ask for, and its terms limit how long you may store most place data.
This endpoint returns what Google Maps shows a person searching in that area, as JSON, billed per successful search. What you may do with the data depends on where you are and how you use it: is scraping Google Maps legal.
Use cases
What teams build with it.
Local lead lists: every business of a category in a city, with phone and website, as rows.
Store locators and market maps: competitors and their ratings by neighbourhood.
Local SEO audits: who ranks for a category in Maps, from the location you choose.
Before you call it
Questions developers ask
Is this the Google Places API?
No. The Places API is Google Maps Platform's official product, billed per request and field. This endpoint returns the places Google Maps shows for a search, as JSON, per successful search.
Can I get phone numbers and websites?
Yes, when Google shows them on the place card: phone and website are in each result.
How do I get every review of a place?
Take its data_id from this result and call the reviews vertical, which pages through the reviews.
How do I cover a whole city?
Run the same query with different locations (neighbourhoods or coordinates) and page through each; the place_id deduplicates.
Is scraping Google Maps legal?
The answer depends on the country and the use; we wrote it up here: is scraping Google Maps legal.
Start with the free credit.
Create an API key, run the example above and read the JSON. Pay per search after the $2 monthly credit, no subscription.