SEO & ads intelligence
App Store Reviews & ASO Scraper
Scrape Google Play AND Apple App Store reviews for the same app in one run, normalized to one schema, plus per-app ASO rollup signals — rating distribution, rating trend, review velocity, top praise/complaint keywords.
Free Apify credit covers a first run. No credit card to try.
What we handle for you
- 🛡️ Browser fingerprint rotation — the target sees a real browser TLS handshake, not a script.
- 🌐 Proxy rotation — fresh exit on every block through Apify Proxy.
- 🔁 Retries with backoff — 408 / 429 / 5xx retried up to five times, Retry-After honoured.
- 🧊 Clean, typed rows — schema-validated output with ISO-8601 timestamps.
- 💰 Pay per result — no data, no result charge.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
apps | array | yes | List of logical apps to scrape. Each entry needs at least one of playPackageName / appleAppId (playPackageName: Google Play package name, e.g. "com.instagram.android"; appleAppId: Apple numeric app id, e.g.… |
maxReviewsPerApp | integer | no | Cap on reviews fetched per store per app. Google Play paginates toward this cap; Apple is hard-capped at ~50 by the feed itself regardless of this value. |
playHl | string | no | 2-letter language code for the Google Play RPC's hl query param. |
playGl | string | no | 2-letter country code for the Google Play RPC's gl query param. |
includeRollup | boolean | no | Emit one additional ASO rollup row per app (rating distribution, trend, velocity, praise/complaint keyword frequency) alongside the individual review rows. |
{
"apps": [
{
"playPackageName": "com.instagram.android",
"appleAppId": "389801252",
"appleCountryCode": "us",
"label": "Instagram"
}
],
"maxReviewsPerApp": 50,
"playHl": "en",
"playGl": "us",
"includeRollup": true
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
storeapp_idauthor_nameratingcontentreview_daterating_distributionreview_velocity_per_daytop_praise_keywordstop_complaint_keywords
Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Review scraped | $0.0012 | Per result written to the dataset. |
| ASO rollup computed | $0.0050 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
FAQ
Do I need an API key, a login, or my own proxy?
Why does Apple return so few reviews?
maxReviewsPerApp to 500 will not change Apple's answer — though it will still deepen the Google Play side.Can I scrape only one store?
What happens if one app in my list fails?
Does an app with zero reviews fail the run?
How current are the reviews?
Is the ASO rollup computed from all reviews or only the sampled ones?
total_reviews_sampled tells you exactly how many. We would rather report an honest sample size than imply a full-catalogue statistic we did not fetch. --- <div align="center"> Built by Devil Scrapes 😈 — a small fleet of opinionated public-data Actors. Honest pricing, real engineering, zero fine print. </div>Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors