# App Review Intelligence Monitor (`datapilot/app-review-intelligence-monitor`) Actor

Google Play Review Intelligence Scraper\* collects app reviews from Google Play and performs automated sentiment analysis, keyword extraction, rating trends, and review insights. Extracts ratings, authors, app versions, replies, installs, and engagement data, generating actionable summaries

- **URL**: https://apify.com/datapilot/app-review-intelligence-monitor.md
- **Developed by:** [Data Pilot](https://apify.com/datapilot) (community)
- **Categories:** AI, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 scraped results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## App Review Intelligence Monitor

📱 **App Review Intelligence Monitor** is a powerful Apify Actor designed to extract, analyze, and monitor comprehensive **App Review** data from Google Play Store. This tool provides detailed **App Review** sentiment analysis, keyword extraction, and intelligence metrics. Whether you're monitoring brand reputation, analyzing user feedback, or conducting market research, the App Review Intelligence Monitor delivers actionable **App Review** insights efficiently.

With native Google Play Store integration, advanced NLP-based sentiment analysis, keyword extraction, rating trend analysis, and PPE billing support, the App Review Intelligence Monitor ensures comprehensive analysis of **App Review** data. It focuses on key **App Review** metrics including sentiment scores, keyword patterns, and temporal trends, making it an essential tool for **App Review** research and reputation management.

---

### 📋 Table of Contents

- [Features](#-features)
- [How It Works](#-how-it-works)
- [Input](#-input)
- [Output](#-output)
- [Technical Stack](#-technical-stack)
- [Data Fields](#-data-fields)
- [Sentiment Analysis](#-sentiment-analysis)
- [Analysis Metrics](#-analysis-metrics)
- [Use Cases](#-use-cases)
- [Quick Start](#-quick-start)
- [Configuration](#-configuration)
- [Performance](#-performance)
- [Billing](#-billing)
- [Important Notes](#-important-notes)
- [Keywords](#-keywords)
- [Changelog](#-changelog)
- [Support](#-support)

---

### 🔥 Features

- **Google Play Store Integration** – Direct extraction of **App Review** from official Google Play Store.
- **Review Fetching** – Fetches reviews sorted by newest first for current sentiment.
- **Sentiment Analysis** – Advanced NLP-based sentiment classification (positive/negative/neutral).
- **Sentiment Scoring** – Quantitative sentiment score based on word signals.
- **Confidence Scoring** – Confidence metric for sentiment predictions.
- **Keyword Extraction** – Automatically extracts top keywords from each **App Review**.
- **Rating Analysis** – Correlates star ratings with sentiment analysis.
- **Rating Labels** – Categorizes ratings (excellent, good, average, poor, terrible).
- **Author Information** – Captures reviewer username and profile information.
- **Thumbs Up Tracking** – Tracks helpful votes on **App Review**.
- **Version Information** – Records app version reviewed.
- **Reply Detection** – Captures developer replies to **App Review**.
- **Date Tracking** – Records review publication date.
- **App Metadata** – Extracts app title, developer, category, install count.
- **Summary Analysis** – Generates comprehensive analysis summaries.
- **Sentiment Distribution** – Calculates sentiment percentages.
- **Rating Trends** – Tracks rating evolution over time.
- **Top Reviews** – Identifies top positive and negative reviews.
- **Keyword Trending** – Extracts and ranks top keywords.
- **PPE Billing Integration** – Pay-per-event billing per **App Review** analyzed.
- **Charge Limit Handling** – Respects user's maximum PPE charge limits.
- **Proxy Support** – Apify residential proxy support for reliability.
- **Real-Time Dataset Push** – Pushes results to Apify Dataset with metadata.
- **Detailed Logging** – Comprehensive logging of charges and progress.
- **Asyncio-Friendly** – Non-blocking async/await architecture.

---

### ⚙️ How It Works

The App Review Intelligence Monitor takes a Google Play Store app ID as input and fetches reviews using the google-play-scraper library. For each review, it performs advanced sentiment analysis using NLP techniques with positive/negative word matching and confidence scoring. Keywords are extracted, rated, and analyzed. All reviews are optionally charged via PPE billing. A comprehensive summary including sentiment distribution, rating trends, and top reviews is generated and pushed to the dataset.

**Key Processing Steps:**

1. **Input Parsing** – Accept app ID and configuration
2. **Proxy Setup** – Configure Apify residential proxy if available
3. **App Metadata Fetch** – Retrieve app information (title, developer, rating)
4. **Review Fetching** – Fetch reviews using google-play-scraper with pagination
5. **Sentiment Analysis** – Analyze sentiment for each review
6. **Keyword Extraction** – Extract and rank keywords per review
7. **Rating Classification** – Categorize ratings by quality labels
8. **Review Processing** – Process all review fields and metadata
9. **PPE Charging** – Charge per-event for each review
10. **Charge Limit Check** – Check if user's PPE limit reached
11. **Summary Generation** – Build comprehensive analysis summary
12. **Dataset Push** – Push individual reviews and summary
13. **Reporting** – Log final statistics and completion

**Key Benefits:**

- Monitor **App Review** sentiment in real-time
- Track user satisfaction and sentiment trends
- Identify common issues via keyword analysis
- Respond to high-impact negative reviews
- Track improvement efforts over time
- Understand user needs and requests
- Conduct competitive app analysis
- Guide product development priorities

---

### 📥 Input

The Actor accepts the following input parameters:

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `googlePlayId` | string | required | Google Play Store app ID (e.g., "com.example.app") |
| `reviewCount` | integer | `300` | Maximum **App Review** to fetch and analyze (1-2000) |
| `pushIndividualReviews` | boolean | `true` | Push individual **App Review** records |
| `pushSummary` | boolean | `true` | Push comprehensive analysis summary |
| `useApifyProxy` | boolean | `true` | Enable Apify residential proxies |
| `apifyProxyGroups` | array | `["RESIDENTIAL"]` | Proxy group configuration |

**Example Input:**

```json
{
  "googlePlayId": "com.instagram.android",
  "reviewCount": 500,
  "pushIndividualReviews": true,
  "pushSummary": true,
  "useApifyProxy": true
}
````

**Small Sample:**

```json
{
  "googlePlayId": "com.spotify.music",
  "reviewCount": 100
}
```

**Summary Only:**

```json
{
  "googlePlayId": "com.example.app",
  "reviewCount": 200,
  "pushIndividualReviews": false,
  "pushSummary": true
}
```

***

### 📤 Output

The Actor pushes **App Review** records with the following structure:

**Individual Review Record:**

| Field | Type | Description |
|-------|------|-------------|
| `store` | string | Store (Google Play) |
| `app_id` | string | App ID |
| `review_id` | string | Unique review ID |
| `author` | string | Reviewer username |
| `rating` | integer | Star rating (1-5) |
| `rating_label` | string | Quality label (excellent/good/average/poor/terrible) |
| `review` | string | Review text (500 chars max) |
| `sentiment` | string | Sentiment classification (positive/negative/neutral) |
| `sentiment_score` | integer | Quantitative sentiment score |
| `confidence` | float | Sentiment confidence (0-1) |
| `pos_signals` | integer | Positive word count |
| `neg_signals` | integer | Negative word count |
| `keywords` | string | Comma-separated top keywords |
| `thumbs_up` | integer | Helpful votes |
| `app_version` | string | App version reviewed |
| `date` | string | Review publication date (YYYY-MM-DD) |
| `reply` | string | Developer reply if available |
| `scraped_at` | string | ISO 8601 scrape timestamp |

**Summary Record:**

Comprehensive analysis including:

- App metadata and overall rating
- Total reviews analyzed
- Average rating across all reviews
- Rating distribution
- Sentiment summary with percentages
- Top 20 keywords
- Rating trend over time by month
- Top 5 positive reviews with highest engagement
- Top 5 negative reviews with highest engagement

**Example Individual Review Record:**

```json
{
  "store": "Google Play",
  "app_id": "com.instagram.android",
  "review_id": "gp:AOqpTOU5K...",
  "author": "John Smith",
  "rating": 5,
  "rating_label": "excellent",
  "review": "Amazing app! Love the new features and the interface is so clean. Really impressed with how smooth it runs on my phone.",
  "sentiment": "positive",
  "sentiment_score": 8,
  "confidence": 0.92,
  "pos_signals": 5,
  "neg_signals": 0,
  "keywords": "amazing, love, features, clean, interface, smooth, impressed",
  "thumbs_up": 234,
  "app_version": "14.2.1",
  "date": "2025-02-10",
  "reply": "Thanks for your feedback!",
  "scraped_at": "2025-02-14T12:00:00"
}
```

**Example Summary Record:**

```json
{
  "type": "SUMMARY",
  "summary": {
    "app_info": {
      "store": "Google Play",
      "app_id": "com.instagram.android",
      "title": "Instagram",
      "developer": "Meta Platforms, Inc.",
      "rating": 4.2,
      "total_ratings": "45000000",
      "installs": "1,000,000,000+",
      "category": "Social",
      "version": "14.2.1",
      "updated": "2025-02-10"
    },
    "total_reviews": 287,
    "avg_rating": 4.15,
    "sentiment_summary": {
      "positive": 189,
      "negative": 67,
      "neutral": 31,
      "positive_pct": 65.9,
      "negative_pct": 23.3,
      "neutral_pct": 10.8
    },
    "top_keywords": [
      "features", "interface", "performance", "bug", "crash", "ads",
      "update", "love", "hate", "app", "version", "smooth", "lag",
      "battery", "drain", "glitch", "loading", "speed", "user", "experience"
    ],
    "rating_trend": [
      {
        "month": "2025-01",
        "count": 142,
        "avg_rating": 4.1,
        "positive": 92,
        "negative": 35
      }
    ],
    "top_positive_reviews": [
      {
        "author": "Jane Doe",
        "rating": 5,
        "review": "Best social app ever! The new reels feature is fantastic...",
        "date": "2025-02-14"
      }
    ],
    "top_negative_reviews": [
      {
        "author": "Bob Johnson",
        "rating": 1,
        "review": "Keeps crashing after last update. Very disappointed...",
        "date": "2025-02-12"
      }
    ]
  }
}
```

***

### 🧰 Technical Stack

- **App Store Integration:** google-play-scraper library
- **NLP/Sentiment:** Custom word-based sentiment analysis
- **Keyword Extraction:** Counter and regex for text processing
- **Trend Analysis:** Temporal analysis with grouping
- **Async:** asyncio for non-blocking operations
- **Proxy:** Apify Proxy with RESIDENTIAL configuration
- **Logging:** Apify Actor logging system
- **Platform:** Apify Actor serverless environment
- **Billing:** Apify PPE (Pay-Per-Event) system

### 📊 Sentiment Analysis

#### **Methodology**

The Actor uses multi-factor sentiment analysis:

1. **Positive Words** – Detects words like "great", "excellent", "amazing", "love", "perfect"
2. **Negative Words** – Detects words like "bad", "terrible", "bug", "crash", "slow"
3. **Rating Correlation** – 4-5 stars boost positive, 1-2 stars boost negative
4. **Confidence Scoring** – Higher signal count = higher confidence
5. **Stop Word Filtering** – Ignores common words

#### **Sentiment Categories**

- **Positive**: More positive than negative signals
- **Negative**: More negative than positive signals
- **Neutral**: Equal positive/negative or insufficient signals

#### **Examples**

Positive sentiment:

```
Text: "Love this app! Works perfectly and is so easy to use."
Signals: 3 positive (love, perfectly, easy), 0 negative
Score: +3
Sentiment: Positive (Confidence: 0.95)
```

Negative sentiment:

```
Text: "Terrible app. Keeps crashing and is very buggy."
Signals: 0 positive, 3 negative (terrible, crashing, buggy)
Score: -3
Sentiment: Negative (Confidence: 0.92)
```

Neutral sentiment:

```
Text: "It's an app. Does what it says."
Signals: 0 positive, 0 negative
Score: 0
Sentiment: Neutral (Confidence: 0.50)
```

***

### 📊 Analysis Metrics

#### **Sentiment Distribution**

Percentage breakdown of positive, negative, neutral reviews showing overall user satisfaction.

#### **Rating Trend**

Monthly trends showing:

- Review count per month
- Average rating evolution
- Positive/negative sentiment per month

#### **Top Keywords**

Most frequently mentioned topics in reviews indicating common themes (features, bugs, performance, etc.).

#### **Top Reviews**

Most helpful positive and negative reviews showing what users appreciate or dislike most.

***

### 🎯 Use Cases

- **Reputation Monitoring** – Monitor brand reputation via **App Review** sentiment
- **Sentiment Analysis** – Track user satisfaction over time
- **Issue Identification** – Identify common problems via keyword analysis
- **Product Feedback** – Understand feature requests and improvements
- **Competitive Analysis** – Compare your app with competitors
- **Review Response** – Identify and respond to high-impact reviews
- **Trend Tracking** – Track sentiment changes and improvements
- **Quality Assurance** – Identify bugs and issues from user feedback
- **Marketing Intelligence** – Use positive reviews for marketing
- **Development Priorities** – Prioritize features based on user mentions
- **Crisis Management** – Detect reputation crises early
- **Performance Monitoring** – Track performance complaints
- **User Satisfaction** – Measure overall user happiness
- **Engagement Analysis** – Track helpful vote counts
- **Release Impact** – Analyze impact of app updates

***

### 🚀 Quick Start

#### **1. Prepare Input**

Go to Apify Console and enter:

```json
{
  "googlePlayId": "com.instagram.android",
  "reviewCount": 500,
  "pushIndividualReviews": true,
  "pushSummary": true,
  "useApifyProxy": true
}
```

#### **2. Run the Actor**

Click **Start** button. The Actor will:

- Connect to Google Play Store
- Fetch app metadata
- Fetch reviews with pagination
- Analyze sentiment for each
- Extract keywords
- Charge per review
- Generate summary
- Push to Dataset

#### **3. Monitor Progress**

Console shows:

```
[Google Play] Fetching reviews for: com.instagram.android
  App: Instagram | Rating: 4.2
  Fetched 487 reviews
✅ [CHARGED] Review saved | Author: John Smith | Sentiment: positive | Total charged: 1
✅ [CHARGED] Review saved | Author: Jane Doe | Sentiment: positive | Total charged: 2
...
🎉 Done! Total reviews pushed: 487 | Total charged: 487
```

#### **4. View & Download Results**

- **Results Tab**: All **App Review** records + summary
- **Export**: JSON, CSV, Excel
- **Filter**: By sentiment or rating
- **Sort**: By engagement or date

***

### ⚙️ Configuration

#### **Review Count**

Small sample (50 reviews):

```json
{
  "reviewCount": 50
}
```

Comprehensive (500+ reviews):

```json
{
  "reviewCount": 500
}
```

#### **Output Options**

Individual reviews only:

```json
{
  "pushIndividualReviews": true,
  "pushSummary": false
}
```

Summary only:

```json
{
  "pushIndividualReviews": false,
  "pushSummary": true
}
```

***

### 📈 Performance

#### **Processing Speed**

- \~1-2 seconds per review analysis
- \~50-100 reviews per minute
- \~500 reviews per 10-15 minutes

#### **Resource Usage**

- Memory: ~80-150MB
- CPU: ~30-40% during processing
- Network: ~1-3MB per run
- API calls: Depends on review count

#### **Limitations**

- Google Play rate limits apply
- Maximum ~500-1000 reviews typical per run
- Sentiment analysis is statistical, not perfect
- Some reviews may not be in English

***

### 💰 Billing

#### **PPE (Pay-Per-Event) Billing**

- **Event Name:** "scraped-result"
- **Charge:** 1 credit per **App Review** analyzed
- **Billing Trigger:** Per review analyzed and pushed
- **Limit Handling:** Stops when user's PPE limit reached

#### **Cost Calculation**

```
Total Cost = Number of Reviews × 1 credit
Example: 250 reviews = 250 credits
```

***

### ⚠️ Important Notes

#### **Legal & Compliance**

- **Terms of Service**: Complies with Google Play ToS
- **Fair Use**: Respects rate limits and platform policies
- **User Privacy**: Only analyzes publicly available reviews
- **Attribution**: Respects reviewer and developer content
- **Rate Limiting**: Includes appropriate delays

#### **Data Quality**

- **Completeness**: Most reviews captured
- **Accuracy**: Sentiment analysis based on keyword matching
- **Currency**: Fresh data from Google Play
- **Availability**: Depends on app and review availability
- **Verification**: Always verify findings independently

#### **Best Practices**

- Use residential proxies
- Respect Google Play rate limits
- Verify sentiment analysis results
- Review top keywords for accuracy
- Follow up with app teams on issues
- Use for actionable intelligence
- Respect user privacy
- Follow app store guidelines

### 📦 Changelog

#### v1.0.0 (February 2025)

**Initial Release:**

- Google Play Store app review fetching
- Pagination support for large review sets
- Sentiment analysis (positive/negative/neutral)
- Sentiment scoring algorithm
- Confidence metric calculation
- Keyword extraction with ranking
- Rating label classification (excellent/good/average/poor/terrible)
- Author information capture
- Thumbs up/helpful vote tracking
- App version information
- Developer reply detection
- Review date tracking
- App metadata extraction (title, developer, rating, installs)
- Comprehensive summary generation
- Sentiment distribution percentages
- Rating trend analysis over time
- Top positive and negative reviews
- Top keywords extraction and ranking
- PPE billing per review
- Charge limit detection and stopping
- Configurable review count limit
- Apify proxy support
- Real-time Dataset push
- Detailed progress logging
- Comprehensive error handling

***

### 🧑‍💻 Support & Feedback

- **Issues:** Submit via Apify console with app ID
- **Documentation:** Check Actor details page
- **Community:** Apify forum discussions
- **Feature Requests:** Suggest improvements
- **Bug Reports:** Include app ID and error details

### 📄 License & Legal

**Terms of Use:**

- Use for legitimate business and research
- Respect Google Play ToS and policies
- Respect reviewer and developer content
- Don't harass or target individuals
- Verify all findings independently
- Comply with applicable laws
- Use data ethically and responsibly

**Disclaimer:**
App Review Intelligence Monitor is provided as-is for research purposes. Users are responsible for compliance with Google Play ToS and applicable laws. Always verify analysis with original sources.

***

### 🎉 Get Started Today

**Deploy now for **App Review** analysis!**

Use for:

- 📊 Sentiment Analysis
- 🔍 Reputation Monitoring
- 💡 Issue Identification
- 📈 Trend Tracking
- 🎯 Feedback Collection

**Perfect for:**

- App Developers
- Product Managers
- Marketing Teams
- Brand Managers
- Data Analysts

***

**Last Updated:** February 2025\
**Version:** 1.0.0\
**Status:** Production Ready\
**Platform:** Apify Actor\
**Architecture:** Async/Await\
**Python:** 3.8+\
**Library:** google-play-scraper\
**Billing:** Pay-Per-Event (PPE)

***

### 📚 Related Tools

- YouTube Comment Scraper
- Meta Threads Scraper
- Business Social Media Finder
- Developer Tools Scraper

**Your complete Apify-powered **App Review** intelligence solution!** 🚀✨

***

### 📱 App Review Excellence

This Actor is optimized for **App Review** analysis with:

- ✅ Google Play Store integration
- ✅ Advanced sentiment analysis
- ✅ Keyword extraction
- ✅ Trend analysis
- ✅ Summary generation
- ✅ PPE billing support
- ✅ Real-time Dataset push
- ✅ Error recovery
- ✅ Production-ready code

**Analyze app reviews effortlessly!** 💎🚀

# Actor input Schema

## `googlePlayId` (type: `string`):

e.g. com.whatsapp  |  com.spotify.music  |  com.instagram.android

## `reviewCount` (type: `integer`):

Maximum number of reviews to collect.

## `pushIndividualReviews` (type: `boolean`):

Each review becomes a separate dataset row.

## `pushSummary` (type: `boolean`):

Push sentiment summary, rating trend, and top keywords.

## `useApifyProxy` (type: `boolean`):

Recommended to avoid rate limiting.

## `apifyProxyGroups` (type: `array`):

RESIDENTIAL works best.

## Actor input object example

```json
{
  "googlePlayId": "com.whatsapp",
  "reviewCount": 300,
  "pushIndividualReviews": true,
  "pushSummary": true,
  "useApifyProxy": true,
  "apifyProxyGroups": [
    "RESIDENTIAL"
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "googlePlayId": "com.whatsapp"
};

// Run the Actor and wait for it to finish
const run = await client.actor("datapilot/app-review-intelligence-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "googlePlayId": "com.whatsapp" }

# Run the Actor and wait for it to finish
run = client.actor("datapilot/app-review-intelligence-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "googlePlayId": "com.whatsapp"
}' |
apify call datapilot/app-review-intelligence-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datapilot/app-review-intelligence-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "App Review Intelligence Monitor",
        "description": "Google Play Review Intelligence Scraper* collects app reviews from Google Play and performs automated sentiment analysis, keyword extraction, rating trends, and review insights. Extracts ratings, authors, app versions, replies, installs, and engagement data, generating actionable summaries",
        "version": "0.0",
        "x-build-id": "7wgUfSDH0YDc1jLde"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datapilot~app-review-intelligence-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datapilot-app-review-intelligence-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/datapilot~app-review-intelligence-monitor/runs": {
            "post": {
                "operationId": "runs-sync-datapilot-app-review-intelligence-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/datapilot~app-review-intelligence-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-datapilot-app-review-intelligence-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "googlePlayId"
                ],
                "properties": {
                    "googlePlayId": {
                        "title": "Google Play App ID",
                        "type": "string",
                        "description": "e.g. com.whatsapp  |  com.spotify.music  |  com.instagram.android"
                    },
                    "reviewCount": {
                        "title": "Reviews to fetch",
                        "minimum": 10,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Maximum number of reviews to collect.",
                        "default": 300
                    },
                    "pushIndividualReviews": {
                        "title": "Push individual reviews to dataset",
                        "type": "boolean",
                        "description": "Each review becomes a separate dataset row.",
                        "default": true
                    },
                    "pushSummary": {
                        "title": "Push analysis summary to dataset",
                        "type": "boolean",
                        "description": "Push sentiment summary, rating trend, and top keywords.",
                        "default": true
                    },
                    "useApifyProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Recommended to avoid rate limiting.",
                        "default": true
                    },
                    "apifyProxyGroups": {
                        "title": "Proxy Groups",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "RESIDENTIAL works best.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "RESIDENTIAL",
                                "DATACENTER",
                                "GOOGLE"
                            ]
                        },
                        "default": [
                            "RESIDENTIAL"
                        ]
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
