# App Store Review Analysis: Complaints, Bugs & Feature Requests (`kramer_konversations/app-store-review-insights`) Actor

Analyze any iPhone app's App Store reviews in seconds: top complaint themes, feature requests, bug and crash reports, and which version made ratings drop, by country. Official Apple feeds. $0.045 per app report.

- **URL**: https://apify.com/kramer_konversations/app-store-review-insights.md
- **Developed by:** [Jackson Kramer](https://apify.com/kramer_konversations) (community)
- **Categories:** Marketing, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/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 Store Review Insights: complaints, feature requests & bugs from any iPhone app

**Stop reading hundreds of reviews.** Give this Actor an app name or App Store link. In about 15 seconds you get a report on what users complain about, what they ask for, what's breaking, and which version made ratings drop.

It works on **any** iOS app, yours or a competitor's, across **any** App Store country.

### What you get (real output, Duolingo, 1,000 US + UK reviews, Oct 2026)

> **Duolingo: Learn Languages: 1000 recent reviews, average 4.07★ (17% are 1–2★).** Top complaint themes: "day streak" (7), "free trial" (7), "language learning" (6), "family plan" (5). 2.3% of reviews mention a bug, crash, or login problem. 8 feature requests found, e.g. "I wish it told me more colors and numbers."

Each report includes:

| Section | What it tells you |
|---|---|
| **Complaint themes** | The most common phrases in 1–2★ reviews, each with a real quote |
| **Feature requests** | Sentences like "please add…", "I wish…", "bring back…", most-upvoted first |
| **Bug & crash reports** | Crashes, freezes, login failures, errors, plus the % of reviews that mention them |
| **Ratings by version** | Average ★ per app version, with **regressions flagged** (a drop of 0.5★ or more between versions) |
| **Ratings by country** | Compare markets side by side |
| **Weekly trend** | Is sentiment getting better or worse? |
| **Praise themes** | What happy users love (good material for your App Store description) |

You get it as **structured JSON** (for your pipeline or AI agent) **and** as a **Markdown report** (to paste into Notion, Slack, or a doc).

### Just need the raw reviews?

[**App Store Reviews Scraper**](https://apify.com/kramer_konversations/app-store-reviews-scraper) exports the reviews themselves (rating, text, version, date) for any app and country, with star filters. $0.08 per 1,000 reviews.

### Also tracking App Store search ranks?

- [**App Store Keyword Rank Tracker**](https://apify.com/kramer_konversations/app-store-keyword-rank-tracker): where any app ranks for your keywords, by country, with rank changes over time. $0.0009 per check.

### Who it's for

- **Indie iOS developers:** find out what to fix next, and catch a bad release fast
- **Product managers:** a weekly voice-of-customer digest with no manual reading
- **Competitor research:** find the features users beg a competitor for, then build them
- **ASO and marketing:** pull the exact words happy users use
- **AI agents:** one call returns clean, ready-to-reason-over insights

### How to use

1. Add one or more **apps**: a name (`Duolingo`), an App Store URL, or a numeric ID (`570060128`). **Use the URL or ID when you need an exact match.** Name search only accepts results whose name actually matches.
2. Pick **countries** (`us`, `gb`, `ca`, `au`, `de`…).
3. Run. Results appear in the Dataset (JSON/CSV/Excel). Each app's Markdown report is saved in the key-value store as `REPORT-<appId>`.

Turn on **"Also output every raw review"** if you want the individual reviews too.

#### Sample input

```json
{ "apps": ["Duolingo", "https://apps.apple.com/us/app/facebook/id284882215"], "countries": ["us", "gb"] }
```

### Pricing

Pay only for what you get:

- **$0.045 per app report**, covering up to 500 reviews per country
- **$0.00008 per raw review row** (only if you turn raw reviews on)

No report is charged if an app isn't found or has no reviews. A typical run (1 app, 2 countries) costs **$0.045**.

### Data source & limits

- Uses **Apple's official public App Store feeds** (search, lookup, and customer-review RSS). No logins, no proxies, no scraping of private data.
- Apple returns up to **500 most recent reviews per country per app**. For more coverage, add countries.
- Theme detection is tuned for **English**. Reviews in other languages are still counted, but their themes may be noisier.
- Reviewer names are included in raw rows only as Apple publishes them. Please handle them responsibly.

### Support

Found a bug or want a feature? Open an issue on the Actor page. Issues are usually answered within a day.

# Actor input Schema

## `apps` (type: `array`):

App names ("Duolingo"), App Store URLs, or numeric app IDs. One insights report per app.

## `countries` (type: `array`):

Two-letter App Store country codes, e.g. us, gb, ca, au, de. Apple serves up to 500 recent reviews per country.

## `maxReviewsPerCountry` (type: `integer`):

Most recent reviews to analyze per country (Apple's limit is 500).

## `includeReviews` (type: `boolean`):

Adds each review as its own row (charged per review). Off by default: most people only need the report.

## Actor input object example

```json
{
  "apps": [
    "Duolingo"
  ],
  "countries": [
    "us",
    "gb"
  ],
  "maxReviewsPerCountry": 500,
  "includeReviews": false
}
```

# Actor output Schema

## `insights` (type: `string`):

No description

## `allResults` (type: `string`):

No description

## `markdownReports` (type: `string`):

No description

# 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 = {
    "apps": [
        "Duolingo"
    ],
    "countries": [
        "us",
        "gb"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kramer_konversations/app-store-review-insights").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 = {
    "apps": ["Duolingo"],
    "countries": [
        "us",
        "gb",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("kramer_konversations/app-store-review-insights").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 '{
  "apps": [
    "Duolingo"
  ],
  "countries": [
    "us",
    "gb"
  ]
}' |
apify call kramer_konversations/app-store-review-insights --silent --output-dataset

```

## MCP server setup

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

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/NHB2MvDvM83cnlP2c/builds/QHUS25BRl00YTZTM8/openapi.json
