# App Review Intelligence (App Store + Google Play) (`fuze/app-review-intelligence`) Actor

Pull App Store + Google Play reviews for any app and get AI-clustered themes, sentiment, feature requests and bug signals in one report. · More no-code data tools → datatools-hub.vercel.app

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

## Pricing

from $154.00 / 1,000 app analyzeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## App Review Intelligence (App Store + Google Play)

**Stop reading thousands of app reviews by hand. Get the themes, bugs and feature requests — across BOTH stores — in one AI report.**

Give it an app on the **Apple App Store and/or Google Play**. It pulls the recent reviews from both, then uses OpenAI to cluster them into the themes that actually matter — praises, complaints, feature requests and bugs — each with representative quotes, a suggested action, sentiment, and overall rating stats. One combined, cross-platform report.

Most review scrapers dump raw reviews from a single store. This one does **both platforms in one product** and ships the *insight*, not the raw pile.

![App Review Intelligence (App Store + Google Play) — input and sample output](https://datatools-hub.vercel.app/actor-shots/app-review-intelligence.png)

### Quick start

1. **Fill in the input** — set the fields in the input tab (prefilled with a working example).
2. **Click Start** — the Actor runs and writes one record per item to the dataset.
3. **Get your data** — export to **JSON, CSV or Excel**, or pull it via the API.

```json
// input
{ "appStore": "310633997", "googlePlay": "com.whatsapp", "country": "us", "maxReviewsPerPlatform": 150 }
```

```json
// per-theme output
{
  "title": "App crashes after the latest update",
  "type": "bug",
  "share": 18,
  "sentiment": "negative",
  "representativeQuotes": ["Keeps crashing since the update", "Won't open on my phone anymore"],
  "suggestedAction": "Investigate the crash introduced in the latest release; prioritise a hotfix."
}
```

Plus a run **SUMMARY**: `averageRating`, `ratingDistribution`, `overallSentiment`, `summary`, `topBugs`, `topFeatureRequests`, per-platform review counts.

***

### Use cases

- **Product teams** — turn weeks of review-reading into a prioritised theme list with suggested actions, every sprint.
- **Competitive research** — profile a competitor's app: what users love, hate and ask for.
- **Pre-launch / due diligence** — assess an app's real user sentiment and top issues fast.
- **Agent tool** — via the Apify MCP server, an agent can summarise any app's reviews on demand.

***

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `appStore` | `string` | — | App Store numeric id or URL. |
| `googlePlay` | `string` | — | Google Play package name or URL. |
| `country` | `string` | `us` | Store country code. |
| `maxReviewsPerPlatform` | `integer` | `150` | Recent reviews to fetch per platform. |
| `model` | `string` | `gpt-4o-mini` | OpenAI model. |

Provide at least one of `appStore` / `googlePlay`. Give both to get a true cross-platform picture.

***

### Output

One dataset record per theme (`title`, `type`, `share`, `sentiment`, `representativeQuotes[]`, `suggestedAction`), plus the overall report in the run `SUMMARY`.

### Pricing

Pay-per-event: one **`app-analyzed`** event per app analysed (fetches + clusters reviews across both stores).

### Environment variables

| Variable | Required | Purpose |
|---|---|---|
| `OPENAI_API_KEY` | **Yes** | Powers the theme clustering. |

### Notes

- Reviews come from the public App Store and Google Play endpoints. Each platform fails independently — if one is unavailable, the report is built from the other.
- Fetch more reviews for deeper themes; the model samples the most recent reviews up to a token budget.

### License

ISC.

### Related actors

- [AI Social Listening & Sentiment](https://apify.com/fuze/ai-social-listening) — Add the AI intelligence layer on top of any social scraper: sentiment, themes, share of
- [Google Reviews Insights (AI)](https://apify.com/fuze/google-reviews-insights) — Turns Google reviews into concrete insights for a business and its competitors: top
- [Signal Radar — AI Account Intelligence & ICP Scoring](https://apify.com/fuze/signal-radar) — Turn company domains into ICP-scored, signal-tagged account intelligence from public

# Actor input Schema

## `appStore` (type: `string`):

Apple App Store numeric id or apps.apple.com URL (e.g. 310633997 or the WhatsApp App Store URL).

## `googlePlay` (type: `string`):

Google Play package name or play.google.com URL (e.g. com.whatsapp).

## `country` (type: `string`):

Store country code (us, gb, se, de, ...).

## `maxReviewsPerPlatform` (type: `integer`):

How many recent reviews to fetch per platform.

## `model` (type: `string`):

Override the model (default gpt-4o-mini).

## Actor input object example

```json
{
  "country": "us",
  "maxReviewsPerPlatform": 150
}
```

# Actor output Schema

## `themes` (type: `string`):

Clustered review themes in the default dataset.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("fuze/app-review-intelligence").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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call fuze/app-review-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fuze/app-review-intelligence"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/AvgcHgtxWywJGwSb8/builds/eDNURtfb9HOEwUUKL/openapi.json
