App Store Reviews Scraper - Ratings, App Data & Top Charts
Pricing
from $1.00 / 1,000 results
App Store Reviews Scraper - Ratings, App Data & Top Charts
Scrape Apple App Store reviews, ratings, star histograms, app details and top free, paid & grossing charts for many countries in one run. $1 per 1,000 rows.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
dean ko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
App Store Reviews Scraper - iOS ratings, app data & top charts
App Store Reviews Scraper exports Apple App Store reviews, ratings, 1-5 star histograms, app details and top charts (Top Free, Top Paid, Top Grossing, overall or per category) for any number of apps and countries in one run. Paste App Store IDs or URLs, or search by keyword, and download clean rows as JSON, CSV, Excel, or through the API.
No login, no API key, no proxy setup. $1 per 1,000 rows.
What does App Store Reviews Scraper do?
It is an iOS app reviews scraper, App Store ratings tracker and top charts scraper in one Actor:
- App Store reviews: rating, title, review text, app version, date, helpful votes and total votes, up to the 500 most recent reviews per app and country.
- App details: name, developer, bundle ID, price, average rating, rating count, star rating distribution (1-5), current-version rating, version, release notes, release dates, genre, size, minimum iOS, content rating, languages, description and icon.
- Top charts: Top Free, Top Paid and Top Grossing iPhone apps (up to 100 ranks), overall or for one App Store category such as Games, Finance or Health & Fitness.
- Keyword search: find apps by keyword (for example
habit tracker) and scrape the top results without knowing their IDs.
Every row carries type (app, review or chart) and country, so one dataset holds everything and is easy to filter or pivot.
Who is it for?
- App developers and product managers: read what users say about each release, catch bugs and feature requests early.
- ASO and app marketing teams: track rating, rating count, star distribution and chart rank for your app and competitors in every market.
- Market researchers and investors: see which apps lead Top Grossing in Japan vs the US, how prices differ by storefront, and how ratings move over time.
- Data and AI teams: feed review text into sentiment analysis, topic clustering or an LLM.
Use cases
- Monitor App Store reviews and ratings after each app update (schedule it daily).
- Compare one app across 10+ countries side by side.
- Build a history of top charts per category.
- Collect competitor reviews to find gaps in their product.
- Export App Store reviews to CSV or Excel for a report.
Why this App Store scraper?
- Reviews, app data and charts in one run. Many App Store actors do only reviews or only app metadata. Here you get all three, so one scheduled run covers your app, your competitors and the charts they compete in.
- Many countries at once. Pass
["us", "gb", "de", "jp"]and every app, review feed and chart is fetched for each storefront. Apple caps reviews at 500 per storefront, so more countries also means more reviews. - Star histogram included. Each app row has the 1-5 star breakdown from the public App Store page, not only the average.
- Reviews when the feed is empty. For some apps Apple's reviews feed returns nothing. Instead of an empty result, the actor falls back to the featured reviews on the public App Store page (about 10 per app and country), and labels each review with its
source. - You pay only for rows you get. No charge per request, page or search. Set
maxItemsor a maximum charge per run, and the run stops right there. - Privacy-friendly. Reviewer names and profile links are never collected, which makes GDPR-sensitive analysis simpler.
How to scrape App Store reviews
- Open the actor and click Try for free.
- In App IDs or App Store URLs, paste one or more apps, for example
310633997orhttps://apps.apple.com/us/app/notion-notes-tasks-ai/id1232780281. The ID is the number afteridin the URL. Or type keywords in Search terms. - Pick Countries as two-letter codes (
us,gb,de,jp, ...). - Set Max reviews per app (up to 500 per country). Turn Include reviews or Include app details off if you don't need them.
- Optional: choose Top charts and a Chart genre.
- Set Max results as your row and cost cap, then click Start.
- Download the results as JSON, CSV, Excel or HTML, or read them through the API. Use the Apps, Reviews and Charts views to see each row type as its own table.
The prefilled input scrapes WhatsApp in the US with its 20 most recent reviews: 21 rows, about $0.02, in a few seconds.
Example input
{"appIds": ["https://apps.apple.com/us/app/notion-notes-tasks-ai/id1232780281", "310633997"],"searchTerms": ["habit tracker"],"searchResultsPerTerm": 3,"countries": ["us", "gb", "de", "jp"],"includeAppDetails": true,"includeReviews": true,"maxReviewsPerApp": 100,"charts": ["top-free", "top-grossing"],"chartGenreId": "6007","chartLimit": 50,"maxItems": 5000}
Input fields
| Field | What it does | Default |
|---|---|---|
appIds | App Store IDs (310633997, id310633997) or App Store URLs | WhatsApp as a demo when everything is empty |
searchTerms | Keywords to find apps; top results are scraped like App IDs | [] |
searchResultsPerTerm | Apps taken per search term and country (1-200) | 5 |
countries | Two-letter storefront codes | ["us"] |
includeAppDetails | One app row per app and country | true |
includeReviews | review rows | true |
maxReviewsPerApp | Reviews per app and country (1-500) | 50 |
charts | Any of top-free, top-paid, top-grossing | [] |
chartGenreId | One App Store category for charts, e.g. 6014 Games, 6015 Finance | all apps |
chartLimit | Ranks per chart (1-100) | 100 |
maxItems | Total row cap (also your cost cap) | 1000 |
Sample output
Every row has type, country and scrapedAt.
Review row (type: "review")
{"type": "review","country": "us","appId": "310633997","reviewId": "14679618687","rating": 4,"title": "Hihihi","text": "Idk I started but I heard it's amazing so tried it / it was good","appVersion": "26.40.77","date": "2026-10-17T17:54:06-07:00","helpfulVotes": 0,"totalVotes": 0,"source": "rss","scrapedAt": "2026-10-19T08:23:58.661Z"}
App row (type: "app", shortened)
{"type": "app","country": "us","appId": "310633997","name": "WhatsApp Messenger","bundleId": "net.whatsapp.WhatsApp","developer": "WhatsApp Inc.","developerId": "310634000","price": 0,"currency": "USD","formattedPrice": "Free","rating": 4.6833,"ratingCount": 18790221,"ratingHistogram": { "1": 646939, "2": 255438, "3": 568957, "4": 1458599, "5": 15860288 },"ratingCurrentVersion": 4.6833,"ratingCountCurrentVersion": 18790221,"version": "26.40.77","currentVersionReleaseDate": "2026-10-12T12:34:26Z","releaseNotes": "We update the app regularly to fix bugs, optimize performance and improve the experience...","releaseDate": "2009-05-04T02:43:49Z","primaryGenre": "Social Networking","genres": ["Social Networking", "Utilities"],"sizeBytes": 402210816,"minimumOsVersion": "15.1","contentRating": "12+","languages": ["AR", "EN", "DE"],"description": "WhatsApp from Meta is a free messaging and calling app...","url": "https://apps.apple.com/us/app/whatsapp-messenger/id310633997","iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../512x512bb.jpg","scrapedAt": "2026-10-17T10:45:30.324Z"}
Chart row (type: "chart")
{"type": "chart","country": "us","chart": "top-free","genreId": "6014","rank": 1,"appId": "6761760135","name": "Meowdoku!","bundleId": "com.oakever.meowdoku","developer": "Oakever Games","price": 0,"currency": "USD","category": "Games","categoryId": "6014","releaseDate": "2026-05-19T00:00:00-07:00","url": "https://apps.apple.com/us/app/meowdoku/id6761760135","iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/.../100x100bb.png","scrapedAt": "2026-10-17T10:43:39.364Z"}
Output fields
| Field | Row type | Description |
|---|---|---|
type | all | app, review or chart |
country | all | Storefront code, e.g. us |
appId | all | Numeric App Store ID |
name, developer, bundleId | app, chart | App name, developer name, bundle ID |
rating, ratingCount | app | Average rating (all versions) and number of ratings |
ratingHistogram | app | Count of 1, 2, 3, 4 and 5 star ratings |
ratingCurrentVersion, ratingCountCurrentVersion | app | Rating for the current version |
price, currency, formattedPrice | app, chart | Price in the storefront's currency |
version, currentVersionReleaseDate, releaseNotes | app | Latest version and its notes |
releaseDate, primaryGenre, genres, sizeBytes, minimumOsVersion, contentRating, languages, description, iconUrl, url | app | App metadata |
rating | review | Stars, 1-5 |
title, text | review | Review title and body |
appVersion | review | App version the review was written for (feed reviews only) |
date | review | When the review was posted or updated |
helpfulVotes, totalVotes | review | Vote counts (feed reviews only) |
reviewId, source | review | Apple review ID; rss (reviews feed) or storePage (fallback) |
chart, genreId, rank, category, categoryId | chart | Chart name, genre filter, rank position, app category |
scrapedAt | all | When the row was collected |
Pricing
Pay per event, no subscription:
- $0.001 per result row (app, review or chart row), which is $1 per 1,000 rows.
- $0.00005 per run start (per GB of memory; the default 256 MB counts as one start).
Platform compute and proxy costs are included.
Worked example: 3 apps x 4 countries, each with app details and 100 reviews = 3 x 4 x (1 + 100) = 1,212 rows = about $1.21. Adding Top Free and Top Grossing (100 ranks each) for those 4 countries adds 800 rows = $0.80.
Set Max results (maxItems) or a maximum charge per run, and the actor stops exactly there. You are only charged for rows that were saved.
Integrations and API
Use the results in Google Sheets, Make, Zapier, n8n, Slack, Airbyte or your own code. Schedule runs from Schedules and get notified with Webhooks.
Python (pip install apify-client)
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("deanko/appstore-scraper").call(run_input={"appIds": ["310633997"],"countries": ["us", "gb"],"maxReviewsPerApp": 100,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row["type"] == "review":print(row["country"], row["rating"], row["title"])
JavaScript / Node.js (npm install apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('deanko/appstore-scraper').call({appIds: ['310633997'],countries: ['us', 'gb'],charts: ['top-grossing'],chartGenreId: '6014',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((r) => r.type === 'chart').slice(0, 10));
You can also call it over plain HTTP: POST https://api.apify.com/v2/acts/deanko~appstore-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN> with the input as the JSON body.
FAQ
How many App Store reviews can I get per app? Up to the 500 most recent reviews per app and country. That is Apple's own limit for its public reviews feed. To get more, add more countries; each storefront has its own reviews.
Why did I get only about 10 reviews for an app?
For some apps Apple's reviews feed is empty. The actor then returns the featured reviews from the public App Store page instead (marked source: "storePage"), which is usually around 10 per country.
Can I scrape App Store reviews for several countries at once?
Yes. Put all the codes in countries. Each review row has a country field.
Do I need an App Store ID?
No. Paste the full App Store URL, or use searchTerms to find apps by keyword.
Can I export App Store reviews to CSV or Excel? Yes. Every dataset can be downloaded as CSV, Excel, JSON, XML or HTML from the run page or the API.
Does it collect reviewer names? No. Reviewer names, nicknames and profile links are deliberately left out.
Does it scrape Google Play? No, only the Apple App Store.
How do I track ratings or rankings over time?
Create a schedule (for example daily). Each run's rows have scrapedAt, so you can append them to one sheet or database and chart the trend.
Which chart genre IDs are available? The input has a dropdown with the App Store categories (Business 6000, Games 6014, Finance 6015, Health & Fitness 6013, Productivity 6007, Shopping 6024 and more).
Limitations
- Reviews: at most the 500 most recent per app and country (Apple's limit). Sorting is newest first; there is no filter by rating, keyword or date range.
- Feed-only fields (
appVersion,helpfulVotes,totalVotes) arenullfor fallback reviews from the App Store page. - Developer replies to reviews are not included.
- Top charts come from Apple's iPhone charts feed: up to 100 ranks, Top Free, Top Paid and Top Grossing only.
- Keyword search uses the iTunes Search API, so results can differ slightly from what the App Store app shows.
- Apple rate-limits search and lookup requests. The actor retries automatically, but very large keyword lists run slower.
- An app not sold in a storefront is skipped for that country, with a warning in the log.
- No Google Play, Mac App Store-only or Apple Arcade-specific data.
Support and feedback
Found a bug, need a field, or want a feature? Open an issue in the Issues tab of this actor. Feedback is read and answered there.
Legal
Data comes from Apple's publicly available App Store endpoints and pages. Reviewer names and profile links are not collected. You are responsible for using the data in line with Apple's terms and the laws that apply to you (for example GDPR when analysing review text).