Apple App Store Reviews Scraper & Monitor
Pricing
from $0.30 / 1,000 review saveds
Apple App Store Reviews Scraper & Monitor
Export Apple App Store reviews across 50 markets. Filter by rating, date, version, and keyword; monitor new reviews and enrich results with app metadata.
Pricing
from $0.30 / 1,000 review saveds
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
14
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
Export public Apple App Store review text for app URLs or numeric IDs, with country, version, helpful-vote fields and optional app metadata. Use Apple App Store Reviews Scraper for product feedback, ASO research and bounded review comparisons—not a complete review archive.
Start with one app and 20 reviews. Availability varies by storefront, and limited samples may not follow the requested order or contain verified star ratings. See the limits below before rating-based analysis.
Quick start
- Paste an App Store URL or numeric ID into
appUrlsOrIds. - Select the country separately. The country in the URL does not select the review storefront.
- Run with a small cap, inspect the dataset and
RUN_SUMMARY, then export JSON, CSV or Excel.
{"appUrlsOrIds": ["310633997"],"country": "us","sortBy": "mostrecent","maxReviewsPerApp": 20,"includeAppMetadata": true}
Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.
Ready-to-run examples
Choose a public example to see its settings before starting a run:
What you get
- Review research: collect public review text, titles, authors and available version/date fields for product feedback and competitor analysis.
- Market comparisons: request multiple apps and storefronts, or add a curated set of 50 major markets. Each row includes
country. - Filtered exports: retain matching date, version and keyword values from the available sample. Rating filters are also available, but default five-star values in some samples make them unsuitable for identifying low-star feedback.
- Baseline comparisons: compare record IDs with a prior dataset and optionally save only IDs not found there.
- App context: add developer, genre, rating aggregates, release details, artwork and app price when available.
This does not provide downloads, sales, private account data or developer replies.
Who is it for?
- Product managers and support analysts looking for recurring themes in public review text.
- ASO and market research teams comparing the wording in bounded app and storefront samples.
- Data teams saving review exports or comparing them with an accessible prior dataset.
Review research workflows
- Triage written feedback. Collect a small app-country sample, then review
title,contentand available version details for recurring requests or reported problems. Use keyword filters to focus the text. Some samples contain default five-star ratings, so do not use rating filters as a reliable way to find complaints. - Compare two storefront samples. Request the same app for two countries with a small per-pair cap, then group exported text by
country. Your assistant or spreadsheet can help summarize differences in the returned wording. The samples are limited and do not establish overall market sentiment or a complete review history. - Review changes against a saved sample. Supply an accessible prior dataset through
compareDatasetIdto compare record IDs. UseonlyNewReviewswhen you want to save only IDs not found in that baseline. ReadCHANGE_SUMMARYalongside the output: an absent review means it was missing from this sample, not that Apple deleted it.
Input settings
Detailed choices and limitations are in the input form's field help. Defaults and form examples are not the same thing.
| Setting | JSON key | Summary |
|---|---|---|
| App URLs or IDs | appUrlsOrIds | Required non-empty list. URLs must contain an app ID. |
| Country | country | Default us. Independent of the app URL's country. |
| Countries | countries | Non-empty list replaces country. |
| Major markets | allMajorMarkets | Adds 50 curated storefronts. Default off. |
| Review cap | maxReviewsPerApp | 1–500 saved rows per app-country pair. API default 100, form example 20. |
| Requested order | sortBy | mostrecent (default) or mosthelpful. Not guaranteed for limited samples. |
| Pair limit | maxAppCountryPairs | Expanded apps × countries. Form/schema default 20, runtime fallback 100 when absent. |
| Concurrency | maxConcurrency | 1–10 simultaneous app-country pairs. Default 3. |
| App metadata | includeAppMetadata | Default on. Unavailable metadata remains null or empty. |
| Rating range | minRating, maxRating | Inclusive 1–5 range. See rating caveat below. |
| Versions | versions | Exact reviewed-version values. |
| Keywords | keywords | Case-insensitive match of at least one term in title or text. |
| Date range | dateFrom, dateTo | ISO date/date-time. Date-only end includes the whole day. |
| Baseline | compareDatasetId | Accessible dataset ID/name. Comparison reads up to 10,000 records. |
| New records only | onlyNewReviews | Requires a baseline. Default off. |
There is no connection setting: this Actor uses direct public access and does not offer configurable proxies.
Example inputs
Compare two storefronts with a bounded review cap:
{"appUrlsOrIds": ["310633997"],"countries": ["us", "gb"],"maxReviewsPerApp": 20,"maxAppCountryPairs": 2,"includeAppMetadata": true}
For the 50-market option, set allMajorMarkets to true and explicitly allow at least 50 pairs per app. Extra requested countries can increase that count.
Output data
Synthetic shape-only example, not a collected review or current app snapshot. Missing optional values are shown as null. The example rating is illustrative, not verified.
{"appId": "310633997","country": "us","recordId": "apple-review:310633997:us:example-review","outputSchemaVersion": "1.0","reviewId": "example-review","rating": 5,"title": "Example title","content": "Example review text","version": null,"updatedAt": null,"sortBy": "mostrecent","status": "ok","appName": null,"developerName": null,"voteSum": null,"voteCount": null}
| Fields | Meaning |
|---|---|
appId, appUrl, country | App identity and requested storefront. |
recordId, reviewId, outputSchemaVersion | Review identity and record format version. Identifiers can vary with available source data. |
reviewUrl, authorName, authorUri | Public review/author details when available. |
rating, title, content, version, updatedAt | Review values. Ratings have the limitation below. |
voteSum, voteCount | Helpful-vote values when exposed. Otherwise null. |
sortBy, status | Requested ordering and row status (ok), not a completeness certificate. |
appName, developerName, bundleId | Optional app identity. |
genre, genres, averageUserRating, userRatingCount | Optional storefront metadata. |
currentVersion, currentVersionReleaseDate, releaseNotes | Optional release details. |
iconUrl, price, currency | Optional artwork and app price—not Actor fees. |
sourceFeedUrl, scrapedAt | Requested review-feed URL and collection timestamp. The URL alone does not certify the origin of every field. |
RUN_SUMMARY contains per-pair saved/scanned/filter counts, failures, pending-pair count and overall SUCCEEDED or PARTIAL status. Row status ok does not mean the full run was complete. If work remains at the time limit, PENDING_WORK identifies unfinished pairs.
With a baseline, CHANGE_SUMMARY contains baseline/current/new/removed/unchanged counts and new/removed record IDs. “Removed” means absent from the current sample after filters, not proof that Apple deleted a review. The comparison reads only the first 10,000 baseline records. onlyNewReviews excludes matching baseline IDs from the saved dataset.
Download your results
Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.
See Apify's download and export guide for the available formats and field options.
Pricing
The Run started (start) event applies once collection starts. Empty exports can still incur this event. Review saved (result) applies for each review row saved to the dataset.
Filtered reviews, skipped duplicates and baseline IDs excluded by onlyNewReviews do not generate a saved-review event. Keep review caps and the expanded app-country pair count small when starting. Platform usage may be additional.
See the live Pricing tab for current rates and applicable tiers.
Tips for best results
- Begin with one app and one country. Try 20 reviews and inspect the text before increasing the scope.
- Set the storefront explicitly. A country in an app URL does not select the review storefront. Account for apps multiplied by countries when setting
maxAppCountryPairs. - Use keywords to focus the text. Search for words relevant to the feedback you need. Do not rely on the rating field to identify low-star reviews in samples that use default values.
- Keep comparison settings consistent. Retain country, filters and caps with each export, then interpret baseline differences as changes in the sample.
- Read the run reports. Check
RUN_SUMMARYfor failed or unfinished pairs before treating the results as complete.
Limits and caveats
- Ratings can be unverified. Some limited samples currently contain a default five-star value rather than the review's verified rating. Do not treat these samples as rating evidence or rely on rating filters to identify low-star feedback.
- Coverage and order are limited. The accepted cap of 500 reviews per app-country pair is not a guarantee of availability. Only a limited review window is collected. Requested ordering may not be followed, and the sample may not include the newest or most helpful reviews.
- Fields can be missing. Votes, version, author details and app metadata may be unavailable. An app metadata failure does not necessarily prevent review output.
- Partial results can remain. Successful pairs can be retained when another pair fails. A run where every pair fails still fails. Row status
okdoes not mean the full run was complete. Review the run status and reports before using the export. - Baseline comparison is bounded. Only the first 10,000 baseline records are read. Identifiers can vary with the source data, and absence from the current filtered sample does not prove deletion.
- Public review data only. No Apple login, private account data, developer replies or complete historical rating curves are provided. This is not an official Apple API.
Automation and integrations
Save your settings for next time
Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.
Run on a schedule
Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.
Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.
Send results to your other tools
Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.
For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.
API usage
Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.
The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.
For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~apple-app-store-reviews-scraper/runs' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data @- <<'JSON'{"appUrlsOrIds": ["310633997"],"country": "us","sortBy": "mostrecent","maxReviewsPerApp": 20,"includeAppMetadata": true}JSON
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/apple-app-store-reviews-scraper').call({"appUrlsOrIds": ["310633997"],"country": "us","sortBy": "mostrecent","maxReviewsPerApp": 20,"includeAppMetadata": true});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/apple-app-store-reviews-scraper').call(run_input={'appUrlsOrIds': ['310633997'], 'country': 'us', 'sortBy': 'mostrecent', 'maxReviewsPerApp': 20, 'includeAppMetadata': True})print(client.dataset(run['defaultDatasetId']).list_items().items)
API usage notes
This starts asynchronously. Read the run status, then retrieve its defaultDatasetId through the datasets API.
MCP and AI agents
You can ask your AI assistant to collect data with Apple App Store Reviews Scraper & Monitor and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.
Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.
Easier setup with an Apify plugin
If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.
Use Apify AI in Console
Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's Apple App Store Reviews Scraper & Monitor. You can describe the data you want and ask questions about the results.
Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.
Choose your assistant
- Claude and Claude Code (Anthropic): Apify setup guide.
- ChatGPT and Codex (OpenAI): Apify setup guides.
- Grok Bot (xAI): Apify plugin guide.
- Gemini CLI (Google): MCP server setup guide. Use the server URL below with the HTTP configuration supported by Gemini CLI.
Connect just this scraper
To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/apple-app-store-reviews-scraper"}}}
Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.
Use Apify's general server
Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use Apple App Store Reviews Scraper & Monitor by Fetch Cat, or give it the identifier fetch_cat/apple-app-store-reviews-scraper.
Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.
Example requests
Give your assistant the inputs it needs along with a request like one of these:
- “Get up to twenty public reviews for App Store app 310633997 in the US using Fetch Cat's Apple App Store Reviews Scraper. Show the written feedback and available version details, then summarize recurring themes without treating the ratings as verified.”
- “Collect up to twenty reviews per storefront for app 310633997 in the US and UK, with a limit of two app-country pairs. Group the returned text by country and help me compare the topics in these samples.”
- “Collect up to twenty US reviews for the app I provide and compare their IDs with my accessible baseline dataset. Show newly encountered feedback, and explain sample differences without calling absent reviews deleted.”
Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.
Pay with x402
If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.
Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.
Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.
Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.
Other ways for agents to pay
Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.
FAQ
Can I export Apple App Store reviews to CSV or Excel?
Yes. Run with an app ID or URL, inspect the results and export the dataset through Apify. API users can retrieve the same rows using defaultDatasetId.
Does this require an Apple account or review API key?
No Apple login is required for public review collection. Apify API and MCP clients use Apify authentication.
Can I monitor multiple apps and countries?
Yes. Each app-country pair has its own review cap. Use a prior dataset for bounded comparisons, but absence from a later sample is not proof of deletion. Scheduling is an optional Apify platform feature, not enabled by this Actor.
Why are there fewer reviews, missing fields or unexpected ratings?
Availability and filters limit the returned sample. Some limited samples use default five-star values and may not follow the requested ordering. Verify against Apple before rating analysis. The requested cap is never a coverage guarantee.
Is this an official App Store reviews API?
No. It is an independent public review export workflow. For Android reviews, use Google Play Reviews Scraper below. For app details without review text, use the app metadata Actors.
Related Actors
- Apple App Store Apps Scraper — Collect public Apple App Store app listing metadata by keyword, app ID or developer ID.
- Google Play Reviews Scraper — Collect public Google Play review text with available ratings, dates and developer replies.
- Google Play Apps Scraper — Collect public Google Play app search listings and available app-detail metadata.
- Reddit Scraper — Collect public Reddit posts and optional comments from supported feeds, searches or discussion URLs.
- YouTube Transcript Scraper — Collect existing public YouTube captions as transcript text with optional timestamped segments, without generating audio transcription.
Support and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.
Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.
Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.
Made with care for curious people, AI agents and the possibilities in data. ♥