Short answer: type the app's name into App Store Reviews, an Apify Actor, and set maxRating: 2. It finds the app through Apple's public iTunes Search API, reads Apple's customer-review feed, and returns only the reviews that match your star, keyword and date filters, as JSON. It costs $0.004 per review returned. The reviews it reads to find the matches are free. You need no Apple account and no API key.
What it found for Spotify (measured 31 October 2026)
Input: Spotify, US store, 1–2 stars, mentioning ads, subscription or crash, 10 reviews.
| Measure | Result |
|---|---|
| Rows returned | 10, all from app version 9.1.94, all written 29 October 2026 |
| 1-star / 2-star | 7 / 3 |
| Mention ads | 9 of 10 |
| Mention price, Premium or paying | 7 of 10 |
| Mention crashes | 1 of 10 |
| Wall time, name to JSON | 42 seconds |
| Largest row | 1,026 bytes |
Typical titles: "Way too many ads", "Money hungry", "Once Good, Gone Bad". For Spotify this week the complaint is ads, not stability.
Inputs
| Field | Example | What it does |
|---|---|---|
appStoreUrlsOrIds |
["Spotify"] |
App name, App Store URL, numeric id or bundle id. Mix freely; an entry that is not found is skipped with a reason |
maxRating |
2 |
Complaints only. Use minRating: 4 for praise |
keywords |
["crash", "ads"] |
Keep reviews whose title or text mentions any word |
reviewsSince |
"2026-10-01" |
Reaction to one release |
countries |
["us", "gb", "jp"] |
Apple keeps reviews per storefront |
Why a plain feed reader is not enough
Apple's review feed can return an empty page with HTTP 200 for an app that has thousands of reviews. On 7 October 2026 we tested 20 popular apps on the US store. The newest-first order answered for 4 apps and the most-helpful order answered for a different 4. No app answered in both. Of the 12 apps that answered in neither, 11 answered in the UK, Canada, Australia or Germany. So this Actor tries the other order and those countries before it reports "no reviews", and each row records which feed it came from in feedSort. Apple serves at most 500 reviews per app per country (10 pages of 50), so add countries for more.
Name lookup uses the Apple iTunes Search API, which is public and documented. The feed measurements are our own, from Actor runs on 7 October 2026.
Call it from code or from an AI agent
curl -X POST "https://api.apify.com/v2/acts/appdata-labs~app-store-reviews/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"appStoreUrlsOrIds": ["Spotify"], "maxRating": 2, "keywords": ["ads", "subscription", "crash"], "maxReviewsPerApp": 10}'
This is the exact call behind the table above. It uses Apify's run-sync-get-dataset-items endpoint, which returns the rows when the run ends. Agents that use the Apify MCP server can find and call the Actor as a tool. Rows are about 1 KB each, so an agent can read 50 at once.
Each row has appTitle, rating, title, text, version, country, updatedAt, voteCount, feedSort, reviewId, appId and appBundleId.
FAQ
Does it work for Google Play?
No. It reads Apple's App Store only.
Can I get every review an app ever had?
No. Apple's feed serves the latest 500 per country. Add countries to get more.
Do I pay for reviews that the filter removed?
No. You pay only for rows returned. A filter that matches nothing returns no rows and costs nothing.
What does it need from me?
An app name or link. No Apple ID, no login, no key.
Can it watch my own app?
Yes. Schedule it daily with reviewsSince set to yesterday and send the 1-star rows to Slack.
Ready to run: 1-star complaints for any app · crash and bug reports · subscription complaints

Top comments (0)