🍎 Apple App Store Reviews Scraper — Ratings, Text & Dates
Pricing
from $0.87 / 1,000 review scrapeds
🍎 Apple App Store Reviews Scraper — Ratings, Text & Dates
Scrape public Apple App Store reviews for any app by ID — rating, text, version, author, developer response, and date. Watch mode returns only new reviews since the last run. Public, logged-out, no CAPTCHA/login defeating.
Pricing
from $0.87 / 1,000 review scrapeds
Rating
0.0
(0)
Developer
NexGen Watch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Apple's owner-only API won't show you a competitor's reviews. App developers, agencies, and PMs pay to monitor the public App Store review feed for any app — theirs or the competition's.
What you get
- Public Apple App Store review entries: rating, title, review text, author, date, and app version
- Developer responses and response dates where present
- A normalized 14-field record per review with source URL and collection timestamp
- Bounded retries with explicit block / gone outcomes — you always know if zero means empty or blocked
- Optional watch mode that emits only new reviews and status changes on later runs
Use cases by team
- Product managers: Track what users say about each release and catch regressions the moment reviews turn.
- Competitive / market intel: Monitor rival apps' reviews you have no API access to.
- Agencies: Stand up a review feed per client app and pipe it into reporting.
- Support / CX: Spot emerging complaints early and route them before they snowball.
Example inputs
Single app
{"app_ids": ["284882215"],"watchMode": false}
Several apps at once
{"app_ids": ["284882215","310633997"],"country": "us"}
Monitor for new reviews only
{"app_ids": ["284882215"],"watchMode": true}
📊 Sample Output
{"store": "apple","app_id": "284882215","review_id": "11897234561","title": "Reliable","review_text": "Works every day","rating": 5,"author_handle": "appfan_us","review_date": "2026-07-18","version": "500.1","developer_response": null,"country": "us","source_url": "https://apps.apple.com/us/app/id284882215","collected_at": "2026-07-21T00:00:00Z"}
How it works
Give it one or more numeric App Store app IDs. It collects the public review-feed entries for each, with bounded retries and a fresh proxy session per attempt, then normalizes every review into one 14-field schema. It reads only public, logged-out surfaces — no login, no paywall, no access-control defeating.
Pricing
| Event | Price (FREE tier) |
|---|---|
Actor start (apify-actor-start) | $0.02 |
Review scraped (review-scraped) | $0.00065 |
Watch check (watch-check) | $0.05 |
Flat list prices; Apify applies its automatic FREE→DIAMOND plan discount on top. Worked example: 1,000 reviews = $0.02 start + 1,000 × $0.00065 = $0.67. Blocked or zero-result runs do not intentionally charge; watch runs with no delta charge only the watch check. New to Apify? Start free.
Run it — API, CLI, MCP
API:
curl -X POST "https://api.apify.com/v2/acts/nexgenwatch~ios-app-reviews/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d @input.json
CLI:
$apify call nexgenwatch/ios-app-reviews -i @input.json
MCP: expose nexgenwatch/ios-app-reviews through Apify's MCP server, select it as a tool, and pass the same input object.
Related actors — App Intelligence cluster
| Actor | What it does |
|---|---|
| Review Sentiment Analyzer | Turn any review set into themes, complaints, sentiment % and trends. |
| Google Play Reviews | Scrape public Google Play reviews for any app. |
| App Rankings Tracker | Track Apple App Store top-chart rankings by country. |
| ASO Keyword Tracker | Track keyword rankings across App Store & Google Play. |
Compliance & honest limits
- Public App Store review surfaces only — no login, CAPTCHA, paywall, or access-control defeating.
- Apple exposes a bounded, recent review window per app; this actor does not reconstruct the full lifetime history.
- A source-confirmed empty result is
SUCCEEDED-0: GENUINE_EMPTY; exhausted block retries fail and truncated runs arePARTIAL.
FAQ
Which app ID do I use?
The numeric App Store ID (e.g. 284882215), found in the app's App Store URL.
Can I watch competitor apps?
Yes — that is the core use case. Pass any public app's ID.
Does zero mean blocked?
No. A confirmed-empty feed is GENUINE_EMPTY; only exhausted retries fail, and truncated runs are PARTIAL.
How does watch mode work?
Set watchMode: true. The first run seeds a KV baseline and emits nothing; later runs emit only new reviews and status changes with previous_status.
How far back does it go?
As far as Apple's public feed exposes — a bounded recent window, deterministically sorted.
How is it priced?
$0.02 per run start plus $0.00065 per review scraped; watch checks with no change cost $0.05.
Can I feed this into sentiment analysis?
Yes — pass the output dataset ID straight into the Review Sentiment Analyzer.
Troubleshooting
- No reviews returned? Verify the numeric app ID and that the app has public reviews in the chosen country; GENUINE_EMPTY means the source really was empty.
- Wrong country's reviews? Set
country(e.g.us,gb); it defaults to US. - Watch mode emitting everything? The first run always seeds the baseline and emits zero — deltas start on the second run.
- Run marked PARTIAL? Retries were exhausted mid-collection; re-run to continue from a fresh window.
- Need Android too? Use the Google Play Reviews Scraper — same schema shape.
About
Part of the NexGenData App Intelligence cluster. This is a dedicated fleet-2 actor; it does not disturb any earlier fleet listing. Built by NexGenData. Questions or need a custom feed? Open an issue on the Actor page.