App Store Reviews Scraper — iOS Customer Reviews
Pricing
from $2.00 / 1,000 review scrapeds
App Store Reviews Scraper — iOS Customer Reviews
Scrape customer reviews for any iOS app from the Apple App Store. Multiple apps, 175+ country storefronts, sorted by most recent or most helpful. Clean JSON with rating, text, version and helpfulness votes — perfect for ASO, competitor research and sentiment analysis.
Pricing
from $2.00 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
Oaida Adrian
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape customer reviews for any iOS app from the Apple App Store — across 175+ country storefronts, sorted by most recent or most helpful. No login, no API key, no proxies. Pass app IDs or App Store URLs and get one clean JSON item per review, ready for dashboards, sentiment models and ASO analysis.
Built for product, ASO and research teams who need structured, labeled review data (rating + text) at scale.
Why this Actor
- Zero configuration — no Apple ID, no credentials, no proxy budget. Paste app IDs, press run.
- 175+ storefronts — scrape the same app across
us,gb,de,roand any other country code to compare markets in one run. - Labeled, LLM-ready output — every item pairs a 1–5 star rating with the full review text, so it drops straight into sentiment training sets and analytics.
- Resilient by design — an app with no reviews in a given storefront is logged and skipped, never crashing the batch. Scraping 20 apps × 5 countries returns every review it can reach.
- Scheduled-friendly — the Actor is stateless: run it on a daily schedule to keep a rolling feed of the latest reviews for monitoring and alerting.
How it works
Give it a list of numeric app IDs (e.g. 310633997) or full App Store URLs. For each app and each requested country the Actor reads Apple's public App Store web API — the same catalog API that powers the reviews page on apps.apple.com, reached through Apple's own relative proxy path (/api/apps/...) so no authentication token is needed — and outputs one dataset item per review with the rating, title, body and author. The legacy iTunes RSS feed is kept as a defensive fallback: if the web API ever returns nothing for an app/country, the Actor tries the RSS path before logging the pair as skipped.
Set maxReviewsPerApp to cap volume and sortBy to choose most-recent or most-helpful ordering.
Input
{"apps": ["310633997", "https://apps.apple.com/us/app/whatsapp-messenger/id310633997"],"countries": ["us", "gb", "de"],"sortBy": "mostRecent","maxReviewsPerApp": 100}
| Field | Type | Description |
|---|---|---|
apps | array | Numeric App Store IDs or full app URLs (required) |
countries | array | Storefront country codes (us, gb, de, ro, …); default ["us"] |
sortBy | string | mostRecent or mostHelpful |
maxReviewsPerApp | integer | Max reviews per app per country (input schema caps at 500) |
Both numeric app IDs and full App Store URLs work — mix and match freely.
Output (one item per review)
{"appId": "310633997","appName": "WhatsApp Messenger","developer": "WhatsApp Inc.","country": "us","reviewId": "13657831289","title": "WhatsApp not bad","content": "Since the last update I don't get any notifications...","rating": 1,"appVersion": null,"author": "Ed Bradway “Dad Warrior”","updatedAt": "2026-01-21T04:48:38Z","voteSum": null,"voteCount": null}
A worked example: running the input above against 310633997 (WhatsApp) on the us storefront returns one item per review — with real review text, the reviewer's star rating and the review date.
Use cases
- 📈 ASO & product — track how each release lands, catch bug-report spikes and notification/crash complaints early.
- 🔎 Competitor research — mine competitors' 1-star reviews for feature gaps and churn drivers.
- 🤖 Sentiment analysis / AI — clean labeled text (rating + review) for training models and building topic dashboards.
- 🌍 Market comparison — diff sentiment across storefronts to spot region-specific issues before they escalate.
- 🛠️ Agencies — automated review monitoring and weekly digests for every client app.
Run it from the API
Trigger the Actor and get results in one call:
curl -X POST "https://api.apify.com/v2/acts/darknezz~app-store-reviews-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"apps":["310633997"],"countries":["us","gb"],"maxReviewsPerApp":50}'
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("darknezz/app-store-reviews-scraper").call(run_input={"apps": ["310633997"], "countries": ["us", "gb"], "maxReviewsPerApp": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["rating"], item["title"])
Scheduling: attach an Apify Schedule (e.g. daily) to keep a dataset of the latest reviews continuously refreshed for your monitoring dashboard or alerting pipeline.
Pricing
Pay per event: a small fee per review scraped, plus Apify's standard platform events (actor start + dataset item). No subscription — scrape 50 reviews or 50,000 and pay only for what you run.
FAQ
How many reviews can I get per app? The web API serves reviews in pages of 20; the Actor keeps paging until maxReviewsPerApp is reached or the storefront has no more reviews (input schema caps at 500 per app/country). Scraping multiple countries multiplies coverage.
Do I need an Apple developer account or API key? No. The data comes from Apple's own public App Store web API — nothing to configure.
Can I scrape reviews in other languages? Yes — each storefront returns reviews in that market's language. Add the country codes you care about to countries.
Is this against Apple's ToS? The Actor reads the same public reviews Apple renders on apps.apple.com. You are responsible for how you use the data (e.g. GDPR/CCPA when processing reviewer names).
What if an app has no reviews in a country? That app/country pair is logged and skipped; every other combination in the run still returns normally.
Do I need a proxy? No. The Actor reads Apple's public web API directly over HTTPS — no proxy or residential IP budget required.
What counts as one charge event? One review scraped = one review-scraped event. An app with zero reviews in a storefront costs nothing.
Limitations
- The web API does not expose the app version or helpfulness votes that the old RSS feed used to carry —
appVersion,voteSumandvoteCountare alwaysnullin current output. - Sorting is best-effort. The web API accepts
sortBy(RECENT/HELPFUL) but currently returns the same ordering for all sort values (verified 2026-08-13 across several apps). The parameter is still sent so behaviour improves automatically if Apple starts honouring it. - Source history: since mid-2026 Apple's legacy RSS review feed (
itunes.apple.com/.../rss/customerreviews/...) returns an empty feed for every app/format/origin. This Actor was re-sourced (build 0.2) to Apple's App Store web API; the RSS path remains as a defensive fallback. - Rate limiting: the web API applies a per-IP bucket ("API capacity exceeded", HTTP 429). The Actor paces requests and retries with backoff; very large batches may take longer than the old RSS feed did.
- Reviews are limited to what Apple exposes publicly on the storefront; iOS in-app prompt ratings appear only if the developer opts them into the public feed.
- The
updatedAttimestamp is Apple's, in ISO 8601 UTC. - Deleting an app from a storefront removes its reviews; the run logs the app/country pair as skipped.