---
title: "Google Play"
description: "Reviews of the Android apps a keyword names, with their stars, app version and the developer's reply."
canonical: https://docs.mentio.dev/platforms/googleplay
markdown: https://docs.mentio.dev/platforms/googleplay.mdx
---

# Google Play

Reviews of the Android apps a keyword names, with their stars, app version and the developer's reply.

Google Play is a [review platform](/platforms/reviews): the term is never searched here. A keyword names apps in its `reviewSources`, and every new review of them becomes a mention, named or not.

| `platform`    | `googleplay`                                                                     |
| ------------- | -------------------------------------------------------------------------------- |
| What is found | Every new review of the apps a keyword names, per storefront and review language |
| Freshness     | About once a day per app, storefront and language                                |
| Last 30 days  | Yes, the newest 100 reviews per storefront, free                                 |

## Connect an app [#connect-an-app]

Paste the app's Google Play link; `countries` and `language` are optional:

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://play.google.com/store/apps/details?id=com.acme.app",
        "countries": [
          "us"
        ],
        "language": "en"
      }
    ]
  }),
});

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://play.google.com/store/apps/details?id=com.acme.app",
          "countries": [
            "us"
          ],
          "language": "en"
        }
      ]
    },
)
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://play.google.com/store/apps/details?id=com.acme.app",
      "countries": [
        "us"
      ],
      "language": "en"
    }
  ]
}'
```

The id is the package name, the `id=` of the link; `{ "platform": "googleplay", "id": "com.acme.app" }` works too.

**Pick the language.** Google Play answers one review language at a time: an app read in `en` never sees its Spanish reviews. The default is the link's `hl`, else `en`.

A keyword reads one language per app. To follow two languages, connect the app to two keywords, one per language.

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

Filter the mentions list to Google Play. `ratings=1,2` keeps the unhappy ones.

TypeScript:

```ts
const response = await fetch('https://api.mentio.dev/v1/mentions?platforms=googleplay&ratings=1,2', {
  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=googleplay&ratings=1,2",
    headers={"Authorization": f"Bearer {os.environ['MENTIO_API_KEY']}"},
)
print(response.json())
```

cURL:

```bash
curl -X GET "https://api.mentio.dev/v1/mentions?platforms=googleplay&ratings=1,2" \
  -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": "googleplay",
        "kind": "post",
        "url": "https://play.google.com/store/apps/details?id=com.acme.app",
        "text": "Notifications stopped working on Android 15."
      },
      "author": {
        "name": "Raj P"
      },
      "review": {
        "rating": 2,
        "ratingMax": 5,
        "version": "4.2.0",
        "country": "us",
        "response": "Thanks Raj, a fix ships this week.",
        "app": {
          "platform": "googleplay",
          "id": "com.acme.app",
          "url": "https://play.google.com/store/apps/details?id=com.acme.app"
        }
      },
      "classification": {
        "relevance": 95,
        "sentiment": "negative",
        "intents": [
          "bug_report"
        ],
        "note": "A customer reports a problem with Acme."
      }
    }
  ],
  "nextCursor": "eyJ0IjoxNzMxMDAwMDAwfQ"
}
```

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

* `post.text`: the review's body (Google Play reviews have no title).
* `review.rating` (1 to 5), `review.version`, `review.country`.
* `review.response` and `review.responseAt`: the developer's reply, when there is one.
* `post.engagement.likes`: how many people marked the review helpful.
* `author.name` and `author.avatarUrl`. Google Play gives a reviewer no profile page, so reviewers are grouped by name in the audience.
* Sentiment comes from the stars (4 and 5 positive, 3 neutral, 1 and 2 negative) and relevance from the keyword's kind; the classifier still adds the intent tags.

## Limits [#limits]

* Storefronts: 52 countries (the common markets), each a two-letter code such as `us`, `gb`, `de`, `br`, `in`. An unsupported country is refused with the code named.
* A very busy app (hundreds of reviews a day) is read up to its newest 1,000 reviews a day per storefront.
