App Store Reviews Scraper - iOS & macOS Reviews
Pricing
from $0.50 / 1,000 review returneds
App Store Reviews Scraper - iOS & macOS Reviews
Scrape Apple App Store reviews for any iOS/macOS app across multiple countries in one run. Get ratings, titles, bodies, authors, versions, dates, votes, and URLs with rating, date, and keyword filters applied before billing. No login, no cookies, no external API keys.
Pricing
from $0.50 / 1,000 review returneds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
App Store Reviews Scraper - iOS & macOS Ratings
This Apify Actor helps product teams, ASO analysts, support teams, and AI agents collect Apple App Store reviews for one or many iOS or macOS apps across one or many country storefronts in a single run. It accepts numeric App Store IDs or full apps.apple.com URLs, and each output record represents one review. The dataset includes ratings, review titles, bodies, reviewer names, app versions, dates, helpfulness votes, and source URLs, with rating, date, keyword, and helpful-vote filters applied before billing. It runs without login, cookies, or external API keys, and it is usable through Apify MCP.
Best fit and connected workflows
This Actor fits workflows that start with an Apple App Store app ID and need structured review data from one storefront or many storefronts in one run.
It is a natural match for:
- release monitoring, where teams track recent reviews around a launch window
- ASO research, where analysts compare titles, bodies, and helpfulness signals
- localization QA, where the same app is checked across storefronts such as
us,gb,de, orjp - review triage, where keyword and star filters keep the output focused on the feedback you care about
- AI-agent pipelines, where the input is simple and the output is flat JSON per review
Practical scenario
Maya, a product manager, has the App Store ID for her app and wants to check feedback from the United States and United Kingdom after a release. She enters the app ID, selects us and gb, and adds a date range plus a 1 and 2 star filter.
The returned records include title, body, rating, date, voteSum, and reviewUrl. Maya can quickly spot repeated bug reports, confirm which version a reviewer used, and send the review URLs to the engineering team for follow-up.
Input
Use one or more app IDs or full App Store URLs, then add the optional filters and run bounds that match your workflow.
| Field | Type | Required | Default | Purpose |
|---|---|---|---|---|
appIds | array of strings | Yes | ["324684580"] | One or more numeric App Store IDs or full App Store URLs. Duplicate apps are processed once. |
countries | array of strings | No | ["us"] | One or more lowercase two-letter storefront codes. Reviews are fetched from each selected country in one run. |
sortBy | string | No | mostRecent | Choose mostRecent or mostHelpful. |
maxReviewsPerApp | integer | No | 500 | Paid review-row cap for each app within each country storefront. |
maxReviews | integer | No | 1000 | Hard billing and output cap across the full run. |
ratingFilter | array of integers | No | [] | Keep only selected star ratings from 1 to 5. |
dateFrom | string | No | "" | Keep only reviews dated on or after this ISO date. |
dateTo | string | No | "" | Keep only reviews dated on or before this ISO date. |
keywords | array of strings | No | [] | Keep only reviews whose title or body contains at least one case-insensitive keyword. |
minVoteSum | integer | No | 0 | Keep only reviews whose helpful vote sum is at least this value. |
Focused input example
{"appIds": ["324684580","https://apps.apple.com/us/app/whatsapp-messenger/id310633997"],"countries": ["us", "gb"],"sortBy": "mostRecent","maxReviews": 200,"ratingFilter": [1, 2],"dateFrom": "2026-01-01","keywords": ["crash", "login"],"minVoteSum": 0}
Output
Each matching review is written as one validated row in the default dataset.
| Field | Type | Meaning |
|---|---|---|
reviewId | string | Stable Apple review identifier. |
appId | string | Numeric App Store identifier for the app. |
appName | string or null | available app name when Apple exposes it. |
country | string | Storefront code the review came from. |
rating | integer | Star rating from 1 to 5. |
title | string | Review headline. |
body | string | Full review text. |
reviewerName | string or null | Public reviewer name when available. |
reviewerUrl | string or null | Apple reviewer profile URL when exposed. |
appVersion | string or null | App version used by the reviewer. |
date | string | ISOa bounded number of review timestamp. |
voteSum | integer | Net helpfulness vote sum reported by Apple. |
voteCount | integer | Total helpfulness votes. |
reviewUrl | string or null | Canonical Apple review URL when exposed. |
scrapedAt | string | ISO 8601 timestamp when the row was saved. |
Illustrative output record
{"reviewId": "14376567123","appId": "324684580","appName": null,"country": "us","rating": 5,"title": "Amazing","body": "Easy to use and So much more","reviewerName": "Arpi house","reviewerUrl": "https://itunes.apple.com/us/reviews/id1726025656","appVersion": "9.1.68","date": "2026-08-01T23:53:50.000Z","voteSum": 0,"voteCount": 0,"reviewUrl": "https://itunes.apple.com/us/review?id=324684580&type=Purple%20Software","scrapedAt": "2026-08-03T12:00:00.000Z"}
How it works
This Actor reads Apple's public iTunes RSS customer-reviews feed for each requested app and country pair:
https://itunes.apple.com/{country}/rss/customerreviews/id={appId}/sortBy={sort}/page={n}/json
It walks the selected storefronts, deduplicates identical reviews across countries, applies your filters before billing, and writes each matching review to the default dataset as a validated record. The live contract includes two sort orders: mostRecent and mostHelpful.
Pricing
App Store Reviews Scraper - iOS & macOS Ratings uses Pay per event plus Apify platform usage.
The charged events are:
- Actor start
- Review returned
A Review returned event is charged only when one complete, schema-validated review is written to the default dataset. Reviews filtered out by rating, date, keyword, or helpful-vote rules are skipped before billing.
For current pricing details, open the live Pricing tab in Apify. As a simple example written in words, a run capped at one thousand reviews can charge up to one thousand review-returned events, plus platform usage reported by Apify.
Use with AI agents (MCP)
This Apify Actor is usable through Apify MCP as a tool for fetching structured Apple App Store review data.
Tool description: given one or more App Store IDs and optional storefront and filter settings, it returns one JSON record per review, with provenance fields that show the app, country, source URL, and scrape timestamp.
Exact Actor identity: khadinakbar/appstore-reviews-scraper
Pull Apple App Store reviews for app ID 324684580 across
usandgb. Keep only 1-star and 2-star reviews from the last 30 days, return the dataset rows, and include helpfulness votes and source URLs.
Output interpretation:
- each dataset row represents one Apple review
rating,title,body,reviewerName,appVersion,date,voteSum, andreviewUrlare the core fields for analysisreviewId,appId,country, andscrapedAtsupport traceability and deduplication- if you select multiple storefronts, identical reviews are deduplicated across countries
Scope and pagination guidance:
- Apple returns reviews by page in its public RSS feed
- the Actor follows the feed across the requested storefronts
- Apple returns at mosta bounded number of reviews per app per country, so
maxReviewsPerAppandmaxReviewshelp bound the run size and cost
Cost guidance:
- filters are applied before billing
- the
Review returnedevent is charged only for written dataset rows - setting a tighter date range, rating list, or keyword list keeps the output focused
Apify API example
import { ApifyClient } from "apify-client";const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const input = {appIds: ["324684580"],countries: ["us"],sortBy: "mostRecent",maxReviews: 25,ratingFilter: [1, 2]};const run = await client.actor("khadinakbar/appstore-reviews-scraper").call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Set APIFY_TOKEN in your environment before running the example.
Best results and outcome guidance
For focused review collection, start with one or a few app IDs and the storefronts that matter to your workflow.
Useful patterns:
- use
dateFromanddateTofor release-window review tracking - use
ratingFilterto isolate praise or complaints - use
keywordsto surface bug reports, feature requests, or localized terms - use
sortBy: mostHelpfulwhen you want more endorsement-heavy feedback - use
maxReviewsPerAppandmaxReviewsto keep the run size aligned with your workflow
Continue the workflow
- Then use Apple App Store All-in-One Scraper to extend App Store Reviews Scraper - iOS & macOS Ratings research with a complementary content contract.
- Then use GitHub Deep Scraper — Repos, Issues, PRs, Code Search, Commits to extend App Store Reviews Scraper - iOS & macOS Ratings with a neighboring software ecosystem research source when the brief calls for Github data.
Design note
I found that the dataset contract includes both voteSum and voteCount, which makes helpfulness signal analysis more precise than using star rating alone.
FAQ
Can I run this Actor for multiple countries at once?
Yes. Pass multiple lowercase storefront codes in countries, and the Actor fetches each selected storefront in one run.
Can I pass App Store URLs instead of numeric IDs?
Yes. The input accepts both numeric App Store IDs and full apps.apple.com URLs, and URL IDs are reduced to numeric IDs.
Which review order should I use?
Use mostRecent for fresh monitoring and mostHelpful when you want reviews with more helpfulness votes near the top.
How do I focus on release feedback?
Add a dateFrom value near your release date and combine it with a star filter such as [1, 2].
Can I use this with Apify MCP?
Yes. This Actor is usable through Apify MCP and returns structured review rows that agents can parse directly.
Responsible use
Use this Actor in ways that respect Apple's terms, applicable laws, and the privacy expectations of the review authors. It reads publicly available Apple App Store review data and does not require login, cookies, or external API keys. Review the data with care when storing, sharing, or automating actions from it.