Aurelix

Tools › Marketing

App Store & Google Play Scraper

App Store and Google Play apps, top charts and reviews in one table, for $0.18 per 1,000 apps and $0.025 per 1,000 reviews, no login.

For product, growth and ASO teams. Paid Apify plans pay $0.15 per 1,000 apps; reviews include the reviewer's name as shown.

$0.18 per 1,000 apps ($0.15 on paid Apify plans)

At a glance

What the App Store & Google Play Scraper does

Stores
Apple App Store and Google Play, one schema (store field)
Start from
App URLs, App Store IDs, package names, developer pages, App Store top charts
Reviews
App Store: up to 500 per app and country; Google Play: the ~20 the app page shows
Countries
Any store country, several per run (e.g. us, gb, de)
Output
50 app fields, 19 review fields; JSON, CSV, Excel, API
Automate
Only-new-reviews mode, schedules, Slack/webhook digest, Zapier, Make, n8n, MCP

Who it is for

  • Product and growth teams tracking their own app's new reviews every day, both stores in one sheet
  • Competitor research: ratings, installs, prices, update cadence and what users complain about
  • App Store Optimization: top-chart ranks by category and country, with full app details
  • Market sizing: every app of a publisher, with ratings and Google Play install brackets
  • Feeding review text to an LLM for sentiment, feature requests and bug themes

Output

What you get

  • Every row: type (app or review), store (app_store or google_play), app_id, country, url, source_url, scraped_at in ISO 8601 UTC
  • App rows: title, bundle_id, developer, developer_id, developer_url, developer_website, summary, description, genre, genre_id, genres
  • App rows: price, currency, is_free, in_app_purchases, contains_ads, rating, ratings_count, reviews_count, rating_histogram (Google Play), rating_current_version (App Store)
  • App rows: installs, installs_min, installs_count (Google Play), content_rating, version, min_os_version, size_bytes, languages, released_at, updated_at, release_notes, icon_url, screenshots, privacy_policy_url
  • App rows from charts and developer pages: chart, chart_genre, chart_rank, chart_ranks (every chart and rank the app holds in this run), found_via
  • Review rows: app_title, review_id, reviewer_name, reviewer_url (App Store), reviewer_avatar_url (Google Play), rating, review_title, text, date, app_version, helpful_votes, total_votes, developer_reply, developer_reply_at

Example

Input and output

Input

{
  "apps": [
    "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580",
    "com.spotify.music"
  ],
  "maxReviewsPerApp": 100,
  "countries": [
    "us",
    "gb"
  ]
}

One output record

{
  "type": "app",
  "store": "app_store",
  "app_id": "6448311069",
  "bundle_id": "com.openai.chat",
  "title": "ChatGPT",
  "url": "https://apps.apple.com/us/app/chatgpt/id6448311069",
  "developer": "OpenAI OpCo, LLC",
  "developer_id": "1684349733",
  "developer_url": "https://apps.apple.com/us/developer/openai-opco-llc/id1684349733",
  "developer_website": "https://openai.com/chatgpt",
  "summary": null,
  "description": "Introducing ChatGPT for iOS: OpenAI’s latest advancements at your fingertips.\n\nThis official app is free, syncs your history across devices, and brings you…",
  "genre": "Productivity",
  "genre_id": "6007",
  "genres": [
    "Productivity",
    "Utilities"
  ],
  "price": 0,
  "currency": "USD",
  "is_free": true,
  "in_app_purchases": null,
  "contains_ads": null,
  "rating": 4.82,
  "ratings_count": 11924418,
  "reviews_count": null,
  "rating_histogram": null,
  "rating_current_version": 4.82,
  "ratings_count_current_version": 11924418,
  "installs": null,
  "installs_min": null,
  "installs_count": null,
  "content_rating": "12+",
  "version": "1.2026.300",
  "min_os_version": "18.0",
  "size_bytes": 305684480,
  "languages": [
    "SQ",
    "AM",
    "AR",
    "… 57 more"
  ],
  "released_at": "2023-05-18T07:00:00Z",
  "updated_at": "2026-11-03T18:55:49Z",
  "release_notes": "Bug fixes and small improvements.",
  "icon_url": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/5c/9c/84/5c9c8431-bd39-08fa-cba4-8bb6561f9877/AppIcon-0-0-1x_U007epad-0-0-0-1-0-85-220.png/512x512bb.jpg",
  "header_image_url": null,
  "screenshots": [
    "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/a1/39/1d/a1391d37-04ea-8ead-62eb-d925b773ed4a/1_iPhone.jpg/320x480bb.jpg",
    "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/24/88/47/248847d2-af10-20a9-cfd7-42d071b3dd61/2_iPhone.jpg/320x480bb.jpg",
    "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/ad/c7/1f/adc71f08-c935-fd79-c6c8-e5ba2d690bea/3_iPhone.jpg/320x480bb.jpg",
    "… 13 more"
  ],
  "privacy_policy_url": null,
  "chart": "top-free",
  "chart_genre": "iTunes Store: Top Free Apps",
  "chart_rank": 5,
  "chart_ranks": [
    {
      "chart": "top-free",
      "chart_genre": "iTunes Store: Top Free Apps",
      "rank": 5
    },
    {
      "chart": "top-grossing",
      "chart_genre": "iTunes Store: Top Grossing Apps",
      "rank": 1
    }
  ],
  "found_via": "chart",
  "country": "us",
  "language": null,
  "source_url": "https://apps.apple.com/us/app/chatgpt/id6448311069",
  "scraped_at": "2026-11-05T08:23:39Z"
}

From a real run of this tool; long text and lists shortened here.

How to use it

Three steps

  1. Paste apps into 'Apps': App Store or Google Play URLs, App Store IDs like 324684580, or package names like com.spotify.music. Or add a developer page, or pick App Store top charts.
  2. Set 'Reviews per app' (0 = app details only) and the store countries, e.g. us and gb; turn on 'Only new reviews' for daily tracking.
  3. Click Start, or schedule it daily. Download JSON, CSV or Excel, or send results to Google Sheets, Slack, Zapier, Make or n8n.

API

Call it from Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("aurelix/app-store-google-play-scraper").call(run_input={'apps': ['https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580',
          'com.spotify.music'],
 'maxReviewsPerApp': 100,
 'countries': ['us', 'gb']})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

pip install apify-client. The same input works from the Apify console, a schedule, Make, n8n, Zapier or an AI agent through the Apify MCP server.

Pricing

Pay per result

Per 1,000 apps, free plan$0.18
Per 1,000 apps, paid plans$0.15
Review result, per 1,000, free plan$0.03
Start fee per run$0.005

Live prices from the Apify Store; no subscription and no platform usage billed on top. See the Store page.

Honest limits

What it does not do

  • No keyword search on either store and no Google Play charts: those paths are disallowed by the stores' robots.txt.
  • App Store reviews: at most 500 per app and country (Apple's public feed). Google Play reviews: about 20 per app and language (what the public page shows).
  • App Store top charts go to rank 100; Google Play developer pages list what the page shows (all apps for most developers, a first set for very large ones).
  • Google Play shows 'Varies with device' for many apps, so version and minimum Android version are often empty.
  • Apple's public review feed sometimes answers with no reviews for a while; such apps are named in the run status as not read (status 'Partial') instead of looking review-free.
  • App IDs or package names the stores do not know are skipped without charge; after 5 unknown apps in a row the run stops and says so, so check the IDs (package names are case-sensitive).
  • If a store refuses 2 requests in a row even after retries, the run stops asking that store and names it in the status; the other store is still read.
  • Ratings, ranks and prices change constantly; a run is a snapshot of when it ran.
  • If a store keeps throttling after retries, results already read are kept and the run status starts with 'Partial'.
  • Reviewer fields are what each store shows: Apple's feed gives a display name and profile link, Google Play a display name and picture; neither shows emails or real-name verification.

FAQ

Questions buyers ask

How much does the App Store & Google Play Scraper cost?

$0.18 per 1,000 apps ($0.15 on paid Apify plans), billed through your Apify account; you pay only for results. Apify's free plan includes $5 of credit a month, enough for about 27,777 apps.

Which data comes from which store?

Both stores fill the same fields where both publish them. Google Play adds installs, the star histogram, written-review count, in-app purchase range, ads label, feature graphic and privacy-policy link. The App Store adds size, minimum iOS version, supported languages, the current version's rating and review titles and total votes. A field a store does not publish is null.

How many reviews can I get?

App Store: up to 500 per app and country, which is Apple's public feed limit (50 per page, 10 pages), sorted by most recent or most helpful. Add more countries to get more: each has its own 500. Google Play: the reviews its public app page shows, about 20 per app and language; change 'Google Play language' to get another language's set.

Why does it return about 20 Google Play reviews per app?

This Actor only reads pages play.google.com/robots.txt allows, so it returns the reviews on the public app page, about 20 per app and language. This tool doesn't cover thousands of Play reviews per app.

Can I search the App Store or Google Play by keyword?

No. Both stores' robots.txt files disallow their search paths (itunes.apple.com/search and play.google.com/store/search), so this Actor does not use them. Start from app URLs, developer pages or App Store top charts instead.

Does it cover Google Play top charts?

No. Google Play loads its charts through an endpoint robots.txt disallows. App Store top free, top paid and top grossing charts are supported, overall or by category, up to rank 100.

Does it return reviewer names?

Yes, as the stores show them publicly: the reviewer's display name on every review, the public iTunes profile link on App Store reviews and the profile picture URL on Google Play reviews. Review text and developer replies are returned unchanged. Nothing behind a login is read. Data is returned as shown publicly on the source; people can ask for removal by opening an issue on this Actor's Issues tab.

How does 'Only new reviews' work?

The Actor remembers the review IDs it returned per app (and Google Play language) across all countries, for 180 days; adding a country later never returns a review you already received. The next run returns only reviews it has not returned before, so a daily schedule gives you each day's new reviews and charges only for those.

Does it need a proxy?

The default Apify Proxy datacenter group works for both stores; nothing extra to buy. The Actor waits between requests and switches proxy session when a store throttles.

Is it legal to scrape the App Store and Google Play?

It reads only public data any logged-out visitor can see: app store listings, ratings and public reviews from Apple's public feeds and Google Play app pages, on paths the stores' robots.txt allows. It never logs in and never solves CAPTCHAs; reviewer display names and public profile links are returned as the stores show them. Apple's and Google's terms discourage automated access; keep your use to analysis of public data. Data is returned as shown publicly on the source; people can ask for removal by opening an issue on this Actor's Issues tab; if Apple or Google formally asks us to stop, this Actor will stop. You are responsible for using the data lawfully, incl. privacy laws; this is not legal advice.

Related

Related tools

Try the App Store & Google Play Scraper

Open it on the Apify Store, paste the example input above and click Start. Results download as CSV, Excel or JSON.