Apple App Store Reviews Scraper & API avatar

Apple App Store Reviews Scraper & API

Pricing

from $0.10 / 1,000 reviews

Go to Apify Store
Apple App Store Reviews Scraper & API

Apple App Store Reviews Scraper & API

Scrape App Store reviews for any app and country, from app links or IDs: rating, title, text, author, date, developer reply, app version when given. Full history, four sorts, filters by rating, date and keyword.

Pricing

from $0.10 / 1,000 reviews

Rating

0.0

(0)

Developer

Quarra Labs

Quarra Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

Get the reviews of any app on the Apple App Store, in bulk, without an account or API key. Give it app links or IDs and one or more countries. Each review comes back with its rating, title, text, author name as shown in the store, date and the developer's reply when there is one, plus the app version and votes when the store gives them. Full history, four sorts, and filters by rating, date and keyword. Export as JSON, CSV or Excel, or read it through the Apify API.

$0.10 per 1,000 reviews, plus a small start fee per run. Reviews that do not match your filters, repeats and inputs that fail are not charged, and each review is charged once per run at most.

Quick start

  1. Paste app links (https://apps.apple.com/us/app/whatsapp-messenger/id310633997) or app IDs into App links or IDs.
  2. Pick the Countries (each country has its own reviews) and Max reviews per app and country.
  3. Click Start and read the reviews in the run's Output tab.

Like any Apify Actor, it can also be run and read through the Apify API, scheduled, and connected to webhooks, Make, Zapier, n8n or Apify's MCP server for AI agents.

What it is used for

  • Product feedback: what users of your app (or a competitor's) complain about or love, with the app version.
  • Release monitoring: newest reviews since a date, run every day, to catch a bad release early.
  • Support: reviews with a low rating that still have no developer reply.
  • Market research: the same question across countries, or across the apps of a category.
  • AI agents and sentiment analysis: one clean record per review, the same fields on every store.

What you get

Review ID (stable: use it to deduplicate between runs)yes
Rating, title, textyes
Author name, as shown publicly in the storeyes
Date (UTC, ISO 8601) and whether the review was editedyes
App version the review was written foronly when the store gives it: part of the most recent reviews, often none
Helpful votes and total votessame as the app version
Developer reply and its dateyes, when there is one
App name, store page, countryyes
Position in the chosen sortyes

The same field names are used by our Google Play Reviews Scraper, so you can mix both stores in one pipeline. A field a store does not give is null, never missing.

Inputs

  • App links or IDs: store links in any language or plain numeric IDs (310633997 or id310633997). Up to 500 app and country pairs per run.
  • Countries: two-letter codes, one per line (us, fr, gb, de…). Each app is read in each country. Left empty, the country of the link is used, otherwise us.
  • Max reviews per app and country and Max reviews in total: counted exactly.
  • Sort: newest first, most helpful, most favorable, most critical. Only "newest first" lets Since stop early.
  • Minimum rating, Maximum rating, Since, Until (a date such as 2026-01-31, or a duration such as 30 days), and Review contains (up to 50 words, one per line). Ratings are whole stars. With a date filter, the rare reviews that have no date are left out.

Example, through the API:

{
"apps": ["https://apps.apple.com/us/app/whatsapp-messenger/id310633997"],
"countries": ["us", "gb"],
"sort": "newest",
"maxRating": 2,
"since": "30 days",
"maxReviewsPerApp": 500,
"maxItems": 1000
}

Output

One record per review in the dataset. A shortened review:

{
"type": "review",
"status": "ok",
"platform": "apple",
"reviewId": "14670930642",
"appId": "310633997",
"appName": "WhatsApp Messenger",
"country": "us",
"language": null,
"rating": 5,
"title": "Five star",
"text": "This is a good app cause it has really good features so that is why it is a five star.",
"author": "diego2817h",
"authorImageUrl": null,
"date": "2026-10-15T20:41:40Z",
"isEdited": false,
"appVersion": "26.40.77",
"helpfulVotes": 0,
"totalVotes": 0,
"replyText": null,
"replyAuthor": null,
"replyDate": null,
"reviewUrl": null,
"appUrl": "https://apps.apple.com/us/app/id310633997",
"input": "https://apps.apple.com/us/app/whatsapp-messenger/id310633997",
"position": 1,
"scrapedAt": "2026-10-17T06:24:02Z"
}
  • status: ok (delivered, charged) or error (free; errorCode and error say why, retryable says if a later run may work). An app that is not in a country's store gets a free app_not_found record.
  • position is the rank of the review in the chosen sort for that app and country.
  • language, authorImageUrl, replyAuthor and reviewUrl are kept for the shared layout and are null on this store.

The run summary (counts per app, name, rating, why the run stopped, notes) is the OUTPUT record of the run's key-value store.

Pricing

Pay per event:

EventPrice
Review$0.10 per 1,000
Run start$0.0006 per GB of memory (1 GB minimum; $0.0006 at the default 256 MB)

Never charged: reviews that do not match your filters, error records, repeats (a review already delivered in the same run is skipped). Set Maximum cost per run in the run options and the run stops before going over it, with the reviews delivered so far.

Limits

  • Version and votes are rare. The App Store gives them only for part of the most recent reviews of each country, and for many big apps for none (we checked in October 2026). Reviews without them have null, and the note of each app says how many of the reviews delivered have them.
  • Reviews are per country. An app has a separate set of reviews in each country's store; ask for every country you need.
  • Filters on rating and words are applied while reading: the run reads reviews to find the ones that match. With the "newest first" sort, a date range is found directly, even years back. Reading that finds nothing has a limit per run (it is not charged); a very rare word on a big app can reach it, and the run says how far it read. Only matching reviews are charged.
  • The store may show fewer reviews than the app's rating count says: ratings without text are not reviews.
  • Anything missing from a result is said: in the run's status, in the note of each app in the OUTPUT record (for example version and votes missing on some reviews), or in a free error record when an app stopped before the end.
  • If the store limits access during a run, the run says so in its status and keeps what it delivered; running it again later gives the rest.

FAQ

Do I need an Apple account or API key? No.

What if the run is restarted by the platform (migration or reboot)? It resumes where it was: reviews already in the dataset are not delivered or charged again.

Can I get reviews of an app that is not in my country? Reviews are per country store: use the country where the app is sold.

Is it legal? It collects public reviews shown to any visitor of the App Store. Check the rules that apply to your use of the data, in particular for personal data such as author names.

Does the Actor send anything to Quarra? Only when a run fails or runs out of time: the Actor, its build, the error type, the line of our code where it happened, and the memory and time the run was given, so we can fix it fast. Never your input, your results, your account or the run ID.