Playstore Scraper
Pricing
Pay per usage
Playstore Scraper
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Google Play Store Scraper
Scrape Google Play Store data at scale. Extract app names, prices, ratings, download counts, screenshots, developer info, reviews, and more. Export to JSON, CSV, Excel, or connect directly via API.
Key Features
- Comprehensive App Data -- Extract 30+ fields per app including name, ID, developer, price, rating, installs, description, screenshots, category, content rating, version, and more.
- User Reviews Scraping -- Optionally extract the most recent user reviews with author, rating, text, date, and helpful count.
- 4 Extraction Strategies -- Cascading fallback extraction (AF_initDataCallback, DOM parsing, JSON-LD, Meta tags) ensures maximum data reliability even when Google updates their page structure.
- Multi-Region Support -- Scrape Play Store data for any country and language. Pricing, rankings, and availability vary by region.
- Smart Filtering -- Filter by category, country, language, and free/paid status. Get exactly the data you need.
- Anti-Detection -- 12 rotating user agents, randomized delays, proxy support, and header rotation to avoid blocks.
- Pay-Per-Event Billing -- Only pay $0.004 per app scraped. No minimum charges, no subscriptions.
Use Cases
- App Market Research -- Analyze competitors in your app category. Track ratings, download counts, and pricing strategies.
- App Store Optimization (ASO) -- Research top-ranking apps for your target keywords. Study descriptions, screenshots, and metadata patterns.
- Competitor Analysis -- Monitor competitor app updates, version history, release notes, and user reviews.
- Investment & Due Diligence -- Evaluate app companies by analyzing download trends, ratings, and market positioning.
- Academic Research -- Study the Android app ecosystem, pricing models, and category distributions at scale.
- Lead Generation -- Find app developers and their contact information (email, website, address) for B2B outreach.
- Review Monitoring -- Track user sentiment by scraping and analyzing app reviews over time.
- Market Intelligence -- Identify trending categories, emerging apps, and market gaps.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerm | String | Yes | -- | Keyword to search for on Google Play Store (e.g., "fitness tracker", "VPN", "photo editor") |
category | Enum | No | All | Filter by Play Store category (e.g., HEALTH_AND_FITNESS, GAME, PRODUCTIVITY) |
country | String | No | us | Two-letter country code for regional Play Store (e.g., us, gb, de, jp, br) |
language | String | No | en | Two-letter language code (e.g., en, es, fr, de, ja) |
maxResults | Integer | No | 50 | Maximum number of apps to scrape (1-500) |
includeReviews | Boolean | No | false | Also scrape user reviews for each app (increases run time) |
freeOnly | Boolean | No | false | Only scrape free apps, skip paid apps |
proxyConfiguration | Object | No | Apify Proxy | Proxy settings for scraping. Datacenter proxies usually work fine. |
Output Data Fields
Each scraped app produces a JSON object with these fields:
| Field | Type | Description |
|---|---|---|
appName | String | Name of the app |
appId | String | Package name / app ID (e.g., com.example.app) |
developer | String | Developer or company name |
developerUrl | String | Link to the developer's Play Store page |
developerEmail | String | Developer contact email (if available) |
developerWebsite | String | Developer website URL (if available) |
developerAddress | String | Developer physical address (if available) |
price | String | Display price ("Free" or "$4.99") |
priceNumeric | Number | Numeric price value (0 for free apps) |
currency | String | Currency code (USD, EUR, GBP, etc.) |
isFree | Boolean | Whether the app is free |
rating | Number | Average star rating (0-5) |
ratingsCount | Number | Total number of ratings |
reviewsCount | Number | Total number of reviews |
installs | String | Download count (e.g., "10,000,000+") |
description | String | Full app description |
shortDescription | String | Truncated description (first 200 chars) |
releaseNotes | String | Latest "What's New" content |
version | String | Current app version |
size | String | App download size |
category | String | Play Store category |
contentRating | String | Content rating (Everyone, Teen, Mature 17+, etc.) |
screenshots | Array | List of screenshot image URLs |
iconUrl | String | App icon image URL |
headerImage | String | Feature graphic / header image URL |
appUrl | String | Full Play Store URL |
privacyUrl | String | Privacy policy URL |
releaseDate | String | Initial release date |
lastUpdated | String | Date of last update |
minimumAndroid | String | Minimum Android version required |
containsAds | Boolean | Whether the app contains ads |
inAppPurchases | Boolean | Whether the app has in-app purchases |
reviews | Array | User reviews (only when includeReviews=true) |
scrapedAt | String | ISO timestamp of when the data was scraped |
Review Object Fields (when includeReviews is enabled)
| Field | Type | Description |
|---|---|---|
author | String | Reviewer's display name |
rating | Number | Star rating given (1-5) |
text | String | Full review text |
date | String | Date the review was posted |
helpfulCount | Number | Number of "helpful" votes |
Example Output
{"appName": "Spotify: Music and Podcasts","appId": "com.spotify.music","developer": "Spotify AB","developerUrl": "https://play.google.com/store/apps/developer?id=Spotify+AB","developerEmail": "android-support@spotify.com","developerWebsite": "https://www.spotify.com","developerAddress": "Regeringsgatan 19, SE-111 53 Stockholm, Sweden","price": "Free","priceNumeric": 0,"currency": "USD","isFree": true,"rating": 4.3,"ratingsCount": 29584612,"reviewsCount": 29584612,"installs": "1,000,000,000+","description": "With Spotify, you can listen to music and play millions of songs and podcasts for free...","shortDescription": "With Spotify, you can listen to music and play millions of songs and podcasts for free...","releaseNotes": "Bug fixes and improvements.","version": "8.9.12.345","size": "Varies with device","category": "Music & Audio","contentRating": "Teen","screenshots": ["https://play-lh.googleusercontent.com/...=w720-h1280","https://play-lh.googleusercontent.com/...=w720-h1280"],"iconUrl": "https://play-lh.googleusercontent.com/...=w240-h240","headerImage": "","appUrl": "https://play.google.com/store/apps/details?id=com.spotify.music&gl=us&hl=en","privacyUrl": "https://www.spotify.com/legal/privacy-policy/","releaseDate": "May 29, 2014","lastUpdated": "Feb 28, 2026","minimumAndroid": "8.0 and up","containsAds": true,"inAppPurchases": true,"scrapedAt": "2026-03-02T12:00:00.000Z"}
Code Examples
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run_input = {"searchTerm": "fitness tracker","category": "HEALTH_AND_FITNESS","country": "us","language": "en","maxResults": 100,"includeReviews": True,"freeOnly": False,"proxyConfiguration": {"useApifyProxy": True},}run = client.actor("sovereigntaylor/playstore-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['appName']} | Rating: {item['rating']} | Installs: {item['installs']}")
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const input = {searchTerm: 'photo editor',country: 'us',language: 'en',maxResults: 50,includeReviews: false,freeOnly: true,proxyConfiguration: { useApifyProxy: true },};const run = await client.actor('sovereigntaylor/playstore-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(`${item.appName} | ${item.rating} stars | ${item.installs} downloads`);});
cURL (Direct API Call)
curl -X POST "https://api.apify.com/v2/acts/sovereigntaylor~playstore-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerm": "VPN","maxResults": 25,"freeOnly": true}'
Supported Categories
The actor supports all Google Play Store categories including:
Apps: Art & Design, Auto & Vehicles, Beauty, Books & Reference, Business, Communication, Dating, Education, Entertainment, Events, Finance, Food & Drink, Health & Fitness, House & Home, Lifestyle, Maps & Navigation, Medical, Music & Audio, News & Magazines, Parenting, Personalization, Photography, Productivity, Shopping, Social, Sports, Tools, Travel & Local, Video Players, Weather
Games: Action, Adventure, Arcade, Board, Card, Casino, Casual, Educational, Music, Puzzle, Racing, Role Playing, Simulation, Sports, Strategy, Trivia, Word
Frequently Asked Questions
How many apps can I scrape per run?
Up to 500 apps per run. For larger datasets, run the actor multiple times with different search terms or categories.
What proxies should I use?
Datacenter proxies (the default Apify proxy) usually work fine for Google Play Store. Residential proxies are recommended if you encounter blocks.
Does it work for all countries?
Yes. Set the country parameter to any two-letter country code (ISO 3166-1 alpha-2). Pricing, rankings, and app availability vary by region.
How is pricing calculated?
The actor uses Pay-Per-Event (PPE) pricing at $0.004 per app scraped. You only pay for successfully extracted data. Platform compute costs are separate.
Can I scrape a specific app by ID?
Currently the actor searches by keyword. To scrape a specific app, use its exact name as the search term with maxResults: 1.
How often does Google Play update its page structure?
Google frequently updates the Play Store frontend. This actor uses 4 independent extraction strategies with dozens of fallback selectors to remain resilient against changes.
What data is NOT available?
The actor cannot extract: exact daily download counts (Google only provides ranges), A/B test variants, internal analytics, or data that requires a developer account login.
Tips for Best Results
- Use specific search terms -- "fitness step counter" yields more targeted results than just "fitness".
- Combine category filters -- Narrow results by setting both a search term and category.
- Start small -- Test with
maxResults: 10before running large scrapes. - Enable reviews sparingly -- Review scraping increases run time significantly.
- Use different regions -- Some apps rank differently across countries.
Integration — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("sovereigntaylor/playstore-scraper").call(run_input={"searchTerm": "playstore","maxResults": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item.get('title', item.get('name', 'N/A'))}")
Integration — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('sovereigntaylor/playstore-scraper').call({searchTerm: 'playstore',maxResults: 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(item.title || item.name || 'N/A'));
Related Actors
- App Store Scraper -- Scrape Apple App Store data
- Google Search Scraper -- Scrape Google search results
- Product Hunt Scraper -- Scrape Product Hunt listings
Changelog
v1.0.0 (2026-03-02)
- Initial release
- 4 extraction strategies with cascading fallbacks
- Full app metadata extraction (30+ fields)
- User review scraping
- Multi-region and multi-language support
- PPE billing integration
- Anti-detection measures
Support
For bugs, feature requests, or questions, open an issue on the actor page or contact the developer.
Legal Notice
This actor is intended for lawful data collection purposes only. Users are responsible for complying with Google Play Store's Terms of Service and all applicable laws. The scraped data should be used in accordance with data protection regulations.