Apple App Store Reviews Scraper
Under maintenancePricing
from $4.99 / 1,000 results
Apple App Store Reviews Scraper
Under maintenanceA 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
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
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
appIds | array | - | yes | Numeric App Store IDs or URLs containing an app ID. Up to 20 unique apps per run. |
country | string | us | no | Two-letter App Store country code, such as us, gb, in, or de. |
maxItems | integer | 100 | no | Global maximum reviews across all apps after filtering, from 1 to 200. |
minRating | integer | - | no | Keep reviews at or above this one-to-five rating. |
maxRating | integer | - | no | Keep reviews at or below this one-to-five rating. |
searchTerm | string | - | no | Case-insensitive text filter across review title, body, and reviewer name. |
maxConcurrency | integer | 1 | no | Maximum number of apps processed concurrently, bounded to 3. |
maxRetries | integer | 2 | no | Bounded retries for transient endpoint failures and rate limits, from 0 to 2. |
requestTimeoutMs | integer | 15000 | no | Timeout 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.