# Ultimate Google Play Review Extractor

Extract app reviews from Google Play efficiently for sentiment analysis and feedback.

## Actor Statistics

- Total users: 3
- Monthly users: 1
- Runs succeeded: 0.00%
- Categories: Developer tools

## Pricing

$1.00 / 1,000 results

## Input Schema

- **action** (type: string): Specifies the data scraping action and its source based on user selection.
- **scrapeReviews.appId** (type: string): The Google Play ID of the app (found in the URL as the ?id= parameter).
- **count** (type: integer): Specify the number of records to scrape; leave blank to scrape all available items.
- **cursor** (type: string): Resume scraping from a specific point, using the lastCursor value from scraper's default storage.
- **proxy** (type: object): Optional proxy setting for enhanced security based on account location.
- **minDelay** (type: integer): The minimum delay in seconds between scraping pages.
- **maxDelay** (type: integer): The maximum delay in seconds between scraping pages.

## API example

## Ultimate Google Play Review Extractor

- **OpenAPI Version:** `3.1.1`
- **API Version:** `1.0`

Extract app reviews from Google Play efficiently for sentiment analysis and feedback.

### Servers

- **URL:** `https://api.apify.com/v2`

### Operations

#### Executes an Actor, waits for its completion, and returns Actor's dataset items in response.

- **Method:** `POST`
- **Path:** `/acts/dainty_screw~ultimate-google-play-review-extractor/run-sync-get-dataset-items`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`action` (required)**

  `string`, possible values: `"scrapeReviews"`, default: `"scrapeReviews"` — Specifies the data scraping action and its source based on user selection.

- **`count`**

  `integer`, default: `10` — Specify the number of records to scrape; leave blank to scrape all available items.

- **`cursor`**

  `string`, default: `""` — Resume scraping from a specific point, using the lastCursor value from scraper's default storage.

- **`maxDelay`**

  `integer`, default: `3` — The maximum delay in seconds between scraping pages.

- **`minDelay`**

  `integer`, default: `1` — The minimum delay in seconds between scraping pages.

- **`proxy`**

  `object` — Optional proxy setting for enhanced security based on account location.

- **`scrapeReviews.appId`**

  `string` — The Google Play ID of the app (found in the URL as the ?id= parameter).

**Example:**

```
{
  "action": "scrapeReviews",
  "scrapeReviews.appId": "",
  "count": 10,
  "cursor": "",
  "proxy": {},
  "minDelay": 1,
  "maxDelay": 3
}
```

##### Responses

###### Status: 200 OK

#### Executes an Actor and returns information about the initiated run in response.

- **Method:** `POST`
- **Path:** `/acts/dainty_screw~ultimate-google-play-review-extractor/runs`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`action` (required)**

  `string`, possible values: `"scrapeReviews"`, default: `"scrapeReviews"` — Specifies the data scraping action and its source based on user selection.

- **`count`**

  `integer`, default: `10` — Specify the number of records to scrape; leave blank to scrape all available items.

- **`cursor`**

  `string`, default: `""` — Resume scraping from a specific point, using the lastCursor value from scraper's default storage.

- **`maxDelay`**

  `integer`, default: `3` — The maximum delay in seconds between scraping pages.

- **`minDelay`**

  `integer`, default: `1` — The minimum delay in seconds between scraping pages.

- **`proxy`**

  `object` — Optional proxy setting for enhanced security based on account location.

- **`scrapeReviews.appId`**

  `string` — The Google Play ID of the app (found in the URL as the ?id= parameter).

**Example:**

```
{
  "action": "scrapeReviews",
  "scrapeReviews.appId": "",
  "count": 10,
  "cursor": "",
  "proxy": {},
  "minDelay": 1,
  "maxDelay": 3
}
```

##### Responses

###### Status: 200 OK

\####### Content-Type: application/json

- **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

#### Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.

- **Method:** `POST`
- **Path:** `/acts/dainty_screw~ultimate-google-play-review-extractor/run-sync`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`action` (required)**

  `string`, possible values: `"scrapeReviews"`, default: `"scrapeReviews"` — Specifies the data scraping action and its source based on user selection.

- **`count`**

  `integer`, default: `10` — Specify the number of records to scrape; leave blank to scrape all available items.

- **`cursor`**

  `string`, default: `""` — Resume scraping from a specific point, using the lastCursor value from scraper's default storage.

- **`maxDelay`**

  `integer`, default: `3` — The maximum delay in seconds between scraping pages.

- **`minDelay`**

  `integer`, default: `1` — The minimum delay in seconds between scraping pages.

- **`proxy`**

  `object` — Optional proxy setting for enhanced security based on account location.

- **`scrapeReviews.appId`**

  `string` — The Google Play ID of the app (found in the URL as the ?id= parameter).

**Example:**

```
{
  "action": "scrapeReviews",
  "scrapeReviews.appId": "",
  "count": 10,
  "cursor": "",
  "proxy": {},
  "minDelay": 1,
  "maxDelay": 3
}
```

##### Responses

###### Status: 200 OK

### Schemas

#### inputSchema

- **Type:**`object`

* **`action` (required)**

  `string`, possible values: `"scrapeReviews"`, default: `"scrapeReviews"` — Specifies the data scraping action and its source based on user selection.

* **`count`**

  `integer`, default: `10` — Specify the number of records to scrape; leave blank to scrape all available items.

* **`cursor`**

  `string`, default: `""` — Resume scraping from a specific point, using the lastCursor value from scraper's default storage.

* **`maxDelay`**

  `integer`, default: `3` — The maximum delay in seconds between scraping pages.

* **`minDelay`**

  `integer`, default: `1` — The minimum delay in seconds between scraping pages.

* **`proxy`**

  `object` — Optional proxy setting for enhanced security based on account location.

* **`scrapeReviews.appId`**

  `string` — The Google Play ID of the app (found in the URL as the ?id= parameter).

**Example:**

```
{
  "action": "scrapeReviews",
  "scrapeReviews.appId": "",
  "count": 10,
  "cursor": "",
  "proxy": {},
  "minDelay": 1,
  "maxDelay": 3
}
```

#### runsResponseSchema

- **Type:**`object`

* **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

````markdown
## CodeMaster Google Play Store Reviews Scraper

### Overview

The CodeMaster Google Play Store Reviews Scraper is tailored to efficiently gather detailed reviews from Google Play Store apps. Designed for scalability and precision, this tool ensures you capture every piece of user feedback without the manual hassle.

### Features

- **Comprehensive Review Extraction**: Automatically scrape reviews, pulling in data like usernames, review texts, scores, dates, and more.
- **Customizable Settings**: Configure the scraper to target specific apps by their URLs, adjusting parameters to fit your data collection needs.
- **Efficient Data Management**: Easily handle and analyze the extracted data through Apify's robust storage solutions.

### Getting Started

To maximize the scraper's effectiveness, follow these setup steps:

1. **Configure Your Scraper**: Input the Google Play Store app URL and any other required parameters.
2. **Run the Scraper**: Launch the scraper either from the Apify platform or programmatically via the API.
3. **Access the Results**: Post-run, review and download your data directly from the Apify storage.

### Sample Output

Here's what you can expect as output from scraping Google Play Store reviews:

```json
{
    "id": "5c1a23f8-b034-4f59-9106-efd32abc8402",
    "userName": "John Doe",
    "userImage": "https://play-lh.googleusercontent.com/a-/AC_YtZua93Hx0inWiZQ_jm3RWkyZLYyN7tF1zrXHyfF3vc",
    "date": "2024-04-25T19:36:05.307Z",
    "score": 5,
    "scoreText": "5",
    "url": "https://play.google.com/store/apps/details?id=com.spotify.music&reviewId=5c1a23f8-b034-4f59-9106-efd32abc8402",
    "text": "Absolutely love this app for streaming music, especially with the high-quality audio option.",
    "thumbsUp": 72
}


````

### Integration and Extensibility

Integrate the scraper's output with your CRM or data analysis tools seamlessly, leveraging JSON, CSV, HTML, or Excel formats for comprehensive data utilization.

### Support and Updates

Stay up to date with the latest features and ensure smooth operation with our dedicated support team ready to assist you.

***

### Connect with Quick Life Solutions:

- **YouTube**: [Visit our channel](https://www.youtube.com/@CodeMaster-421)
- **Instagram**: [Follow us on Instagram](https://www.instagram.com/quicklifesolutionsofficial/)
- **AI Newsletter**: [Subscribe to our newsletter](https://sendfox.com/quicklifesolutions)
- **Free Consultation**: [Book a free consultation call](https://tidycal.com/quicklifesolutions/free-consultation)
- **More Tools**: [Explore our Apify actors](https://apify.com/dainty_screw)
- **Discord**: [Raise a Support ticket here](https://discord.gg/2WGj2PDmHb)
- **Contact Email**: <codemasterdevops@gmail.com>

Leverage the CodeMaster Google Play Store Reviews Scraper to transform your data collection strategy and gain insightful feedback from app users efficiently.

```
```
