Pricing
Pay per usage
App Store Reviews Scraper
Scrape Apple App Store (iOS) reviews by app id, app URL, and country without a login. Returns user name, star rating, title, review text, app version, and date, with an optional app summary row. Walks pages up to your chosen limit.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Scrape Apple App Store (iOS) reviews by app id, app URL, or country storefront with no login and no API key required. Pull user names, star ratings, review titles, full review text, dates, and developer responses into clean structured rows, with automatic pagination up to the limit you set.
What it does
- Reviews for any iOS app in any country storefront you list. Each review carries the user name, star rating, title, full text, edited flag, developer response, and date.
- Multi country in one run. Each app is scraped once per country code you provide, so you can compare sentiment across markets in a single job.
- App summary row (optional). Each app can lead with one record holding its name, developer, category, average rating, total rating count, current version, and icon.
- Automatic pagination. Pages are walked for you until your
maxReviewsPerApplimit is reached or the storefront runs out of reviews. - Flexible input. Accepts a raw numeric app id or a full App Store link, with the storefront read straight from the link when present.
- No login, no password, no API key.
Use cases
- App reputation monitoring. Track new reviews and ratings for your own app across every market you ship in and feed them into alerts or dashboards.
- Release impact analysis. Watch how sentiment shifts after a release and read developer responses alongside user feedback.
- Competitor analysis. Pull reviews for the apps you compete with to understand what users praise and complain about.
- Market research. Aggregate reviews across categories and countries to spot demand, pain points, and feature gaps.
- Voice-of-customer pipelines. Feed review text into your own summarization, sentiment, or topic-modeling workflows.
Input
| Field | Type | Description |
|---|---|---|
appIds | array | iOS app ids or App Store links to pull reviews from. Accepts a numeric id (389801252) or a full app URL. Required. |
countries | array | Two-letter storefront codes, for example us, gb, de, in. Each app is scraped once per code. A country embedded in an App Store URL overrides this list for that app. Default us. |
sort | string | Order reviews by mostRecent or mostHelpful. Default mostRecent. |
maxReviewsPerApp | integer | Cap on reviews returned per app per country. Pages are walked until this is reached or reviews run out. Default 100. |
includeAppInfo | boolean | When on, each app emits one summary row (name, developer, category, average rating, rating count, version, icon) before its reviews. Summary rows are not billed. Default true. |
concurrency | integer | How many app and country pairs to process in parallel. Default 5. |
proxyConfig | object | Proxy configuration. Residential is the default and recommended option for the most reliable results. |
Example input
{"appIds":["389801252","https://apps.apple.com/gb/app/example-app/id123456789"],"countries":["us","gb"],"sort":"mostRecent","maxReviewsPerApp":200,"includeAppInfo":true}
Output
Each review is one row, with keys ordered by importance (identity, then rating, then content, then metadata):
{"type":"review","reviewId":"1234567890","appId":"389801252","country":"us","userName":"example_user","rating":5,"title":"Works great","text":"An example review body describing the experience.","edited":false,"developerResponse":"Thanks for the feedback, we are glad you enjoy the app.","createdAt":"2026-06-01T12:00:00Z","scrapedAt":"2026-06-18T09:00:00.000Z"}
Key fields:
ratingis the star rating, 1 to 5.titleandtextare the review headline and body.developerResponseholds the developer's public reply when one exists, otherwise null.editedis true when the review was edited after first posting.createdAtis the review date;scrapedAtis when this row was collected.
When includeAppInfo is on, each app also emits one summary row carrying appName, developer, averageRating, ratingCount, category, currentVersion, icon, bundleId, and appUrl.
FAQ
Do I need an account, login, or API key? No. The scraper reads the public review data directly. You only need your Apify account to run it.
How much does it cost? You are billed per review row returned. App summary rows are not billed. Check the pricing on this actor's page for the current per-result rate.
How many reviews can I get per app?
You set the cap with maxReviewsPerApp. The scraper walks pages automatically and returns up to your limit or as many reviews as the storefront exposes for that app and country, whichever comes first.
Can I scrape multiple apps and countries at once?
Yes. Pass several entries in appIds and several codes in countries. Every app and country pair is processed, with concurrency controlling how many run in parallel.
How fast is it? Throughput depends on how many reviews you request, the number of app and country pairs, and your concurrency setting. Pages are fetched politely to stay reliable, so larger jobs take proportionally longer.
Why use a residential proxy? Residential proxies give the most reliable results and are the default. You can change the proxy configuration in the input if you prefer.
Can I get reviews in other languages or markets?
Yes. Use the countries list to target different storefronts. Each storefront returns reviews from that market.
Related actors
Part of the scraper suite by goat255:
- Google Play Reviews Scraper - the Android equivalent: app reviews from Google Play.
