Google Play Apps Scraper avatar

Google Play Apps Scraper

Pricing

from $0.24 / 1,000 google play apps

Go to Apify Store
Google Play Apps Scraper

Google Play Apps Scraper

Scrape Google Play apps by keyword, category or package ID. Each row has the title, developer and contact, rating and star histogram, install band, price, in-app purchase range, content rating, version, last update, icon and screenshots. $0.25 per 1,000 apps.

Pricing

from $0.24 / 1,000 google play apps

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

8 days ago

Last modified

Share

Scrape Google Play app listings by keyword, category or package ID, one row per app: title, developer, rating and ratings count, star histogram, price, in-app purchase range, install band, content rating, version, last update, developer contact, icon and screenshots. No Google account and no API key.

Two things to know before you start. Install counts are Google's own band, so you get 1,000,000+ and never an exact figure, though realInstalls carries Play's closer estimate where it publishes one. And a search term reads the first page of results, which is roughly the screenful a person sees, not the whole catalogue.

InputSearch terms, package IDs or Play links, and a store category
OutputOne row per app: title, developer and contact, rating and histogram, installs, price and in-app purchases, content rating, version, dates, description, icon and screenshots
Ceiling2,000 apps per run
Account neededNone, and no Google API key
Price$0.25 per 1,000 apps on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 20,000

🔍 What Google Play Apps Scraper does

Three ways in, and you can mix them in one run.

Search terms work the way the store's own search box does. Type budget tracker and you get the apps Play puts in front of somebody who typed that.

Package IDs or Play links go straight to the listing. com.whatsapp and https://play.google.com/store/apps/details?id=com.whatsapp both work, in the same list.

A store category returns what Play features on that category page: its top free, top grossing, top paid and trending shelves, in Play's own order.

Whichever way you came in, every app is then read from its own listing, so the row is the same shape each time. Package IDs are fetched first and the rest of your row budget is split evenly between the search terms and the category, so five terms and 50 rows give ten of each rather than fifty of the first.

📋 What data you get from each Google Play app

What you getField
The app and its listingappId, url, title, summary, description, descriptionHtml
Developer, with the contact details they publishdeveloper, developerId, developerUrl, developerLegalName, developerEmail, developerWebsite, developerAddress, privacyPolicy
Rating, counts and the star breakdownscore, scoreText, ratings, reviews, histogram
Installs, as Play's band and its own estimateinstalls, minInstalls, realInstalls
Price and how the app makes moneyprice, currency, priceText, free, offersIAP, inAppPurchaseRange, containsAds
Category and content ratinggenre, genreId, contentRating, contentRatingDescription
Release history at a glancereleased, releasedAt, updated, updatedText, recentChanges, version, androidVersion, androidMinSdk
Artworkicon, headerImage, screenshots, video
How the row was reached, and wherequery, searchType, available, country, language, scrapedAt

▶️ How to scrape Google Play apps

  1. Open Google Play Apps Scraper and click Try for free.
  2. Put your terms into Search terms, or package IDs into App IDs or Play links. Delete the examples first.
  3. Set Country to the storefront you care about, and Maximum rows. Start around 20.
  4. Click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

Start it with every box empty and you get one free sample row, marked _sample: true, to see the shape.

💰 How much does it cost to scrape Google Play apps?

$0.25 per 1,000 apps on the Free plan. Paid plans pay a little less: $0.248 on Starter, $0.246 on Scale and $0.244 on Business. On the free plan, the $5 Apify gives you each month covers about 20,000 apps.

One row is one app. An app that turns up under two of your search terms is fetched and counted once. Sample rows, diagnostic rows, a term that matches nothing and a package ID that does not exist are all free.

📥 What you give it

{
"searchTerms": ["budget tracker"],
"appIds": ["com.whatsapp"],
"country": "us",
"language": "en",
"maxItems": 50
}
FieldDefaultWhat it is
searchTermsnone, the form opens with budget tracker and habit trackerWords or phrases, exactly as you would type them into Play. Up to 20.
appIdsnonePackage IDs like com.whatsapp, or full Play links. Both forms in one list. Up to 500.
categorynoneA Play category such as FINANCE or GAME_PUZZLE, picked from the dropdown.
countryus when emptyThe storefront to read. Price, currency, install band, content rating and even whether the app exists all depend on it.
languageen when emptyThe language of the text. It changes no numbers.
maxItems20 when emptyTotal apps for the run, up to 2,000.
proxyUrlsnoneOptional. Your own servers, used exactly as given.

One storefront per run. country is a single code, so comparing prices across five markets means five runs, one per market.

An unrecognised category is dropped rather than refused. Alongside search terms or package IDs you get a BAD_INPUT notice and the rest of the run still happens. On its own, the run has nothing left to do and returns the free sample row, which is easy to misread as a failure.

📤 What you get back

A real row from a run in September 2026, with the long text and links trimmed:

{
"ok": true,
"recordType": "app",
"query": "budget tracker",
"searchType": "search",
"appId": "com.thebudgetingapp.thebudgetingapp",
"url": "https://play.google.com/store/apps/details?id=com.thebudgetingapp...",
"title": "Budgeting App - Spend Tracker",
"summary": "Budget planner and expense tracker to help manage your personal finance.",
"description": "The Budgeting App is a simple and easy-to-use budget planner and daily expense tracker designed to simplify your personal finance...",
"descriptionHtml": "The Budgeting App is a simple and easy-to-use budget planner and daily expense tracker...",
"developer": "The Budgeting App",
"developerId": "4918164273133767251",
"developerUrl": "https://play.google.com/store/apps/developer?id=4918164273133767251",
"developerLegalName": "THE BUDGETING COMPANY LIMITED",
"developerEmail": "...",
"developerWebsite": "https://thebudgeting.app",
"developerAddress": "...",
"privacyPolicy": "https://thebudgeting.app/privacy-policy",
"genre": "Finance",
"genreId": "FINANCE",
"score": 4.71,
"scoreText": "4.7",
"ratings": 4207,
"reviews": 100,
"histogram": { "1": 167, "2": 0, "3": 83, "4": 377, "5": 3573 },
"installs": "100,000+",
"minInstalls": 100000,
"realInstalls": 226245,
"price": 0,
"currency": "USD",
"priceText": "Free",
"free": true,
"offersIAP": true,
"inAppPurchaseRange": "$2.99 - $89.99 per item",
"containsAds": false,
"adsLabel": null,
"contentRating": "Everyone",
"contentRatingDescription": null,
"released": "Aug 13, 2022",
"releasedAt": "2022-08-14T04:31:42.000Z",
"updated": "2026-09-11T07:25:11.000Z",
"updatedText": "Sep 11, 2026",
"recentChanges": "- Budget home screen widget\n- Tracker insights - see when you'll get there...",
"version": "7.2.2",
"androidVersion": "11",
"androidMinSdk": 36,
"icon": "https://play-lh.googleusercontent.com/yIlsuOo3M2rthxd8QputTbLqQVqW0nMa...",
"headerImage": "https://play-lh.googleusercontent.com/BESOXa68gKo6WUQAPsCa-gFs24X18cy0...",
"screenshots": ["https://play-lh.googleusercontent.com/fduMeD1CdniW-mRkz76TN3iC5Xtl..."],
"video": null,
"topChartRank": null,
"available": true,
"country": "us",
"language": "en",
"scrapedAt": "2026-09-21T01:23:09.777Z"
}
FieldHow to read it
appIdThe Android package ID. Stable, and the right key to join and dedupe on.
searchTypeHow this app was reached: search, appId or category. query holds the term, ID or category behind it.
installsGoogle's band, like 1,000,000+. minInstalls is the same band as a number, realInstalls is Play's closer estimate.
score, scoreTextThe raw average and the rounded label Play prints. ratings counts stars, reviews counts written ones.
histogramStar counts one to five, so you can see the shape rather than just the mean.
priceIn whole currency units for the country you asked for, with priceText and free beside it.
offersIAP, inAppPurchaseRange, containsAdsThe money labels off the listing. The range is null when Play shows none.
version, androidVersionnull on apps that ship a different build per device, which Play shows as varying.
availablefalse when the listing exists but the storefront has no offer for it.
screenshotsEvery screenshot on the listing, in order. The row above has 24 and shows the first.

🧾 Reading the output

RowHow to spot itCharged
An app_sample and _diagnostic both absentyes
The sample row_sample: trueno
A diagnostic_diagnostic: true and an errorCodeno

Filter on _sample and _diagnostic, not on recordType. The free sample row also carries recordType: "app", so a filter on that alone keeps it.

CodeWhat it means
BAD_INPUTSomething in the input could not be used. details says what to change.
NO_RESULTSPlay answered, and had nothing for that term or category.
NOT_FOUNDThat package ID does not exist, or is not published in this country.
NOT_SERVEDThis app was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED.
NETWORKPlay could not be reached or answered badly.
TIME_BUDGETThe run hit its time limit before reaching this app. Everything already delivered is complete.
PROXY_INPUT_ADJUSTEDA connection setting in your input could not be used, so the run used its own.
CHARGE_ERRORA charge could not be recorded. The run stops handing over rows rather than carrying on quietly.

💡 What people use it for

  • Watching a category shelf week by week to see which apps climb and which drop off.
  • Pulling the twenty apps that answer a search term, then reading their ratings, install bands and in-app purchase ranges side by side before building something in that space.
  • Checking how an app is priced across markets by running the same package ID per country.
  • Tracking a rival's release notes and version numbers with a scheduled run on its package ID.

One market, both stores, and what users complain about:

  1. Run this on budget tracker and sort the rows by realInstalls.
  2. Put the top appId values into Google Play Reviews Scraper with starRating set to 1, and read what the unhappy users say.
  3. Run App Store Scraper with the same searchTerm to see who owns the same market on iPhone.

🚧 What it does not do

  • No reviews. Ratings, the count and the star histogram are here, but review text is a different actor, linked below.
  • Install counts are a band. 1,000,000+ is what Play publishes. realInstalls is its own estimate and is not an exact number either.
  • A search reads one page per term, so it is the front of the results, not everything Play would ever show for it.
  • A category returns the featured shelves, which is what that page shows, not every app filed under it.
  • One storefront per run. Five markets means five runs.
  • version is null for apps that vary by device, because the listing says so rather than giving a number.
  • Rows are a snapshot. Ratings, prices and rankings move daily, and scrapedAt records when the row was read.
  • Developer fields are whatever the developer filled in. An e-mail or a website can be missing or stale, and the address is free text.
  • It is not an official Google tool. Dami's Studio is independent and is not affiliated with or endorsed by Google, or by any other company named on this page.

🧭 Which app scraper do you need?

If you wantUse
Google Play listings by keyword, category or package IDThis one
The review text for those appsGoogle Play Reviews Scraper
The same job on the iPhone App StoreApp Store Scraper
New reviews from both stores, sorted into bugs, billing and requestsApp Review Triage
How often people search for an app name over timeGoogle Trends Scraper

❓ Questions people ask

Do I need a Google account or a Play API key to scrape Google Play?

No. Nothing to sign up for and no quota.

Can I get the exact install count?

No, and nobody outside Google can. Play publishes a band. realInstalls is the closest number it gives out.

Why did a package ID return nothing?

Usually it is not published in the country you asked for. You get a NOT_FOUND row saying so, and it costs nothing.

How many apps does one search term return?

Whatever fits on Play's first page of results for it, capped by your share of maxItems.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/google-play-apps-scraper. Either way the run happens on your Apify account at the same price.

These are public store listings. Developer contact fields can hold personal data, which GDPR and similar laws cover, so have a reason for collecting them. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the term or package ID and the run ID. The errorCode and details on the diagnostic row usually name the problem on their own.