---
title: "Google reviews"
description: "Google reviews of a place on Google Maps, with the stars, the owner's reply and the reviewer."
canonical: https://docs.mentio.dev/platforms/googlemaps
markdown: https://docs.mentio.dev/platforms/googlemaps.mdx
---

# Google reviews

Google reviews of a place on Google Maps, with the stars, the owner's reply and the reviewer.

Google reviews is a [review platform](/platforms/reviews): the term is never searched here. A keyword names places in its `reviewSources`, and every new Google review of them becomes a mention. Good for a shop, restaurant, clinic or office.

| `platform`                    | `googlemaps`                                          |
| ----------------------------- | ----------------------------------------------------- |
| What is found                 | Every new Google review of the places a keyword names |
| Freshness                     | About once a day per place                            |
| Last 30 days on a new keyword | Yes, the newest 100 reviews, free                     |

## Connect a place [#connect-a-place]

Paste the place's Google Maps link: the long one from the address bar, or the short `maps.app.goo.gl` link from Share, which Mentio opens for you. A Place ID (`ChIJ...`) works too:

TypeScript:

```ts
const response = await fetch('https://api.mentio.dev/v1/keywords/kw_123', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.MENTIO_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "reviewSources": [
      {
        "url": "https://maps.app.goo.gl/AbCdEf123"
      }
    ]
  }),
});

const data = await response.json();
console.log(data);
```

Python:

```python
import os
import requests

response = requests.patch(
    "https://api.mentio.dev/v1/keywords/kw_123",
    headers={"Authorization": f"Bearer {os.environ['MENTIO_API_KEY']}"},
    json={
      "reviewSources": [
        {
          "url": "https://maps.app.goo.gl/AbCdEf123"
        }
      ]
    },
)
print(response.json())
```

cURL:

```bash
curl -X PATCH "https://api.mentio.dev/v1/keywords/kw_123" \
  -H "Authorization: Bearer $MENTIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "reviewSources": [
    {
      "url": "https://maps.app.goo.gl/AbCdEf123"
    }
  ]
}'
```

The link has to point at one place (its page on Maps), not at a search or a map area. A place has no countries.

## Read its reviews [#read-its-reviews]

Filter the mentions list to Google reviews. `ratings=1,2,3` keeps the ones worth an answer.

TypeScript:

```ts
const response = await fetch('https://api.mentio.dev/v1/mentions?platforms=googlemaps&ratings=1,2,3', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.MENTIO_API_KEY}`,
  },
});

const data = await response.json();
console.log(data);
```

Python:

```python
import os
import requests

response = requests.get(
    "https://api.mentio.dev/v1/mentions?platforms=googlemaps&ratings=1,2,3",
    headers={"Authorization": f"Bearer {os.environ['MENTIO_API_KEY']}"},
)
print(response.json())
```

cURL:

```bash
curl -X GET "https://api.mentio.dev/v1/mentions?platforms=googlemaps&ratings=1,2,3" \
  -H "Authorization: Bearer $MENTIO_API_KEY"
```

Response (trimmed):

```json
{
  "data": [
    {
      "id": "mm_8f2k1x9q",
      "status": "open",
      "relevant": true,
      "keyword": {
        "id": "kw_123",
        "term": "Acme"
      },
      "post": {
        "publishedAt": "2026-11-07T14:32:10.000Z",
        "platform": "googlemaps",
        "kind": "post",
        "url": "https://www.google.com/maps/place/?q=place_id:ChIJN1t_tDeuEmsRUsoyG83frY4",
        "text": "Waited 40 minutes for a table even with a booking."
      },
      "author": {
        "name": "Chris W."
      },
      "review": {
        "rating": 2,
        "ratingMax": 5,
        "app": {
          "platform": "googlemaps",
          "id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
          "url": "https://www.google.com/maps/place/?q=place_id:ChIJN1t_tDeuEmsRUsoyG83frY4"
        }
      },
      "classification": {
        "relevance": 95,
        "sentiment": "negative",
        "intents": [
          "complaint"
        ],
        "note": "A customer reports a problem with Acme."
      }
    }
  ],
  "nextCursor": "eyJ0IjoxNzMxMDAwMDAwfQ"
}
```

## What a mention carries [#what-a-mention-carries]

* `post.text`: the review. A rating left without words reads "Rated 4 of 5 stars, with no written review.", so it still shows, and still bills.
* `review.rating` (1 to 5), `review.response` and `review.responseAt`: the owner's reply, when there is one.
* `post.engagement.likes`: how many people found the review helpful.
* `author`: the reviewer's name, their Google Maps profile and picture, and how many reviews they have written (`authorPosts` in the audience).
* Sentiment comes from the stars and relevance from the keyword's kind; the classifier still adds the intent tags.

## Limits [#limits]

* Google reviews only: reviews Google Maps shows from other sites are not collected.
* A place with more than 1,000 reviews a day is read up to its newest 1,000 a day.
