
App Store Reviews Scraper
hipersoft/app-store-reviews-scraper
Scrape customer reviews and star ratings for any Apple App Store app. Get reviewer name, rating, title, full review text, app version, helpful votes, date and country — across multiple storefronts. One clean row per review as JSON, CSV or Excel.
Total users
2Monthly users
1Total runs
48Per review scraped
$0.0002Last rebuilt
Oct 26, 2026Overview
Extract customer reviews and star ratings for any app on the Apple App Store. Paste one or more app links (or IDs), pick your countries, and get one clean row per review — reviewer name, star rating, title, full review text, app version, helpful votes, date and storefront. Export to JSON, CSV or Excel, or pull straight from the API.
Perfect for app store optimization (ASO), competitor monitoring, product feedback analysis, sentiment tracking, release-by-release quality checks, and building review datasets for dashboards or LLMs.
What you get
One flat, ready-to-use record per review:
| Field | Description |
|---|---|
appId |
Apple app ID |
appName |
App title |
country |
Storefront the review came from |
reviewId |
Unique review ID |
userName |
Reviewer's display name |
rating |
Star rating (1–5) |
title |
Review title |
text |
Full review text |
version |
App version reviewed |
votesUp / votesTotal |
"Helpful" vote counts |
updatedAt |
Review date (ISO 8601) |
sortedBy |
mostrecent or mosthelpful |
collectedAt |
When the row was scraped |
How to use
1. Add apps
Paste App Store links, numeric IDs, or bundle IDs:
{
"appUrls": [
"https://apps.apple.com/us/app/whatsapp-messenger/id310633997",
"284882215",
"net.whatsapp.WhatsApp"
],
"countries": ["us", "gb", "de"],
"sort": "mostrecent",
"maxItems": 300
}
2. Choose countries
Reviews are per-storefront, so list every country you care about with its two-letter code — us, gb, ca, au, de, fr, in, sg, and so on. Each app is scraped in each country.
3. Sort & filter
- Sort reviews by — Most recent (newest first) or Most helpful (top-voted first).
- Minimum / maximum star rating — isolate 1–2★ complaints or 5★ praise.
- Max reviews — cap the total (0 = as many as available).
Example output
{
"appId": "310633997",
"appName": "WhatsApp Messenger",
"country": "us",
"reviewId": "12897654321",
"userName": "Jordan P.",
"rating": 2,
"title": "Status uploads keep failing",
"text": "Ever since the last update my status photos won't upload…",
"version": "26.36.74",
"votesUp": 14,
"votesTotal": 15,
"updatedAt": "2026-09-18T16:00:00-07:00",
"sortedBy": "mostrecent",
"collectedAt": "2026-09-20T02:30:00.000Z"
}
Common use cases
- ASO & rating monitoring — track your app's rating and review volume across storefronts.
- Competitor analysis — pull rivals' reviews to spot feature gaps and complaints.
- Product feedback — funnel real user reviews into your backlog, support tools or spreadsheets.
- Release quality — filter by app version to see how each update landed.
- Sentiment & trends — isolate 1–2★ reviews to surface the loudest pain points.
- Datasets — build clean, labelled review corpora for analysis or model training.
Frequently asked questions
Do I need any login, account or key? No. Just paste app links and run.
How many reviews can I get per app? The App Store serves up to roughly 500 reviews per app per country. Add more countries to widen coverage.
Can I scrape several apps and countries at once? Yes — list multiple apps and multiple country codes; every app is scraped in every country.
Can I get only negative (or only positive) reviews? Yes — use the minimum and maximum star-rating filters.
What format is the data? A flat table you can export as JSON, CSV or Excel, or fetch from the Apify API.
Related scrapers
Building app-market intelligence? Pair this with our Apple App Store app scraper for app metadata, ratings and prices, and our Google Play reviews scraper for the Android side — all with the same clean, one-row-per-item output.
Input
| Field | Type | Description |
|---|---|---|
appUrlsApps (App Store URLs or IDs) | array | One or more Apple App Store apps to scrape reviews for. Paste the app page URL (e.g. https://apps.apple.com/us/app/whatsapp-messenger/id310633997), a bare numeric app ID (310633997), or a bundle ID (net.whatsapp.WhatsApp). |
countriesCountries / storefronts | array | Two-letter App Store country codes to pull reviews from — e.g. us, gb, ca, au, de, fr, in, sg. Each app is scraped in every country you list (reviews are per-storefront). |
sortSort reviews by | string · mostrecent, mosthelpful | Most recent (newest first) or most helpful (top-voted first). Default: "mostrecent" |
minRatingMinimum star rating | integer | Only keep reviews with at least this many stars. Set to 1 for all reviews, or 4 to keep only positive ones. Default: 1 |
maxRatingMaximum star rating | integer | Only keep reviews with at most this many stars. Combine with the minimum to isolate, say, 1–2★ complaints. Default: 5 |
maxItemsMax reviews | integer | Maximum number of reviews to collect across all apps and countries (0 = as many as Apple returns). Apple serves up to ~500 reviews per app per country. Default: 200 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~app-store-reviews-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"appUrls": [
"https://apps.apple.com/us/app/whatsapp-messenger/id310633997"
],
"countries": [
"us"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/app-store-reviews-scraper").call(run_input={
"appUrls": [
"https://apps.apple.com/us/app/whatsapp-messenger/id310633997"
],
"countries": [
"us"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/app-store-reviews-scraper').call({
"appUrls": [
"https://apps.apple.com/us/app/whatsapp-messenger/id310633997"
],
"countries": [
"us"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Review scraped Charged for each App Store review returned. | $0.0002 | $0.0001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Carousell Scraper
Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.
242 runs · 2 users · $0.003 / listing scrapedGoogle Flights Scraper
Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.
216 runs · 4 users · $0.004 / flight scrapedPinterest Scraper
Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.
151 runs · 2 users · $0.0034 / item scrapedGoogle Trends Scraper
Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.
139 runs · 6 users · $0.001 / keyword scrapedAliExpress Product Search Scraper
Search AliExpress by keyword and export one clean row per product — title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.
135 runs · 3 users · $0.003 / product scrapedGoogle Maps Scraper
Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.
130 runs · 2 users · $0.005 / place scrapedSend the site and the fields. We build it and you get it first.