Apple App Store Reviews Scraper avatar

Apple App Store Reviews Scraper

Under maintenance

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Apple App Store Reviews Scraper

Apple App Store Reviews Scraper

Under maintenance

A robust, high-performance utility designed for developer automation, data integration, and AI training. Features built-in captcha bypass, headful/headless browser execution, and proxy support to scrape Appstore Reviews data seamlessly, reliably, and at scale.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Coding Frontned

Coding Frontned

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Scrape reviews embedded in public Apple App Store review pages and enrich them through the public iTunes Lookup endpoint. Provide App Store IDs or product URLs and receive normalized review records with stable public app metadata.

Features

  • Multiple app IDs or App Store URLs in one run
  • Country-store selection with lowercase two-letter country codes
  • Up to 10 unique reviews currently exposed by each public App Store review page
  • Global output cap: 1–200 reviews across all apps after filtering
  • Stable review fields: review ID, title, body, rating, votes, version, reviewer, reviewer URL, date, page, position, and canonical review URL
  • Compact public app enrichment: category, artwork, developer and seller links, ratings and counts, version and release dates, release notes, bundle ID, OS requirement, price, currency, genres, and public iTunes flags when supplied
  • Normalization, review-ID deduplication, optional rating/text filtering, bounded app concurrency, retries, and request timeouts
  • Direct public requests only; no Apple login or credentials are required

Input

FieldTypeDefaultRequiredDescription
appIdsarray-yesNumeric App Store IDs or URLs containing an app ID. Up to 20 unique apps per run.
countrystringusnoTwo-letter App Store country code, such as us, gb, in, or de.
maxItemsinteger100noGlobal maximum reviews across all apps after filtering, from 1 to 200.
minRatinginteger-noKeep reviews at or above this one-to-five rating.
maxRatinginteger-noKeep reviews at or below this one-to-five rating.
searchTermstring-noCase-insensitive text filter across review title, body, and reviewer name.
maxConcurrencyinteger1noMaximum number of apps processed concurrently, bounded to 3.
maxRetriesinteger2noBounded retries for transient endpoint failures and rate limits, from 0 to 2.
requestTimeoutMsinteger15000noTimeout per public endpoint request, from 5000 to 30000 ms.

Example input:

{
"appIds": ["1234567890", "https://apps.apple.com/us/app/example-app/id1234567890"],
"country": "us",
"maxItems": 20,
"minRating": 3,
"searchTerm": "workout"
}

Output

Each dataset row represents one public review. Existing consumer-facing aliases are retained: id mirrors reviewId, and url mirrors reviewUrl. Core fields include appId, appName, appIconUrl, appCategory, appUrl, reviewId, reviewUrl, title, body, rating, voteSum, voteCount, version, author, authorUrl, reviewDate, country, position, page, sourceApiUrl, scrapedAt, recordType, and dataAvailable.

Lookup enrichment fields are prefixed with app: ratings and counts, current version, release dates and notes, bundle ID, OS requirement, price and currency, content ratings, genres, compact artwork, developer and seller metadata, and public iTunes flags. Large descriptions, screenshots, and device lists are not repeated on every review. Fields unavailable in a public response are omitted.

Example output:

{
"id": "1234567890123456789",
"appId": "1234567890",
"appName": "Example Fitness App",
"appCategory": "Health & Fitness",
"appUrl": "https://apps.apple.com/us/app/id1234567890",
"reviewUrl": "https://apps.apple.com/us/app/id1234567890?see-all=reviews&reviewId=1234567890123456789",
"reviewId": "1234567890123456789",
"title": "Useful and simple",
"body": "The example app makes it easy to stay consistent.",
"rating": 4,
"voteSum": 12,
"voteCount": 15,
"version": "5.2.0",
"author": "Example Reviewer",
"reviewDate": "2026-01-15T12:00:00-08:00",
"country": "us",
"position": 1,
"page": 1,
"appAverageRating": 4.52,
"appRatingCount": 8250,
"appVersion": "5.2.0",
"appGenres": ["Health & Fitness"],
"scrapedAt": "2026-01-15T12:00:00.000Z",
"recordType": "appstore-review",
"dataAvailable": true
}

Run summary

OUTPUT_SUMMARY records completion status, global item cap/count, app count, country, filters, runtime, and any failure.

Reliability and access behavior

Requests are sequential per app by default, with optional app concurrency capped at three, a bounded retry budget, and a per-request timeout. Public 401/403/451 responses, HTML challenges, and exhausted 429 rate limits stop the run and are not converted into empty success records. If no valid public review is extracted, the run exits unsuccessfully.

Apple’s legacy RSS endpoint now returns empty feeds for tested apps. This actor instead uses only reviews serialized into the public review page, currently up to ten per app. It does not call Apple’s authenticated AMP API, and no pagination beyond the public page is claimed.