Google Play Store Scraper
Pricing
from $3.99 / 1,000 results
Google Play Store Scraper
Collect normalized app metadata from public Google Play detail, search, and category pages with bounded requests.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Google API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does the Google Play Store Scraper do?
The Google Play Store Scraper collects public app listing and detail data from Google Play. Direct app-detail inputs return a rich app record; search and category inputs can optionally enrich discovered cards with their public detail pages. It does not log in, access private APIs, collect reviewer identities, solve CAPTCHAs, or bypass access controls.
Why use this Actor?
Use the structured records for app catalog research, market comparisons, store monitoring, or downstream spreadsheets and BI. The Actor accepts app package IDs, public Play URLs, search terms, and category slugs. Repeated package IDs can be deduplicated across the requested sources. Search/category detail enrichment is disabled by default and capped because each app detail page adds another public request.
Result and detail limits help keep runs within the scope you need. The Actor collects public Google Play listing information and does not bypass access controls.
What data can the Actor extract?
Values are omitted when Google Play does not expose them on the fetched page. Full app descriptions and release notes are retained without text truncation; descriptionHtml preserves safe source formatting. Screenshot and related-app arrays are also capped. Device-availability text reflects the device/session associated with the page and is not a universal compatibility or regional-availability guarantee. Explicit rating qualifiers (for example, “Users Interact”) are listed separately from the age rating.
| Area | Example fields |
|---|---|
| App identity | appId, title, appUrl, appCategory, appCategoryId |
| Developer | developer, developerId, developerUrl, developerWebsiteUrl, developerSupportUrl, developerEmail, supportEmail, developerPhone |
| Ratings and reach | rating, ratingCount, reviewCount, ratingDistribution, installs, installsMinimum |
| Price and flags | price, priceText, priceCurrency, free, containsAds, inAppPurchases, inAppPurchasesText |
| Listing details | contentRating, contentRatingDescriptors, releasedOn, updatedOn, version, requiredAndroidVersion, downloadSize |
| Description and media | shortDescription, full-text description, sanitized descriptionHtml, whatsNew, iconUrl, screenshotUrls, videoUrl, videoThumbnailUrl |
| Device availability | compatibilityText, deviceAvailabilityText, deviceAvailabilityStatus, familyLibraryAvailable |
| Play badges | editorsChoice, chartRankText |
| Privacy and related apps | dataSafety, dataSafetyUrl, permissionsUrl, privacyPolicyUrl, familyLibraryAvailable, relatedApps |
The dataSafety values are the developer-provided statements shown by Google Play, not an independent security assessment. Device-specific account details and reviewer content are excluded.
How to scrape Google Play apps
- Open the Actor’s Input tab.
- Enter one package ID, a list of package IDs, a Google Play URL, a search term, or a category.
- Choose a locale and country when the listing region matters.
- Enable
includeAppDetailsand adjustmaxDetailAppsfor enriched search/category results. - Start the run and inspect the app records in Dataset.
How much does it cost to scrape Google Play?
Apify compute use depends on your plan and the amount of data collected. Optional detail-page enrichment and larger result limits can increase usage. Check the run’s usage in Apify Console for the applicable current price.
Input
See the input tab for the complete configuration. Inputs support startUrls (objects containing url), compatibility aliases sourceUrls, urls, or url, appId, appIds, category, searchTerm, and searchTerms. Sources from different input properties are combined and identical normalized URLs are deduplicated. If no source is specified, the Actor uses the Google Maps app listing on Google Play.
page is fixed at 1: the public Google Play search/category view does not expose a stable numeric page offset. maxPages (default 10, 1–50) caps explicitly supplied source URLs processed; each URL represents one source page. maxTargets remains a compatibility alias for maxPages; conflicting aliases are rejected. maxApps (default 20, 1–100) caps cards per search/category source; maxItems (default 100, 1–500) is the global record limit. maxResults is a compatibility alias for maxItems. Records are deduplicated by package ID by default.
includeAppDetails defaults to false. The Actor fetches detail pages for at most maxDetailApps apps (default 100, 1–100) across the run. A detail record is emitted only when its detail page is successfully parsed; failed detail requests are reported in run health instead of downgrading the row to a sparse search card. Set includeAppDetails to false to receive visible search/category cards without detail fetches. A direct app-detail source is parsed as a detail record regardless of this toggle.
Locale defaults to en-US. You can provide language and country separately; location is accepted as a country alias.
Runnable input examples:
{"appId":"com.google.android.apps.maps"}
{"appIds":["com.google.android.apps.maps","com.google.android.youtube"],"maxItems":10}
{"category":"TRAVEL_AND_LOCAL","maxApps":10}
{"searchTerm":"music","maxApps":5}
{"searchTerms":["navigation","weather"],"includeAppDetails":true,"maxDetailApps":5,"maxItems":10}
{"startUrls":[{"url":"https://play.google.com/store/apps/details?id=com.google.android.apps.maps&hl=en&gl=US"}],"page":1,"maxPages":1,"maxItems":1}
{"searchTerm":"music","locale":"en-IN","includeAppDetails":true,"maxDetailApps":3}
{"appId":"com.google.android.apps.maps","locale":"en-IN","maxItems":10}
Output
App detail pages usually contain more information than search cards. Search cards may also show prices and video previews. The Editors' Choice badge appears only when Google displays it. Missing values are omitted rather than guessed. Developer and support contact details are included only when they appear in the app-support section. The safe HTML description preserves paragraphs, lists, emphasis, and links.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Example of the record structure (optional source values omitted here):
{"appId": "com.example.store","title": "Store Demo","developer": "Example Labs","developerEmail": "contact@example.com","supportEmail": "help@example.com","developerUrl": "https://play.google.com/store/apps/dev?id=example-labs","appUrl": "https://play.google.com/store/apps/details?id=com.example.store","appCategory": "Productivity","appCategoryId": "PRODUCTIVITY","rating": 4.4,"ratingCount": 567,"reviewCount": 55,"ratingDistribution": {"oneStar": 2,"twoStar": 1,"threeStar": 3,"fourStar": 4,"fiveStar": 45},"installs": "10,000+ Downloads","installsMinimum": 10000,"price": 0,"priceCurrency": "USD","free": true,"containsAds": true,"inAppPurchases": true,"contentRating": "Everyone 10+","contentRatingDescriptors": ["Users Interact"],"releasedOn": "Feb 26, 2019","updatedOn": "Sep 10, 2026","version": "2.1.0","requiredAndroidVersion": "7.0 and up","downloadSize": "119 MB","description": "A public app description with the source's paragraph and bullet structure.","descriptionHtml": "<p>A public app description with its paragraph structure.</p><ul><li>Source-visible list item</li></ul>","whatsNew": "Bug fixes and performance improvements.","iconUrl": "https://play-lh.googleusercontent.com/icon=s128","screenshotUrls": ["https://play-lh.googleusercontent.com/screen-one=w440-h960"],"videoThumbnailUrl": "https://i.ytimg.com/vi/example/hqdefault.jpg","privacyPolicyUrl": "https://example.com/privacy","permissionsUrl": "https://play.google.com/store/apps/permissions?id=com.example.store","dataSafetyUrl": "https://play.google.com/store/apps/datasafety?id=com.example.store","dataSafety": {"encryptedInTransit": true,"deletionRequestAvailable": true},"familyLibraryAvailable": true,"deviceAvailabilityText": "This app is available for your device","deviceAvailabilityStatus": "available_for_current_device"}
Tips and advanced options
Use a direct app ID or detail URL for the richest output. Search and category pages begin with card details; turn on app-detail enrichment if you need fuller listings. Lower maxItems, maxApps, or maxDetailApps when you need a smaller run.
FAQ, support, and responsible use
If a run returns no app rows, verify that the app ID or URL is valid and publicly accessible. Review the Actor’s Issues tab for bugs or feature requests and include the run ID. The API tab explains how to start runs and retrieve dataset items.
This Actor is not affiliated with Google. It reads publicly visible store information only and does not attempt authentication or access-control circumvention. App listings and data-safety disclosures may contain information about people or organizations; use results lawfully, minimize personal-data handling, and follow Google Play’s terms and applicable privacy laws. The Actor does not independently verify developer-provided statements.