# iOS App Store Reviews Scraper: 150+ Countries, $0.50/1k (`transparent_meteorite/app-store-reviews`) Actor

Apple App Store reviews at $0.50 per 1,000, verified by 85 passing tests. Review text, stars, app version, date, votes, plus rating, rating count, price, genre and release notes. 150+ countries, keyword search, date and star filters, delta mode.

- **URL**: https://apify.com/transparent_meteorite/app-store-reviews.md
- **Developed by:** [Detroit Web Agent - Open Data](https://apify.com/transparent_meteorite) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **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 Reviews Scraper: iOS Ratings, Reviews and App Details

![iOS App Store Reviews Scraper: features, price and a real output row](https://api.apify.com/v2/key-value-stores/9BAn0msnxToXlD9TO/records/sf-app-store-reviews-banner-10140227.png)

[![Run it free on Apify](https://api.apify.com/v2/key-value-stores/9BAn0msnxToXlD9TO/records/sf-cta.png)](https://console.apify.com/actors/8y9xfYCc1Vw62BPh4/input)

| Price per 1,000 rows | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
| **This Actor** | **$0.50** | **$0.50** | **$0.50** | **$0.50** |

<sub>Pay per event, no monthly rental. Prices read from each Actor's public Apify pricing on 2026-10-13; check the Pricing tab for the current figure.</sub>

![iOS App Store Reviews Scraper sample output table from a real run](https://api.apify.com/v2/key-value-stores/9BAn0msnxToXlD9TO/records/sf-app-store-reviews-output-10140227.png)

**Video walkthrough:** [Watch the 1-minute demo on YouTube](https://youtu.be/19JJp1E99fk)

![App Store Reviews Scraper output preview: real run results as a table](https://open-data-actors.pages.dev/img/app-store-reviews.png)

- **In short:** App Store Reviews Scraper (Apify actor `transparent_meteorite/app-store-reviews`) returns Apple App Store reviews and app details from Apple's public feeds for any iOS app, in 150+ country stores.
- **Who it is for:** app product managers, ASO and review-monitoring teams, market researchers, competitive analysts.
- **Input:** app IDs or App Store URLs (also as Start URLs), or search terms; one country or many, max items cap; countries, max reviews per app, sort, since date, star filters, delta mode.
- **Output:** review title and text, stars, app version, date, author, votes; plus app name, average rating, rating count, price, genre, release notes.
- **Price:** $0.0005 per review, $0.002 per app details row, $0.00005 per run start. Pay per result, no subscription; Apify's free plan credit covers a first test.
- **Limits:** Apple's public feed can return up to about 500 reviews per app per country when it is serving them. At the moment Apple's feed is returning empty, so the actor falls back to the reviews shown on the app's own page (about 8 per app).

**Key facts**

- Actor name: App Store Reviews Scraper
- Actor ID: `transparent_meteorite/app-store-reviews`
- Store page: https://apify.com/transparent_meteorite/app-store-reviews
- Data source: Apple's public App Store RSS and lookup feeds
- Pricing model: pay per event (`apify-actor-start` $0.00005, `review-returned` $0.0005, `app-details` $0.002)
- Output formats: JSON, CSV, Excel, XML, HTML table, RSS (Apify dataset)
- Access: Apify Console, REST API, JavaScript/Python clients, schedules, webhooks, Apify MCP server
- Login or third-party API key needed: no, only an Apify account
- Also known as: App Store reviews scraper, iOS reviews API, Apple app ratings export, app review monitoring
- Maintainer: transparent_meteorite (independent developer)
- Last updated: 2026-10-07

Export Apple App Store reviews for any iOS app in 150+ countries, with star rating, app version, date and helpful votes, plus an app details row (average rating, rating count, price, genre, developer, release notes, size). $0.50 per 1,000 reviews.

### Run in 30 seconds

1. Open the [prefilled run](https://console.apify.com/create-task-from-example/7x6MOq5RbTrUXfWFN) (free Apify account; it creates a saved task with a working input).
2. Press **Start**. The input is small on purpose, so the first run is quick and costs a few cents at most.
3. Open the **Output** tab, switch to Table view, download as CSV, Excel or JSON.

Prefilled input:

```json
{
  "appIds": [
    "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"
  ],
  "searchResultsPerTerm": 1,
  "countries": [
    "us"
  ],
  "maxReviewsPerApp": 3,
  "sortBy": "mostrecent",
  "minRating": 1,
  "maxRating": 5,
  "includeAppDetails": true,
  "deltaMode": false,
  "stateKey": "default",
  "maxApps": 50
}
```

Ready-made presets by use case (each opens as a saved task you can edit):

- [Spotify negative reviews for product teams](https://console.apify.com/create-task-from-example/TFy9GNElAEpPoOLBp)
- [Meditation app competitor reviews](https://console.apify.com/create-task-from-example/my1x9gGAZzb73n7BS)

### Why choose this over alternatives

- Reviews and app details from Apple's public feeds across 150+ country stores.
- Review text, stars, app version, date and votes, plus rating, rating count, price, genre and release notes.
- Keyword search, date and star filters, and a delta mode that only returns new reviews.
- $0.50 per 1,000 reviews.

| Check | This actor |
|---|---|
| Automated tests on the current build | 85 passed, 0 failed |
| Price | $0.0005 per review |

Measured 2026-10-09 (source: this actor's own test suite and runs).

### What does it do

- Takes **app IDs, App Store links or search keywords** (for example `324684580`, `https://apps.apple.com/us/app/duolingo-learn-languages/id570060128` or `meditation`).
- Collects the **most recent or most helpful customer reviews** from every App Store country you choose: title, full text, stars, app version reviewed, date, helpful votes, author nickname and a link.
- Adds an **app details row** per app and country: average rating, total ratings, current-version rating, price and currency, genre, developer, version, version release date, release notes, size, age rating, languages and icon.
- Filters by **date** (`2026-09-01` or `7 days`) and **star rating** (for example 1-2 stars for complaints), and in **delta mode** returns only reviews you have not seen before.
- Uses only Apple's public endpoints (iTunes Search/Lookup API and the public customer reviews feed). No login, no cookies, no proxies.

### Why use it

- **Version-level insight**: every review carries the app version, so you can see what a release did to sentiment.
- **Multi-country in one run**: compare `us`, `gb`, `de`, `jp`, `br` and 150+ other storefronts side by side.
- **Pay only for what you keep**: date, star and delta filters run before charging. Filtered-out reviews are free.
- **Built for monitoring**: schedule it daily with delta mode and get only new reviews, ideal for Slack alerts, support triage or ASO dashboards.
- **App details included**: rating average and count, price and release notes per country, so one dataset covers reviews and market data.
- **Fast**: the default input (2 apps, 100 reviews) finishes in about 10 seconds.

### How to use

1. Open the actor and paste app IDs or App Store links into **App IDs or App Store URLs** (or type keywords into **Search terms**).
2. Pick **Countries** (default `us`) and **Max reviews per app and country** (up to 500 when Apple's feed is serving; about 8 from the app-page fallback).
3. Optional: set **Only reviews since**, a star range, or turn on **Delta mode** for scheduled monitoring.
4. Click **Start**. Open the **Reviews** or **App details** view, or download JSON, CSV or Excel.

#### Input example

```json
{
  "appIds": ["https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580", "570060128"],
  "searchTerms": ["meditation"],
  "countries": ["us", "gb", "de"],
  "maxReviewsPerApp": 200,
  "sinceDate": "30 days",
  "minRating": 1,
  "maxRating": 5,
  "includeAppDetails": true,
  "deltaMode": false
}
```

### Output

Every row has a `type`: `review` or `app`. Sample from a real run (2026-10-07, default input):

| App | Stars | Version | Date (UTC) | Title | Review |
|---|---|---|---|---|---|
| Spotify: Music and Podcasts | 3 | 9.1.88 | 2026-10-06 19:53 | UI is | Not good |
| Spotify: Music and Podcasts | 5 | 9.1.88 | 2026-10-06 19:38 | Wonderful | My phone screen is off and Spotify plays in the background saving my battery power. |
| Spotify: Music and Podcasts | 5 | 9.1.88 | 2026-10-06 19:25 | W app | Absolutely W app with sum knarly (with a k) beats |
| Spotify: Music and Podcasts | 5 | 9.1.88 | 2026-10-06 19:16 | Peak | Peak |
| Spotify: Music and Podcasts | 1 | 9.1.88 | 2026-10-06 19:11 | 4 ads to listen to one song! | 4 ads to listen to one song! |

App details rows from the same run:

| App | Avg rating | Ratings | Price | Genre | Developer | Version | Size (MB) | Age rating |
|---|---|---|---|---|---|---|---|---|
| Spotify: Music and Podcasts | 4.77 | 42,467,237 | 0 | Music | Spotify | 9.1.88 | 298.8 | 12+ |
| Duolingo: Language Lessons | 4.72 | 5,493,736 | 0 | Education | Duolingo | 7.142.0 | 491.3 | 4+ |

One review item:

```json
{
  "type": "review",
  "appId": "324684580",
  "appName": "Spotify: Music and Podcasts",
  "country": "us",
  "reviewId": "14635597246",
  "title": "Ads",
  "text": "i get ads after almost every song i play",
  "rating": 2,
  "version": "9.1.88",
  "authorName": "sebby :3",
  "date": "2026-10-06T19:57:17Z",
  "voteSum": 0,
  "voteCount": 0,
  "url": "https://apps.apple.com/us/app/id324684580?see-all=reviews"
}
```

Every review row also has `userName` and `userUrl` (the reviewer's name and Apple profile link when Apple provides one), `isHelpful`, `reviewTitleLength` and `reviewTextLength`. App rows also include `bundleId`, `developerId`, `genres`, `currency`, `formattedPrice`, `ratingAverageCurrentVersion`, `ratingCountCurrentVersion`, `currentVersionReleaseDate`, `releaseDate`, `releaseNotes`, `sizeBytes`, `minimumOsVersion`, `languages`, `description`, `iconUrl` and `url`. A `RUN_SUMMARY` record in the key-value store lists per-app counts, stop reasons, skipped inputs and apps not found in a country.

#### Sample output (real run, truncated)

```json
{
  "type": "review",
  "appId": "324684580",
  "appName": "Spotify: Music and Podcasts",
  "country": "us",
  "reviewId": "11994640656",
  "title": "Favorite app ever",
  "text": "I personally love this app. I have had it for over 4 years, and it’s been an app I use daily. If you are thinking about getting it, for sure get the Premium plan, no ads, endless skipping of songs, sh",
  "rating": 5,
  "version": null,
  "authorName": "l.lacx",
  "date": "2024-11-26T17:10:59.000Z",
  "voteSum": 0,
  "voteCount": 0,
  "url": "https://apps.apple.com/us/app/id324684580?see-all=reviews"
}
```

### Pricing

Pay per event, no subscription:

| Event | Price |
|---|---|
| Actor start | $0.00005 per run |
| Review returned | $0.0005 per review ($0.50 per 1,000) |
| App details row | $0.002 per app and country |

**Worked example**: 5 apps in 3 countries with 200 reviews each = 3,000 reviews ($1.50) + 15 app rows ($0.03) + start = **about $1.53**. A daily delta monitor on one app that sees 40 new reviews a day costs about **$0.02 per day**. Set a maximum cost per run in Apify and the actor stops cleanly at the limit.

Apify's free plan includes $5 of monthly platform credit, which covers about 8,500 reviews with this actor (at $0.0005 per result, plus small platform usage). Paid Apify plans get the same data with no monthly cap; scheduled daily runs stay cheap because each run only returns new records.

### Use cases

- Product managers: export recent reviews to find bugs and feature requests.
- ASO and review monitoring: track ratings by country store and star range.
- Competitive analysis: compare reviews of competing apps.
- Alerts: `deltaMode` returns only reviews not seen in earlier runs.

### Use from AI agents (MCP, ChatGPT, Claude, Perplexity)

App Store Reviews Scraper works as a tool for AI assistants through the official Apify MCP server. Add this server URL to any MCP client (Claude Desktop, Claude Code, Cursor, ChatGPT connectors, VS Code):

```
https://mcp.apify.com/?actors=transparent_meteorite/app-store-reviews
```

Claude Desktop / Cursor config:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?actors=transparent_meteorite/app-store-reviews",
      "headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
    }
  }
}
```

Then ask in plain language, for example: "How do I export App Store reviews for an app?"

Call it directly over HTTP (runs the actor and returns the dataset items in one request):

```bash
curl -X POST "https://api.apify.com/v2/acts/transparent_meteorite~app-store-reviews/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"appIds": ["https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580", "570060128"], "countries": ["us"], "maxReviewsPerApp": 50, "includeAppDetails": true}'
```

Python:

```python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("transparent_meteorite/app-store-reviews").call(run_input={"appIds": ["https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580", "570060128"], "countries": ["us"], "maxReviewsPerApp": 50, "includeAppDetails": true})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

The same actor works in n8n, Make, Zapier, LangChain, LlamaIndex and CrewAI through their Apify integrations.

#### Questions people ask

**How do I export App Store reviews for an app?**
Paste the App Store URL or numeric app ID into appIds and pick countries; reviews come back as JSON or CSV.

**Can I monitor new reviews only?**
Yes, turn on deltaMode and schedule the actor.

**How many reviews can I get?**
Apple's public feed can return up to about 500 reviews per app per country when it is serving them. At the moment Apple's feed is returning empty, so the actor falls back to the reviews shown on the app's own page (about 8 per app).

### Use it from code

Small real input: it returns only a couple of rows, so a test run costs very little (see Pricing). Set the `APIFY_TOKEN` environment variable to your token from [Apify Console > Settings > API & Integrations](https://console.apify.com/settings/integrations).

**Python** (`pip install apify-client`)

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input = {'appIds': ['324684580'],
 'countries': ['us'],
 'maxReviewsPerApp': 2,
 'includeAppDetails': True,
 'sortBy': 'mosthelpful'}
run = client.actor("transparent_meteorite/app-store-reviews").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

**JavaScript / Node.js** (`npm install apify-client`)

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
  "appIds": [
    "324684580"
  ],
  "countries": [
    "us"
  ],
  "maxReviewsPerApp": 2,
  "includeAppDetails": true,
  "sortBy": "mosthelpful"
};
const run = await client.actor('transparent_meteorite/app-store-reviews').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**curl** (runs the actor and returns the dataset items in one call)

```bash
curl -X POST "https://api.apify.com/v2/acts/transparent_meteorite~app-store-reviews/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"appIds": ["324684580"], "countries": ["us"], "maxReviewsPerApp": 2, "includeAppDetails": true, "sortBy": "mosthelpful"}'
```

### Send results to Google Sheets, Zapier, Make or n8n

- **Google Sheets:** every run's dataset has a CSV export link: `https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=true` (the dataset ID is on the run's Storage tab). In Sheets, `=IMPORTDATA("<that link>")` loads it. Anyone with the link can read that dataset, so share it carefully. To export to Google Drive automatically, use the Google Drive integration on the actor's Integrations tab.
- **Zapier:** in the Apify app, use the trigger **Finished Actor run** (or **Run Actor** as an action) with `transparent_meteorite/app-store-reviews`, then **Fetch dataset items** and pass the rows to Google Sheets, a CRM or Slack.
- **Make:** the Apify app has **Watch Actor Runs**, **Run an Actor** and **Get Dataset Items** modules; connect them to any Make app.
- **n8n:** install the Apify node (`@apify/n8n-nodes-apify`) and use **Run an Actor and get dataset**, or the **On new Apify event** trigger.
- **Schedule and webhooks:** create a Task with your input, add a Schedule in Apify Console, and add a webhook if you want a call when a run finishes.

See the [Apify integrations docs](https://docs.apify.com/platform/integrations) for setup steps.

### Integrations

- **API**: `POST https://api.apify.com/v2/acts/transparent_meteorite~app-store-reviews/run-sync-get-dataset-items?token=YOUR_TOKEN` with the input JSON as body.
- **JavaScript**:
  ```js
  import { ApifyClient } from 'apify-client';
  const client = new ApifyClient({ token: 'YOUR_TOKEN' });
  const run = await client.actor('transparent_meteorite/app-store-reviews').call({ appIds: ['570060128'], countries: ['us'], maxReviewsPerApp: 100 });
  const { items } = await client.dataset(run.defaultDatasetId).listItems();
  ```
- **Python**:
  ```python
  from apify_client import ApifyClient
  client = ApifyClient("YOUR_TOKEN")
  run = client.actor("transparent_meteorite/app-store-reviews").call(run_input={"appIds": ["570060128"], "countries": ["us"]})
  items = client.dataset(run["defaultDatasetId"]).list_items().items
  ```
- **Make, Zapier, n8n**: use the Apify app or node, choose this actor, map `items` to Google Sheets, Slack, Airtable or your CRM.
- **Schedules and webhooks**: schedule a daily run with `deltaMode: true` and a webhook on `ACTOR.RUN.SUCCEEDED` to push only new reviews to your team.

New to Apify? [Create a free account](https://console.apify.com/sign-up?fpr=rnmakg) and run this Actor in under a minute. Some links are affiliate links.

### Related actors

More tools from the same publisher that fit this workflow:

- [Company News Monitor](https://apify.com/transparent_meteorite/company-news-monitor): brand and keyword news alerts
- [Hacker News Scraper](https://apify.com/transparent_meteorite/developer-signals): Hacker News, npm and PyPI developer signals
- [Company Enrichment by Domain](https://apify.com/transparent_meteorite/company-enrichment-by-domain): enrich a domain with socials, emails and tech stack
- [Website Email Extractor](https://apify.com/transparent_meteorite/website-contact-extractor): pull emails, phones and socials from each business website
- [Website Tech Stack Detector](https://apify.com/transparent_meteorite/website-tech-stack-detector): detect the CMS, frameworks and hosting behind any site
- [Local Business Leads](https://apify.com/transparent_meteorite/local-business-leads): find local businesses with no website from OpenStreetMap, a cheap complement to Maps data

Use from AI agents: every actor here is callable through the Apify MCP server (mcp.apify.com) and our open-data-actors MCP endpoint.

### FAQ

#### Is it legal to scrape App Store reviews?

The actor reads only data Apple publishes openly through its public iTunes Search/Lookup API and public customer reviews feed. No login, no private data, no rate-limit evasion. Reviews are public content; use them in line with Apple's terms and your local laws (for example, do not use nicknames to profile individuals).

#### How many reviews can I get per app?

Apple's public feed serves up to 500 reviews per app, per country and per sort order (10 pages of 50) when it is available. Right now Apple's feed is returning empty, so the actor falls back to the reviews shown on the app's page (about 8 per app). Use several countries, or both sort orders, to get more. For ongoing coverage, run daily in delta mode and your history grows with every run.

#### Does it support Google Play?

No. This actor is focused on the Apple App Store and uses Apple's public endpoints only. Google Play is not included.

#### Which countries are supported?

All 150+ App Store storefronts with two-letter codes (us, gb, de, fr, jp, br, in, au, ca, mx and more). `uk` is accepted as `gb`. Unknown codes are skipped with a warning.

#### How does delta mode work?

With `deltaMode: true` the actor saves the review IDs it returned in a named key-value store (`app-store-reviews-delta`, key = `stateKey`). Next run, those reviews are skipped and not charged. Use a different `stateKey` per monitor.

#### Can I get only negative reviews?

Yes. Set `minRating: 1` and `maxRating: 2`. Only matching reviews are saved and charged.

#### Why are some reviews in another language?

Each country store holds reviews written by its users, so a `us` store can include Spanish or other languages. Pick the countries that match your market.

#### What if an app is not available in a country?

It is listed in `RUN_SUMMARY.notFound` and no app details row is charged. Reviews are attempted and usually return empty.

### More questions

**How do I export App Store reviews to CSV?**
Add the app ID or App Store URL to `appIds`, run, and export the dataset as CSV or Excel.

**How many reviews can I get?**
Apple's public feed can return up to about 500 reviews per app per country when it is serving them. At the moment Apple's feed is returning empty, so the actor falls back to the reviews shown on the app's own page (about 8 per app).

**Can I get only 1- and 2-star reviews?**
Yes. Set `minRating` and `maxRating`.

**Can I monitor new reviews only?**
Yes, with `deltaMode`.

**Does it cover Google Play?**
No, Apple App Store only.

### How this compares

Apple's review feeds are public. This actor reads them for many apps and country stores at once, adds app details, filters by stars and date, and supports an "only new" mode. Paid app-intelligence tools add download estimates and long review history; this actor returns what Apple's public feed exposes.

### Limits

- Up to 500 reviews per app, country and sort order when Apple's public feed is serving (currently it returns empty, so the app-page fallback gives about 8). Older reviews beyond that are not available from public endpoints.
- Star ratings without written text are not in the public feed; the average and count are in the app details row.
- Search uses the first country in your list and returns up to 20 apps per term.

### Reliability

Last 30 days, measured from Apify run records (all runs, including our own daily health checks): **21 of 21 finished runs succeeded (100.0%)**, median run time **2.9 s** (90th percentile 9.7 s). Aborted runs (0) are not counted.

Updated 2026-10-11 automatically every week from the run history. Report any failure on the Issues tab with the run URL.

### More resources

- Guide & examples: [mamoo85.github.io/open-data-actors/app-store-reviews.html](https://mamoo85.github.io/open-data-actors/app-store-reviews.html)
- Sample output and example input on GitHub (masked sample CSV): [github.com/Mamoo85/apify-actor-samples/app-store-reviews](https://github.com/Mamoo85/apify-actor-samples/tree/main/app-store-reviews)

### Changelog

- 2026-10-07: Launched: reviews and app details, keyword search, country stores, star and date filters, delta mode.
- 2026-10-09: README example link fixed; Output tab table view; video walkthrough.
- 2026-10-09: Input sections, status messages, examples.
- 2026-10-09: Branding: maintained by Detroit Web Agent - Open Data.
- 2026-10-13: Added a Run in 30 seconds section with a one-click prefilled run link, saved use-case presets and Store title and search description reworded around how buyers search.
- 2026-10-13: New inputs: Start URLs (App Store links), Single country shortcut, Max items in total. New review fields: userName, userUrl, isHelpful, reviewTitleLength, reviewTextLength. Prices unchanged.

### Support

Open an issue on the actor's **Issues** tab with your run ID and input. Feature requests are welcome.

### Works well with

Other actors from Detroit Web Agent - Open Data that pair with this one:

- [Company News Monitor](https://apify.com/transparent_meteorite/company-news-monitor): news about the app's company next to its reviews.
- [Company Enrichment by Domain](https://apify.com/transparent_meteorite/company-enrichment-by-domain): company details for the developers behind the apps you track.
- [Website Contact Extractor](https://apify.com/transparent_meteorite/website-contact-extractor): contacts from app developers' websites.
- [Amazon Product Search](https://apify.com/transparent_meteorite/amazon-product-search): Amazon search results and prices next to Shopify store and app data.

### What the free plan gets you

Free plan: about 10,000 reviews from your $5 monthly Apify credit (at $0.0005 each, today's price); default settings return about 10 reviews. App details are a separate $0.002 per app. Need more? Upgrade your Apify plan or set a higher result limit in the input.

### Need more than the data?

This actor is built by [Detroit Web Agent](https://www.detroitwebagent.com/?utm_source=apify\&utm_medium=readme\&utm_campaign=app-store-reviews), a small Detroit studio that builds websites, lead pages and simple data tools for small businesses. If you want these results turned into a working website, a landing page or a CRM import, or you need a field this actor does not cover yet, open an issue on the Issues tab or visit [detroitwebagent.com](https://www.detroitwebagent.com/?utm_source=apify\&utm_medium=readme\&utm_campaign=app-store-reviews).

***

Built and maintained by **Detroit Web Agent - Open Data** (Detroit, Michigan). Questions, bugs or a field you need: open an issue on this Actor's Issues tab and we will reply there.

# Actor input Schema

## `appIds` (type: `array`):

Apple app IDs (324684580 or id324684580) or App Store links such as https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580. Malformed entries are skipped, listed in the run summary and never charged.

## `startUrls` (type: `array`):

Optional. App Store links in Apify's request-list format, for example https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580. Works the same as App IDs; the country in the link is not used, set Countries instead.

## `searchTerms` (type: `array`):

Find apps by keyword with Apple's search API (for example 'meditation' or 'budget tracker'), searched in the first country. The top results per term are added to the app list.

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

Two-letter country codes such as us, gb, de, fr, jp, br, in. Each country has its own reviews, so every app is fetched once per country. 'uk' is accepted as gb.

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

Optional shortcut for one storefront, for example us or de. It is added to the Countries list above.

## `maxReviewsPerApp` (type: `integer`):

Cap on reviews returned per app per country. Apple publishes up to 500 recent reviews per app, country and sort order (10 pages of 50). Set 0 to return only app details.

## `maxItems` (type: `integer`):

Optional hard cap on all rows returned in the run (reviews plus app-detail rows). Leave empty for no cap beyond the per-app limit; you are only charged for rows returned.

## `sortBy` (type: `string`):

Most recent (default, works with Since date and delta mode) or most helpful.

## `searchResultsPerTerm` (type: `integer`):

How many top search results to take per search term.

## `sinceDate` (type: `string`):

Skip reviews older than this. A date such as 2026-09-01, or a relative period such as '7 days', '2 weeks' or '3 months'. Paging stops at the first older review, so old pages are never fetched.

## `minRating` (type: `integer`):

Only return reviews with at least this many stars (1-5). Use with Maximum star rating, for example 1-2 to collect complaints only.

## `maxRating` (type: `integer`):

Only return reviews with at most this many stars (1-5).

## `includeAppDetails` (type: `boolean`):

Add one row per app and country with average rating, rating count, price, genre, developer, current version, release notes, size and more.

## `deltaMode` (type: `boolean`):

Remember review IDs between runs and return only reviews not returned before. Ideal for scheduled daily monitoring: you pay only for new reviews.

## `stateKey` (type: `string`):

Name of the saved state used by delta mode. Use different names for independent monitors. Leave empty to use the name default.

## `maxApps` (type: `integer`):

Safety cap on the number of apps processed in one run.

## Actor input object example

```json
{
  "appIds": [
    "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"
  ],
  "countries": [
    "us"
  ],
  "maxReviewsPerApp": 10,
  "sortBy": "mostrecent",
  "searchResultsPerTerm": 1,
  "minRating": 1,
  "maxRating": 5,
  "includeAppDetails": true,
  "deltaMode": false,
  "maxApps": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `apps` (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 = {
    "appIds": [
        "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"
    ],
    "countries": [
        "us"
    ],
    "maxReviewsPerApp": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("transparent_meteorite/app-store-reviews").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 = {
    "appIds": ["https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"],
    "countries": ["us"],
    "maxReviewsPerApp": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("transparent_meteorite/app-store-reviews").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 '{
  "appIds": [
    "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"
  ],
  "countries": [
    "us"
  ],
  "maxReviewsPerApp": 10
}' |
apify call transparent_meteorite/app-store-reviews --silent --output-dataset

```

## MCP server setup

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

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/8y9xfYCc1Vw62BPh4/builds/x0dsCPCU6M3XYQJVe/openapi.json
