App Store & Google Play Scraper - Ratings & Prices
Pricing
from $0.33 / 1,000 results
App Store & Google Play Scraper - Ratings & Prices
$0.50 per 1,000 results, no subscription. Extracts structured app data (name, description, storeUrl, image, category, genre, operatingSystem, devices, version, price, priceCurrency and more) from any website that publishes schema.org markup. Paste URLs or crawl a site; get JSON, CSV or Excel.
Pricing
from $0.33 / 1,000 results
Rating
0.0
(0)
Developer
Rocketyard
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Security
Limited permissionsShare
What is App Store & Google Play Scraper?
App Store & Google Play Scraper is a app scraper that extracts app data from any web page that publishes schema.org structured data (JSON-LD or microdata), which many websites add for Google rich results. Give it a list of URLs, or a start page plus crawling, and get back clean, normalized records. It reads that markup instead of the page layout, so one Actor works across many sites and keeps working through redesigns.
Use cases
- Track ratings, rating counts and prices of competitor apps
- Build an app directory or market-research dataset
- Monitor category rankings inputs: genres, keywords and supported devices
Why use App Store & Google Play Scraper?
- Works on any website that publishes schema.org data (JSON-LD or microdata)
- Clean, normalized JSON ready for spreadsheets, databases and AI/RAG pipelines
- Pay only per result: no monthly rental, no minimums
- Respects robots.txt and crawl-delay automatically
- Lightweight HTTP extraction: fast and cheap, no browser needed
How it compares
| App scraper | Users (last 30 days) | Successful runs (last 30 days) | Price per 1,000 results |
|---|---|---|---|
| App Store Reviews Scraper API / $0.10/1K Reviews | 669 | 96.1% | $0.10 |
| Google Play Reviews Scraper API / $0.10/1K Reviews | 505 | 95.0% | $0.10 |
| Google Play Store Reviews Scraper | 411 | 91.1% | $0.15 |
| This Actor | new | every release is tested on live pages first | $0.50 |
Apify Store data from 2026-11-04, free-plan prices. Prices and stats change; check each listing before you compare.
How to scrape app data
- Click Try for free.
- Add one or more page URLs to Start URLs (for example
https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580). - Optionally enable Crawl the website to discover more pages on the same site, and narrow it with Link pattern.
- Click Start, then download results as JSON, CSV or Excel, or read them through the API.
How do I check that a site publishes the data?
Run the Actor on one page: a page without the markup returns a free NO_STRUCTURED_DATA error item, so the check costs nothing beyond the start fee. You can also open the page's source and search for application/ld+json and SoftwareApplication, or paste the URL into the Schema Markup Validator.
Input
| Field | JSON key | What it does |
|---|---|---|
| Start URLs | startUrls | Pages with app data, e.g. https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580. Each page needs schema.org SoftwareApplication markup (JSON-LD or microdata); a page without it returns a free error item. With Crawl the website on, the crawl starts from these pages. |
| Max results | maxItems | Stop after this many records in total. This also caps what the run can charge for results. |
| Crawl the website | crawl | Follow links on the same site from the start URLs to find more pages. When off, only the start URLs are read. |
| Max pages to visit | maxPagesPerCrawl | Only used when crawling: the most pages to fetch in one run. |
| Link pattern (regex) | linkPattern | Only used when crawling: follow only links matching this regular expression, e.g. /products/ (max 200 characters, no nested quantifiers). |
| Max concurrency | maxConcurrency | Pages fetched in parallel. A polite delay between requests to the same host always applies. |
| Proxy configuration | proxyConfiguration | Optional. Leave empty unless a site blocks direct requests. |
Input example
{"startUrls": [{"url": "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"}],"maxItems": 100,"crawl": false}
Output example
A real record from the latest test run (apps.apple.com) on 2026-11-06. Fields the page didn't publish are left out here; the Actor returns them as null.
{"url": "https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580","type": "SoftwareApplication","name": "Spotify: Music and Podcasts","description": "With the Spotify app, you can explore an extensive library of music and podcasts for free. Curate the best playlists and stream millions of free songs, albums, and original podcasts on your phone or tablet. Subscribe to Spotify Premium to download and listen offline wherever you are, and unlock o…","image": "https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8b/f2/6a/8bf26ab9-3ced-cb5c-a2b3-19f65e7f5cc6/AppIcon-0-0-1x_U007epad-0-1-0-0-85-220.png/1200x630wa.png","category": "MultimediaApplication","genre": ["Music","Entertainment"],"operatingSystem": "Requires iOS 16.1 and watchOS 10.0 or later. Compatible with iPhone, iPad, and iPod touch.","devices": "Apple TV, Apple Watch, iPhone, iPad","price": 0,"priceCurrency": "USD","ratingValue": 4.8,"ratingCount": 42965043,"keywords": ["Music","Entertainment","Audiobooks","Electronic Music","Music Streaming"],"scrapedAt": "2026-11-06T13:02:06.692Z"}
Output fields
| Field | Description | Filled |
|---|---|---|
url | Page the record was found on | n/a |
type | schema.org type (SoftwareApplication, MobileApplication, WebApplication, VideoGame) | always |
name | name | 100% |
description | description | 100% |
storeUrl | store url | 50% |
image | image | 100% |
category | category | 100% |
genre | genre | 50% |
operatingSystem | operating system | 100% |
devices | devices | 50% |
version | version | 0% |
price | price | 100% |
priceCurrency | price currency | 100% |
contentRating | content rating | 50% |
fileSize | file size | 0% |
ratingValue | rating value | 100% |
ratingCount | rating count | 100% |
keywords | keywords | 50% |
scrapedAt | ISO timestamp of the extraction | always |
"Filled" is the share of records with a value in the latest test run. Sites decide what they publish, so yours can differ. A field without a value comes back as null, never guessed.
Limits
- Pages without schema.org
SoftwareApplicationmarkup return no record, only a free error item. - Markup added only by JavaScript in the browser is not read: the Actor reads the HTML the server sends.
- Pages behind a login or paywall are not accessed, paths that robots.txt disallows are skipped, and protections are never bypassed.
Error items
When an input produces no data, the dataset gets one error item for it, so nothing is skipped silently. Error items are free: only result records are charged.
{"url": "https://example.com/a-page-that-was-removed","input": "https://example.com/a-page-that-was-removed","error": {"type": "https://rocketyard.dev/errors#not-found","title": "Not found","status": 404,"detail": "HTTP 404","instance": "https://example.com/a-page-that-was-removed","code": "NOT_FOUND"}}
The error object follows RFC 9457 (Problem Details). Its type links to the explanation of the code, and status is the site's HTTP status when there was one. Filter on error.code to separate failures from data; it has its own column in CSV and Excel exports.
| Code | Meaning | Retry? |
|---|---|---|
ROBOTS_DISALLOWED | The site's robots.txt does not allow automated access to this URL (or to the page it redirects to), so it was not fetched. | no |
ROBOTS_UNREACHABLE | The site's robots.txt could not be loaded because of a server or network error. Under RFC 9309, the page is then not fetched. | yes |
PRIVATE_ADDRESS | The URL, or a redirect from it, points to a private or local network address. Only public websites are fetched. | no |
NOT_FOUND | The page or source does not exist (HTTP 404 or 410). | no |
BLOCKED | The site refused access (HTTP 401, 403 or 429) or answered with a bot-check or consent page instead of the content. | sometimes |
HTTP_ERROR | The site answered with another HTTP error: a server error (5xx) that persisted after retries, or an unexpected 4xx status. | sometimes |
TIMEOUT | The site did not answer in time, even after retries. | yes |
NETWORK_ERROR | The connection failed (DNS, TLS or a reset connection), even after retries. | yes |
WRONG_CONTENT_TYPE | The URL returned something the Actor doesn't read, such as a PDF or image instead of an HTML page, or a web page where an API response was expected. | no |
TOO_LARGE | The response exceeded the size limit (10 MiB for web pages, 48 MiB for API responses). | no |
PARSE_ERROR | The response could not be read (malformed HTML or JSON). | sometimes |
NO_STRUCTURED_DATA | The page loaded but has none of the data the Actor extracts: no schema.org data (JSON-LD or microdata), or, for the Shopify Actor, no public Shopify catalog on the site. | no |
Pricing
Pay per result: $0.50 per 1,000 app records, plus a tiny per-run start fee. There is no monthly rental, and you can cap spend per run with Maximum cost per run.
Integrations and API
- Schedule: an Apify schedule runs it daily or weekly. Each run reads the pages as they are now, so compare runs to track changes.
- Webhooks: an Apify webhook calls your URL when a run finishes, with the run's dataset ID in the payload.
- Make: the Apify app's Run an Actor and Get Dataset Items modules, then any Make app, such as Google Sheets. Steps.
- Zapier: the Finished Actor run trigger and the Fetch dataset items search. Zapier stops synchronous runs after 30 seconds, so use the trigger for anything larger than a small run. Steps.
- n8n: Apify's community node (
@apify/n8n-nodes-apify) or an HTTP Request node. Workflow to copy. - Code: the Apify API and the JavaScript and Python clients. Examples.
- AI agents: Apify's MCP server exposes it as a tool to any MCP client. Setup.
FAQ
How much does it cost? You pay per result: $0.50 per 1,000 app records, plus a start fee of $0.00005 per run, with no subscription. Cap any run with Maximum cost per run.
Your Apify plan sets your discount tier (Platinum and Diamond are enterprise tiers):
| Tier | Per 1,000 app records |
|---|---|
| Free | $0.50 |
| Bronze | $0.50 |
| Silver | $0.40 |
| Gold | $0.33 |
| Platinum | $0.33 |
| Diamond | $0.33 |
How do I call it from the API? One request starts a run and returns its results, using your Apify API token:
$curl -X POST "https://api.apify.com/v2/acts/rocketyard~softwareapp-schema-scraper/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"startUrls":[{"url":"https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580"}],"maxItems":100}'
How do I use it with AI agents? Connect Apify's MCP server at https://mcp.apify.com?tools=rocketyard/softwareapp-schema-scraper, and the agent can call this Actor as a tool.
Which websites does it work on? Any public page that embeds schema.org SoftwareApplication data. If a page has no such markup, the Actor returns a free error item with the code NO_STRUCTURED_DATA for it instead of a record.
Is it legal to scrape app data? This Actor only reads publicly available pages, obeys robots.txt and crawl-delay, does not log in or bypass protections, and does not collect people's profiles, personal emails or personal phone numbers. You are responsible for complying with each website's terms and with applicable laws (for example copyright and GDPR) for how you use the data.
What happens when a URL fails? If a start URL can't be read, is blocked or has no data, the dataset gets one error item for it with a code and the reason, and you are not charged for it. The other URLs in the run carry on.
Can it scrape JavaScript-only pages? It reads the server-rendered HTML, where structured data almost always lives. Pages that inject markup only via client-side JavaScript are not supported.
I need a field or site that is not supported. Open an issue on the Actor's Issues tab. Requests are reviewed regularly and drive new features.
You might also like
- Events Scraper - Any Event Site to Structured Data: event data from any website with schema.org markup
- Company Info Scraper - Name, Logo & Social Profiles: organization data from any website with schema.org markup
- Ashby Jobs API & Scraper: every open job from Ashby job boards
- Greenhouse Jobs API & Scraper: every open job from Greenhouse job boards
- Hotel Details Scraper - Address, Stars & Amenities: hotel data from any website with schema.org markup
Your feedback
Found a bug, a site that doesn't work or a missing field? Open an issue on the Issues tab: issues are public, so the answer helps the next person too. If the Actor did the job, a review on this page helps other people find it.
Made by Rocketyard
Rocketyard builds pay-per-result scrapers for public web data, and every release is tested on live pages before it ships. Guides for this Actor: overview, REST API, MCP for AI agents and n8n, Make and Zapier.