Places · GET /v1/places/{place}
Places
Look up one place we've saved, by any id or Maps link you have for it, and see what each field of a place means.
Look up a place
Put the place at the end of the URL. Any of these works:
- our
idfor it, from any answer; - Google's
cid, a string of digits. ItsdataIdworks too, because the cid is inside it; - Google's place ID, such as
ChIJ…; - a Google Maps link to the place. Open the place in Maps and copy the whole link from the address bar.
Encode a link before you put it in the URL, with encodeURIComponent for example. The SDK does that for you. A lookup is free:
curl https://api.gmaps.dev/v1/places/12345678901234567890 \
-H "Authorization: Bearer $GMAPS_API_KEY"A short link, such as one from maps.app.goo.gl, hides the place until it's opened, so it's refused with 400 VALIDATION_ERROR: open it in a browser and send the full link. A link to a search or a map area, rather than one place, is refused the same way.
Only places we've saved
A lookup never searches. It reads the places we've saved, and those come from searches and collections, by you or by anyone else.
When we haven't saved a place, the answer is 404 PLACE_NOT_FOUND. That doesn't mean the place doesn't exist. To bring it in, search the area it's in with a word that describes it, such as its category. Once the new places arrive, look it up again.
Looking up a business that asked to be left out gets the same answer, and it stays out. Data and privacy explains how that works.
A lookup doesn't refresh a place either. meta.scrapedAt says when we last collected it. We collect it again when someone searches its area after our last search there has expired. Coverage says how long that takes.
Keep the cid a string
Google's cids are too long for a JavaScript number, and for many other languages and spreadsheets. Read as a number, a cid loses its last digits and points to another place, or to none:
Number("12345678901234567890"); // 12345678901234567000So we always send it as a string. Keep it that way: store it in a text column, and import it into a spreadsheet as text.
What a place holds
Every answer with places in it uses this same shape: a search, a collection's places and a lookup. This is a whole place:
{
"id": "5b0c8e0a-2f4d-4c1e-9a57-3d2b8f6e1c90",
"identity": {
"cid": "12345678901234567890",
"placeId": "ChIJmadeUpPlaceIdForTheDocs",
"dataId": "0x94dce35aa0000001:0xab54a98ceb1f0ad2",
"name": "Padaria Estrela do Centro",
"category": "Padaria",
"mapsUrl": "https://maps.google.com/?cid=12345678901234567890",
"description": "Pães de fermentação natural e café coado.",
"status": null
},
"contact": {
"phones": ["+55 41 0000-0000"],
"website": "https://example.com"
},
"location": {
"address": "R. Exemplo, 100 - Centro, Curitiba - PR, 80000-000",
"completeAddress": {
"borough": "Centro",
"street": "R. Exemplo, 100",
"city": "Curitiba",
"postalCode": "80000-000",
"state": "PR",
"country": "BR"
},
"city": "Curitiba",
"state": "PR",
"country": "BR",
"lat": -25.4296,
"lng": -49.2713,
"plusCode": "3QHH+5F Curitiba"
},
"ratings": {
"rating": 4.6,
"reviewCount": 212,
"reviewsPerRating": { "1": 4, "2": 3, "3": 11, "4": 38, "5": 156 }
},
"hours": {
"timezone": "America/Sao_Paulo",
"openHours": {
"segunda-feira": ["7:00–19:00"],
"sábado": ["7:00–13:00"]
},
"popularTimes": { "segunda-feira": { "7": 35, "8": 60, "18": 80 } }
},
"commerce": {
"priceRange": "R$ 20–40",
"about": [
{
"id": "accessibility",
"name": "Acessibilidade",
"options": [
{
"name": "Entrada acessível para cadeirantes",
"enabled": true
}
]
}
],
"creditCardsAccepted": [],
"menu": null,
"orderOnline": [
{ "link": "https://example.com/pedidos", "source": "example.com" }
],
"reservations": []
},
"meta": {
"scrapedAt": "2026-09-18T09:41:37.000Z",
"firstSeenAt": "2026-03-02T15:20:04.000Z",
"cached": true
}
}A field is null, or an empty list, when we don't have it. Names, categories and hours are in the language of the last search that collected the place, which may not be the one you asked for. A place never carries review text, reviewer names or photos.
identity: which place it is
| Field | What it holds |
|---|---|
id | Our id for the place. It never changes. |
cid | Google's id for the place, always a string. |
placeId | Google's place ID. |
dataId | Another Google id for the place, with the cid inside it. |
name | The business's name. |
category | What the business says it is, in the search language: Bakery, Padaria. |
mapsUrl | A link to the place on Google Maps. |
description | The listing's own short description. |
status | What the listing said about the place when we collected it: Permanently closed, Fechado permanentemente. |
contact: how to reach it
| Field | What it holds |
|---|---|
phones | Its phone numbers, as the listing shows them. |
website | Its website. |
emails | Email addresses we found for it. This field comes only to accounts that have a plan with emails and have accepted the acceptable use policy. For everyone else it isn't there at all. If an account that can read emails gets no emails, we have no address for the place. Emails has more. |
location: where it is
| Field | What it holds |
|---|---|
address | The address on one line, as the listing writes it. |
completeAddress | The same address in parts: street, borough, city, postalCode, state and country. Any part can be null. |
city, state, country | Its city, state and country. |
lat, lng | Where it is on the map, in degrees. Both are numbers, or both are null. |
plusCode | Its plus code: a short code for that spot on the map. |
ratings: how people rate it
| Field | What it holds |
|---|---|
rating | The average rating, from 0 to 5. null when nobody has rated it. |
reviewCount | How many reviews it has. |
reviewsPerRating | How many reviews gave each number of stars. A star count the listing leaves out is missing here too. |
hours: when it's open
| Field | What it holds |
|---|---|
timezone | Its time zone, such as America/Sao_Paulo. |
openHours | Each day and the hours it's open, written the way the listing writes them. |
popularTimes | How busy it usually is. For each day, each hour from 0 to 23 gets a number from 0 to 100, where 100 is its busiest. |
commerce: what it offers
| Field | What it holds |
|---|---|
priceRange | How pricey it is, as the listing shows it, such as R$ 20–40. |
about | What the place says about itself, in groups such as accessibility. Each option has a name, whether it's enabled, and sometimes values. |
creditCardsAccepted | The cards it takes. |
menu | A link to its menu, and who offers it. |
orderOnline | Links to order online, each with who offers it, such as a delivery app. |
reservations | Links to book, each with who offers it. |
meta: our record of it
| Field | What it holds |
|---|---|
scrapedAt | When we last collected it. |
firstSeenAt | When we first saved it. |
cached | true when it came from what we'd saved, so it cost nothing. A lookup always says true. |