How to use it: 3 steps
- Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
324684580in Apple app IDs. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
Apple App Store Reviews Scraper exports public reviews by app and country. Save the results as JSON, CSV, Excel, XML, or read them through the Apify API.
- Up to 2,000 reviews for each app and country.
- Up to 10,000 reviews in one run.
- One Dataset row for each unique review.
- Stable IDs for updates and later comparisons.
- Review data for several apps and countries in one run.
- A run report that explains every stop or error (
RUN_SUMMARY). - No Apple account, API key, proxy, or browser setup.
Who uses it
Product managers
Find common problems in user reviews.
App marketers
Compare feedback between markets.
Data teams
Keep a review database up to date.
Price
Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.
| What you pay for | Price | When |
|---|---|---|
| Apple App Store review | $0.0001 | One unique review stored in the default Dataset. |
| Start fee | $0.036 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
Examples
- One review: about $0.04.
- 1,000 reviews: about $0.14.
- Every day 100 reviews, for 30 days: about $1.38 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 36,000 reviews.
Prices checked on 24 October 2026. See the current price on Apify.
Questions
Can I get every old review?
No. Apple shows a changing window of public reviews.
Are the newest reviews first?
Not always. Apple controls the order.
Can I get developer replies?
No. Replies are not in the output.
Do I need an Apple account?
No. No account, API key or proxy is needed.
Can I get all historical reviews?
No. The Actor returns up to 100 current source pages. This is not a complete history.
How do I remove repeated reviews across runs?
Use recordId as the update key. It combines the app ID, country, and Apple review ID.
What happens after a late error?
Reviews already saved remain available. Open RUN_SUMMARY to see the stop reason and affected app-country pair.
Can I filter by date, rating, or keyword?
There are no such input filters. Export the reviews and filter the saved rows in your own tool. The Actor does not monitor only new reviews. Repeated runs collect a fresh bounded snapshot; use recordId to merge them.
Details
Use cases
| Task | Input choice | Key fields | Next step |
|---|---|---|---|
| Compare feedback by market | One app, countries: ["us", "gb"] | country, rating, text | Export to CSV and compare groups |
| Study common product issues | App IDs and a small cap | title, text, reviewedAt | Filter the exported rows |
| Merge repeated snapshots | The same app and country | recordId, scrapedAt, isEdited | Update your own database by recordId |
Tips for better results
- You can get up to 2,000 reviews per app and country.
- Use the record ID as the key when you merge runs.
- Run it regularly. Apple shows a changing set of reviews.
Limits and good to know
Apple provides a changing window of public reviews. This Actor does not promise a complete review history.
- Each source page can contain up to 20 reviews
- The Actor requests up to 100 pages for each app and country
- The maximum is 2,000 reviews for each app and country
- The whole run stops at 10,000 saved reviews
- Apple controls the order shown as
appleDefault - Different countries can return different reviews
- A run can return fewer reviews than you request
Recent updates
Version 0.3.1 · 10 October 2026
- inherited FTP parser security advisory, with the Apple web transport unchanged;
- current publication checks for every field, example, prefill, and navigation link.
- functional Store banner, complete field reference, and a real trimmed review example;
Version 0.2.1 · 8 October 2026
- source requests stop before the run timeout and preserve partial results;
- run cancellation aborts the active direct HTTP request;
- source DNS connections reject private and reserved addresses;
Version 0.1.14 · 2 September 2026
- export up to 2,000 reviews for each app and country;
- export up to 10,000 reviews in one run;
- request up to 100 Apple source pages for each app and country;
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"appIds": ["324684580"],
"countries": ["us"],
"maxReviewsPerAppCountry": 1,
"maxReviewsTotal": 1
}Use it from code
Actor ID: cliqtomedia/apple-app-store-reviews-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/apple-app-store-reviews-scraper").call(run_input={
"appIds": [
"324684580"
],
"countries": [
"us"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~apple-app-store-reviews-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"appIds": ["324684580"], "countries": ["us"]}'# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("cliqtomedia/apple-app-store-reviews-scraper")
result = tool.invoke({"run_input": {"appIds": ["324684580"], "countries": ["us"]}})
print(result)The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.
Data fields (21)
| Field | Type |
|---|---|
schemaVersion | string |
recordId | string |
reviewId | string |
appId | string |
appName | string |
appUrl | string |
country | string |
sort | string |
authorName | string |
title | string |
text | string |
rating | integer |
appVersion | string |
reviewedAt | string |
helpfulVotes | integer |
totalVotes | integer |
isEdited | boolean |
sourcePage | integer |
sourceTransport | string |
sourceUrl | string |
scrapedAt | string |
Input settings (6)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Apple app IDs | appIds | array | ["324684580"] |
| Apple App Store URLs | startUrls | array | |
| App Store countries | countries | array | ["us"] |
| Review order | sort | string | "appleDefault" |
| Maximum reviews per app and country | maxReviewsPerAppCountry | integer | 10 |
| Maximum reviews for the run | maxReviewsTotal | integer | 10 |
Use cases with this tool
Each guide shows all the steps and the other tools.