> ## Content Index
> Fetch the complete content index at: https://serpapi.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# How to scrape Google Play Store app reviews
- URL: https://serpapi.com/blog/how-to-scrape-google-play-store-app-reviews/
- Published: 2026-09-16T20:23:33.000Z
- Updated: 2026-09-16T20:23:33.000Z
- Description: Fetch and analyze reviews for any app on the Google Play Store with SerpApi, in simple JSON or Markdown format.
- Author: Corbin Davenport
- Tags: Google Play, Google Play Store

The Google Play Store is the primary app store and game repository for Android devices. Reviews for a given application can provide insights into current problems, popular features, and device compatibility. That can be incredibly useful information for market research, competitive analysis, and other situations.

With the [Google Play Store Product API](https://serpapi.com/google-play-product-api) from SerpApi, you can retrieve details for any app on the Google Play Store in simple JSON or Markdown format, which includes user-published reviews. SerpApi handles the web scraping, HTML parsing, and other challenges for you, so you can focus on your actual business or project.

## Getting started with SerpApi

You need a free SerpApi account before you can use the Google Play Store APIs. You can [upgrade to a paid account](https://serpapi.com/pricing) in the future if you need more search capacity, faster speeds, or other features.

First, [create an account](https://serpapi.com/users/sign%5Fup) and verify your email and other details. After that, get the API key from [your account dashboard](https://serpapi.com/manage-api-key).

![The API key in the dashboard](https://storage.ghost.io/c/a5/00/a5004977-0dd2-4bcd-9292-dd0e05d4c59e/content/images/2026/05/image-2.png)

You should [store your API key in a safe location](https://serpapi.com/blog/how-to-securely-store-api-keys/) if you are sharing or publishing your code. If the key is leaked or stolen, you can make a new one from the SerpApi account dashboard.

### Install the SerpApi library (optional)

SerpApi has [official integrations for Python, JavaScript, Ruby, Java, and other environments](https://serpapi.com/integrations). They aren't required, but they provide a simple wrapper around the API requests.

The APIs can also be used with cURL, `fetch()` in Node.js, or anything else that can send GET requests and process a JSON response.

### Review the Google Play Store documentation

SerpApi has extensive documentation for each of its APIs, covering all supported parameters and filters, code examples for popular languages, and example JSON/Markdown responses. The [Google Play Store API](https://serpapi.com/google-play-api) is available for fetching the contents of home pages and search results, and the [Google Play Product API](https://serpapi.com/google-play-product-api) can retrieve individual app listings with their user reviews.

[Google Play Product API - SerpApiUse SerpApi’s Google Play Product API to scrape Google Play Products and Reviews. Apps, movies, TV, audiobooks and books.![](https://storage.ghost.io/c/a5/00/a5004977-0dd2-4bcd-9292-dd0e05d4c59e/content/images/icon/favicon-32x32-f6cde477-3156-4c35-9966-3df4d9e725cd.png)SerpApiSerpApi![](https://storage.ghost.io/c/a5/00/a5004977-0dd2-4bcd-9292-dd0e05d4c59e/content/images/thumbnail/serpapi-text-logo-621a467e3b1e907622c18a6ac81455032e9784d6a86e81a1b4f6407d3f0120a6-7f32c92d-0eb7-4ad7-905f-e00bc540ce4e.png)](https://serpapi.com/google-play-product-api)

The only required parameter for the Google Play Product API is `product_id`, which represents the package name or product ID for the app you want to check. You can find that in the URL for the app's listing, as the `id` parameter.in

For example, the URL for [YouTube in the Play Store](https://play.google.com/store/apps/details?id=com.google.android.youtube&gl=us) includes the `com.google.android.youtube` ID:

```url
https://play.google.com/store/apps/details?id=com.google.android.youtube&gl=us
```

The page for [Minecraft](https://play.google.com/store/apps/details?id=com.mojang.minecraftpe&gl=us) contains `com.mojang.minecraftpe` as the ID:

```url
https://play.google.com/store/apps/details?id=com.mojang.minecraftpe&gl=us
```

If you need to fetch the IDs for apps in an automation, you can use the Google Play Store API first to retrieve that information for any search results, then store that information for a request to the Google Play Product API.

## How to scrape app reviews from the Google Play Store

Once you have your API key, you're ready to start pulling app reviews from the Google Play Store. The results will be identical across all libraries and GET requests, so use whichever method you want.

### GET request with JSON

Here's how you can fetch reviews for Netflix on the Google Play Store in the United States, using the `all_reviews` parameter and the app ID `com.netflix.mediaclient` for Netflix, and get a response in JSON format:

```url
https://serpapi.com/search.json?engine=google_play_product&product_id=com.netflix.mediaclient&gl=us&store=apps&all_reviews=true&platform=phone&sort_by=1&api_key=YOUR_KEY_GOES_HERE
```

You can fetch up to 199 reviews in one request by adding the `num` parameter, like this:

```url
https://serpapi.com/search.json?engine=google_play_product&product_id=com.netflix.mediaclient&gl=us&store=apps&all_reviews=true&platform=phone&sort_by=1&num=199&api_key=YOUR_KEY_GOES_HERE
```

If you need the next page of reviews, find the `next_page_token` value provided in the `serpapi_pagination` object of the JSON response, then put it in the `next_page_token` parameter of the next GET request.

There are three options for sorting reviews, controlled by the `sort_by` parameter. You can choose `1` for the most relevant reviews, `2` for the newest reviews, or `3` for highest-rated to lowest-rated reviews. This will show the newest reviews for Netflix:

```url
https://serpapi.com/search.json?engine=google_play_product&product_id=com.netflix.mediaclient&gl=us&store=apps&all_reviews=true&platform=phone&sort_by=2&api_key=YOUR_KEY_GOES_HERE
```

### GET request with Markdown

If you want reviews in a more human-readable format, or if the data will be used with LLMs, you can try [Markdown output](https://serpapi.com/markdown-output) instead of JSON. This GET request will fetch the 50 most relevant reviews for [WhatsApp](https://play.google.com/store/apps/details?id=com.whatsapp&gl=us) in Canada:

```
https://serpapi.com/search.md?engine=google_play_product&product_id=com.whatsapp&gl=ca&store=apps&all_reviews=true&platform=phone&sort_by=1&num=50&api_key=YOUR_KEY_GOES_HERE
```

The output will look like this:

```markdown
## Reviews

| Id | Title | Avatar | Rating | Snippet | Likes | Date | Iso Date |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 8ce66b12-b1a9-489d-b109-316d9b6e7497 | Sheikh Bilal Badar | https://play-lh.googleusercontent.com/a-/ALV-UjWyjZBEOmuUUGnVz8JaZp54_Y4yUNopTMfU15n8-gmBgZvkWp_gAg | 1.0 | Worst customer service I've experienced. My account was blocked without any explanation, and every attempt to get help resulted in automated replies telling me to contact support. There is no real person to assist or explain the issue. After relying on this app for so long, this was extremely disappointing. Be careful before depending on it for important communication because if something goes wrong, getting help seems almost impossible. | 16 | August 06, 2026 | 2026-08-06T12:14:16Z |
| 2592952c-8921-4b35-b756-106b946d8f1a | Noémie Bilinski | https://play-lh.googleusercontent.com/a-/ALV-UjXSeE8Yhqimh4en1zm_t5HcR4ZKVlTr6162dCEuda0g6EWGdXk | 1.0 | Honestly, I didn't have a lot of issues but this app has the most idiotic and awful function that none of the other chatting apps have. it auto downloads all the gifs, videos and photos you receive. you can deactivate the auto download, but then you can't see the media you receive and to see it, you need to MANUALLY download them and it still gets saved on your phone! WHY??? This is so dumb!!! let us receive pictures without downloading them in our phones | 13 | August 14, 2026 | 2026-08-14T21:21:55Z |
| 65c2929d-fa3f-47ca-b2a8-17f6f545dc27 | Ellie | https://play-lh.googleusercontent.com/a/ACg8ocL41zM9q4ejIM09-NW19BU3EUepb6pQJ2_01cuqWo-yqgHfsweY=mo | 4.0 | In my own opinion, WhatsApp is a great app for communicating with family and any communities, it's pretty simple and easy to use once you understand the settings, but it would be better if there was an in-app browser, similar to messenger, for whenever someone sends a link, and you don't have to go into chrome or any browser app you have, since I've noticed in both the reviews and the people I know who use WhatsApp, they'd prefer in-app browsers as well. But overall, a really easy to use app!!𔘓 | 59 | April 30, 2026 | 2026-04-30T01:53:41Z |

## Pagination

- [Next page](https://serpapi.com/search.md?...)

```

Markdown output supports all the same parameters and options as JSON requests.

### Python

This is how you can fetch the 100 most recent reviews for [Minecraft](https://play.google.com/store/apps/details?id=com.mojang.minecraftpe&gl=us) in the United States, using the [official SerpApi Python library](https://serpapi.com/integrations/python):

```python
import serpapi
client = serpapi.Client(api_key=YOUR_KEY_GOES_HERE)

response = client.search({
  "engine": "google_play_product",
  "store": "apps",
  "platform": "phone",
  "gl": "us",
  "all_reviews": "true",
  # The package name for Minecraft
  "product_id": "com.mojang.minecraftpe",
  # Newest reviews is "2"
  "sort_by": "2"
})

for review in response.get("reviews", {}):
    print(f"\n{review['rating']} stars - {review['snippet']}")
```

Here's an example of fetching five pages of relevant reviews, at the maximum of 199 reviews per page:

```python
import serpapi
client = serpapi.Client(api_key=YOUR_KEY_GOES_HERE)

settings = {
  "engine": "google_play_product",
  "store": "apps",
  "platform": "phone",
  "gl": "us",
  "all_reviews": "true",
  "num": "199",
  # The package name for Minecraft
  "product_id": "com.mojang.minecraftpe",
  # Most relevant reviews is "1"
  "sort_by": "1"
}

response = client.search(settings)
current_page = 0

while current_page < 5:
  # Set current page
  current_page += 1
  print(f"\nReviews page #{current_page}\n======")
  # Print all reviews on this page
  for review in response.get("reviews", {}):
    print(f"\n{review['rating']} stars - {review['snippet']}")
  # Add the next page token from response to the parameters for the next page's request
  settings["next_page_token"] = response["serpapi_pagination"]["next_page_token"]
  # Make request for next page
  response = client.search(settings)
```

### Ruby

Here's how you can retrieve the 50 most relevant reviews for [Netflix](https://play.google.com/store/apps/details?id=com.netflix.mediaclient&gl=us) in the United States, using the [SerpApi Ruby gem](https://serpapi.com/integrations/ruby):

```ruby
require "serpapi"

client = SerpApi::Client.new(
  engine: "google_play_product",
  api_key: YOUR_KEY_GOES_HERE,
  gl: "us",
  store: "apps",
  platform: "phone",
  all_reviews: true,
  num: 50,
  # The package name for Netflix
  product_id: "com.netflix.mediaclient",
  # Most relevant reviews is "1"
  sort_by: 1
)

for review in client.search[:reviews] do
  puts "\n#{review[:rating]} stars - #{review[:snippet]}"
end
```

This fetches the maximum number of reviews (199) per page, and shows the first five pages of relevant reviews:

```ruby
require "serpapi"

settings = {
  engine: "google_play_product",
  api_key: YOUR_KEY_GOES_HERE,
  gl: "us",
  store: "apps",
  platform: "phone",
  all_reviews: true,
  num: 199,
  # The package name for Netflix
  product_id: "com.netflix.mediaclient",
  # Most relevant reviews is "1"
  sort_by: 1
}

response = SerpApi::Client.new(settings)
current_page = 0

while current_page < 5
  # Set current page
  current_page += 1
  puts "\nReviews page #{current_page}\n======"
  # Print all reviews on this page
  for review in response.search[:reviews] do
    puts "\n#{review[:rating]} stars - #{review[:snippet]}"
  end
  # Add the next page token from response to the parameters for the next page's request
  settings[:next_page_token] = response.search[:serpapi_pagination][:next_page_token]
  # Make request for next page
  response = SerpApi::Client.new(settings)
end
```

### JavaScript and Node.js

This is how you can fetch the 50 most relevant reviews for [Spotify](https://play.google.com/store/apps/details?id=com.spotify.music) in the United States in a Node.js script, using the [SerpApi JavaScript library](https://serpapi.com/integrations/javascript):

```javascript
import { getJson } from 'serpapi';

const search = await getJson({
  engine: "google_play_product",
  api_key: YOUR_KEY_GOES_HERE,
  gl: "us",
  store: "apps",
  platform: "phone",
  all_reviews: true,
  num: 50,
  // The package name for Netflix
  product_id: "com.spotify.music",
  // Most relevant reviews is "1"
  sort_by: 1
});

for (let review of search.reviews) {
  console.log("\n" + review.rating + " stars - " + review.snippet);
}
```

This will retrieve five pages of the most recent reviews for Spotify, at the maximum of 199 reviews per page:

```javascript
import { getJson } from 'serpapi';

let settings = {
  engine: "google_play_product",
  api_key: YOUR_KEY_GOES_HERE,
  gl: "us",
  store: "apps",
  platform: "phone",
  all_reviews: true,
  num: 199,
  // The package name for Netflix
  product_id: "com.spotify.music",
  // Most recent reviews is "1"
  sort_by: 2
}

let search = await getJson(settings);

for (let i = 0; i <= 5; i++) {
  console.log(`\nReviews page #${i}\n======`);
  // Print all reviews on this page
  for (let review of search.reviews) {
    console.log(`\n${review.rating} stars - ${review.snippet}`);
  }
  // Add next page token from this page to the next request
  settings.next_page_token = search.serpapi_pagination.next_page_token;
  // Make request for next page
  search = await getJson(settings);
}
```

### cURL

Here's how you can fetch the 50 most relevant reviews for Gmail in Canada with a cURL request:

```shell
curl --get https://serpapi.com/search \
 -d api_key="YOUR_KEY_GOES_HERE" \
 -d engine="google_play_product" \
 -d gl="ca" \
 -d store="apps" \
 -d product_id="com.google.android.gm" \
 -d platform="phone" \
 -d sort_by="1" \
 -d all_reviews="true" \
 -d num="50"
```

### Other languages and no-code solutions

You can still use the API directly with [GET requests](#get-request), even if there isn't an official SerpApi integration for your preferred environment or language. SerpApi also works with [Make.com](https://serpapi.com/blog/announcing-serpapis-make-app/), [N8N](https://serpapi.com/blog/boost-your-n8n-workflows-with-serpapis-verified-node/), and other tools.

## Conclusion

The Google Play Store's user reviews for apps and games can help you identify popular (and unpopular) features, ongoing bugs, device compatibility, and other insights. That information is already available to the application's developer through their [Google Play Console](https://developer.android.com/distribute/console), but with the [Google Play Product API](https://serpapi.com/google-play-product-api) from SerpApi, you can fetch reviews for apps and games published by any developer.

If you need help using SerpApi, please [contact us](https://serpapi.com/#contact).