App Store & Google Play Scraper - Ratings & Prices avatar

App Store & Google Play Scraper - Ratings & Prices

Pricing

from $0.33 / 1,000 results

Go to Apify Store
App Store & Google Play Scraper - Ratings & Prices

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

Rocketyard

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Security

Limited permissions

Share

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 scraperUsers (last 30 days)Successful runs (last 30 days)Price per 1,000 results
App Store Reviews Scraper API / $0.10/1K Reviews66996.1%$0.10
Google Play Reviews Scraper API / $0.10/1K Reviews50595.0%$0.10
Google Play Store Reviews Scraper41191.1%$0.15
This Actornewevery 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

  1. Click Try for free.
  2. Add one or more page URLs to Start URLs (for example https://apps.apple.com/us/app/spotify-music-and-podcasts/id324684580).
  3. Optionally enable Crawl the website to discover more pages on the same site, and narrow it with Link pattern.
  4. 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

FieldJSON keyWhat it does
Start URLsstartUrlsPages 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 resultsmaxItemsStop after this many records in total. This also caps what the run can charge for results.
Crawl the websitecrawlFollow links on the same site from the start URLs to find more pages. When off, only the start URLs are read.
Max pages to visitmaxPagesPerCrawlOnly used when crawling: the most pages to fetch in one run.
Link pattern (regex)linkPatternOnly used when crawling: follow only links matching this regular expression, e.g. /products/ (max 200 characters, no nested quantifiers).
Max concurrencymaxConcurrencyPages fetched in parallel. A polite delay between requests to the same host always applies.
Proxy configurationproxyConfigurationOptional. 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

FieldDescriptionFilled
urlPage the record was found onn/a
typeschema.org type (SoftwareApplication, MobileApplication, WebApplication, VideoGame)always
namename100%
descriptiondescription100%
storeUrlstore url50%
imageimage100%
categorycategory100%
genregenre50%
operatingSystemoperating system100%
devicesdevices50%
versionversion0%
priceprice100%
priceCurrencyprice currency100%
contentRatingcontent rating50%
fileSizefile size0%
ratingValuerating value100%
ratingCountrating count100%
keywordskeywords50%
scrapedAtISO timestamp of the extractionalways

"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 SoftwareApplication markup 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.

CodeMeaningRetry?
ROBOTS_DISALLOWEDThe 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_UNREACHABLEThe 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_ADDRESSThe URL, or a redirect from it, points to a private or local network address. Only public websites are fetched.no
NOT_FOUNDThe page or source does not exist (HTTP 404 or 410).no
BLOCKEDThe site refused access (HTTP 401, 403 or 429) or answered with a bot-check or consent page instead of the content.sometimes
HTTP_ERRORThe site answered with another HTTP error: a server error (5xx) that persisted after retries, or an unexpected 4xx status.sometimes
TIMEOUTThe site did not answer in time, even after retries.yes
NETWORK_ERRORThe connection failed (DNS, TLS or a reset connection), even after retries.yes
WRONG_CONTENT_TYPEThe 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_LARGEThe response exceeded the size limit (10 MiB for web pages, 48 MiB for API responses).no
PARSE_ERRORThe response could not be read (malformed HTML or JSON).sometimes
NO_STRUCTURED_DATAThe 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):

TierPer 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

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.