Shopify App Store Scraper: Apps, Rankings and Reviews
Pricing
from $1.50 / 1,000 app records
Shopify App Store Scraper: Apps, Rankings and Reviews
Returns Shopify App Store data: app details (developer, rating, reviews, pricing plans, categories, launch date, languages, Built for Shopify badge), category rankings with position changes, and merchant reviews with store name, country and developer replies.
Pricing
from $1.50 / 1,000 app records
Rating
0.0
(0)
Developer
Mike Ross
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Get structured data from the public Shopify App Store at apps.shopify.com in three record types:
- App details: name, developer, rating, review count, reviews per star level, pricing plans with prices and features, categories, launch date, languages, integrations ("Works with") and the Built for Shopify badge.
- Category rankings: every app in a category in the order the App Store lists it, with position, rating, review count, pricing summary and badge, plus the position change since your previous run.
- Reviews: date, star rating, review text, the reviewing store's name and country as published, time using the app, and the developer's reply.
Schedule it daily with Only new items switched on to get just the new reviews and the apps that newly entered a category ranking.
This Actor is not affiliated with, endorsed by or sponsored by Shopify. "Shopify" is a trademark of Shopify Inc. and is used here only to describe the public website the Actor reads.
Who it is for
- App developers and product teams tracking competitors' ratings, pricing changes, new features and complaints.
- Agencies and consultants comparing apps in a category for clients.
- Market researchers and investors sizing categories, spotting fast-growing apps and tracking Built for Shopify adoption.
- Support and success teams monitoring their own reviews and replies every day.
Quick start
- Click Start with the example input. You get two app records, the 20 newest reviews of each, and the top 24 apps in the Product reviews category, in about 10 seconds.
- Replace the lists with your own:
- Apps: a handle such as
judgemeor a link such ashttps://apps.shopify.com/klaviyo-email-marketing. The handle is the part of the link afterapps.shopify.com/. - Categories: a category handle such as
store-design-site-optimization-seoor a category link. Use subcategories; top-level categories such asmarketing-and-conversiononly show curated sections and have no ranked list (the Actor tells you which subcategories to use instead).
- Apps: a handle such as
- Optional: add Keywords to keep only ranked apps whose name or tagline matches, or pick Only these star ratings (for example 1 and 2) to collect complaints.
- Schedule the Actor and switch on Only new items since the previous run. Connect the dataset to email, Slack, Google Sheets or your own system with an Apify integration or webhook.
Input
| Field | What it does | Default |
|---|---|---|
apps | App handles or links. Returns app details and reviews for each | example list |
categories | Category handles or links. Returns the ranking of each | example list |
keywords | Keep only ranked apps whose name, tagline or handle contains any of these words | all |
includeAppDetails | Return one app record per app | true |
includeReviews | Return reviews for each app | true |
maxReviewsPerApp | Reviews per app (10 per page). 0 means all | 20 |
reviewsSortBy | newest or relevance | newest |
reviewRatings | Only reviews with these star ratings | all |
maxAppsPerCategory | Read each ranking down to this position (24 per page). 0 means the whole category | 24 |
includeDetailsForRankedApps | Also return an app record for every ranked app returned | false |
onlyNew | Only reviews and ranked apps not returned by a previous run with the same input | false |
maxItems | Stop after this many records in total. 0 means no limit | 1000 |
If both apps and categories are empty the example lists are used. Keywords filter category rankings only: the Actor does not use the App Store's search page, because the site's robots.txt asks automated clients not to.
Example input for a daily competitor watch:
{"apps": ["judgeme", "loox", "okendo-reviews"],"categories": ["marketing-and-conversion-social-trust-product-reviews"],"maxReviewsPerApp": 50,"maxAppsPerCategory": 48,"onlyNew": true}
Example input for collecting complaints about one app:
{"apps": ["https://apps.shopify.com/klaviyo-email-marketing"],"categories": [],"includeAppDetails": false,"reviewRatings": ["1", "2"],"maxReviewsPerApp": 200}
What you get
All records share one dataset. The Output tab has three views: Apps, Rankings and Reviews.
App records (recordType: "app")
| Field | Example |
|---|---|
appHandle, name, tagline, appUrl | judgeme, Judge.me Product Reviews App, Collect unlimited product reviews, star ratings, testimonials |
developerName, developerUrl, developerWebsite, developerAddress | Judge.me, the developer's App Store page, website and business address as published |
rating, reviewCount, ratingDistribution | 5.0, 48932, {"5": 47857, "4": 810, "3": 74, "2": 36, "1": 155} |
pricingSummary, hasFreePlan, hasFreeTrial, pricingNote | Free plan available. Free trial available., true, true |
pricingPlans | [{"name": "Awesome", "priceText": "$15/month", "priceAmount": 15, "currency": "USD", "billingPeriod": "month", "features": [...], "trial": "15-day free trial"}] |
categories, categoryFeatures | [{"name": "Product reviews", "handle": "...", "url": "..."}], ["Photo reviews", ...] |
launchedDate, languages, worksWith | 2015-06-25, ["English", "Spanish", ...], ["Shopify Flow", "Klaviyo: Email Marketing", ...] |
builtForShopify | true when the app page shows the Built for Shopify badge |
headline, description, iconUrl | Listing headline and introduction text, icon link |
Review records (recordType: "review")
| Field | Example |
|---|---|
reviewId, reviewUrl | 2405181, https://apps.shopify.com/reviews/2405181 |
rating, reviewDate, reviewText | 5, 2026-10-22, explained well thanks (empty for star-only reviews) |
storeName, storeCountry, usageDuration | Foveaux Cod Catcher, New Zealand, 8 months using the app |
developerReply, developerReplyDate, developerReplyAuthor | The developer's public reply, its date and the developer name |
isNew | Whether the review is new since the previous run with the same input |
Store names are the business names the App Store shows next to each review. The Actor returns nothing else about reviewers: no personal names, emails or profile links.
Ranking records (recordType: "ranking")
| Field | Example |
|---|---|
categoryHandle, categoryName, totalAppsInCategory | marketing-and-conversion-social-trust-product-reviews, Product review apps, 486 |
position, page, positionOnPage | 2, 1, 2 |
appHandle, appName, tagline, appUrl | google-review-plus-by-entangle-1, Entangle Google Reviews, ... |
rating, reviewCount, pricingSummary, builtForShopify | 5.0, 601, Free plan available, true |
previousPosition, positionChange, isNew, firstSeenAt | Movement since the previous run with the same input (positive means the app moved up) |
matchedKeywords | Which of your keywords matched |
Every record also has scrapedAt (UTC) and schemaVersion. A RUN_SUMMARY record in the run's key-value store lists counts, pages read and any inputs that could not be read.
Output example
{"recordType": "review","appHandle": "judgeme","appName": "Judge.me Product Reviews App","appUrl": "https://apps.shopify.com/judgeme","reviewId": "2405181","rating": 5,"reviewDate": "2026-10-22","reviewDateText": "October 22, 2026","reviewText": "explained well thanks","storeName": "Foveaux Cod Catcher","storeCountry": "New Zealand","usageDuration": "8 months using the app","developerReply": null,"developerReplyDate": null,"developerReplyAuthor": null,"reviewUrl": "https://apps.shopify.com/reviews/2405181","reviewsSortBy": "newest","ratingFilter": null,"isNew": true,"scrapedAt": "2026-10-23T11:25:19Z","schemaVersion": 1}
Pricing
Pay per event: you pay only for the records you get.
| Event | Price per 1,000 records |
|---|---|
app-record (one app's details) | $2.50 |
review-record (one review) | $2.00 |
ranking-record (one app's position in one category) | $1.50 |
The example input returns 2 app, 40 review and 24 ranking records, about $0.12. If you set a maximum charge per run, the Actor stops cleanly when it is reached and keeps everything returned so far. maxItems gives you a second cap.
How it works and limits
- Reads only public App Store pages, without logging in. It checks every link against apps.shopify.com/robots.txt before requesting it, waits at least 1 second between requests and backs off when the site asks it to slow down.
- Speed: about one page per second. 24 ranked apps or 10 reviews per page. Reading all reviews of an app with tens of thousands of reviews takes hours; keep
maxReviewsPerAppmodest and useonlyNewfor ongoing tracking. - Content is read in English. Prices are as published (the App Store states them in USD).
- Category rankings are the App Store's own default order at the time of the run. It can differ slightly between visitors.
- With
onlyNew, app detail records are always returned (so you can track rating and pricing changes); reviews and ranking rows are filtered. History is kept per input in a key-value store namedshopify-app-store-feed-statein your account. - The App Store changes its page layout from time to time. If you notice empty fields that should have values, please report it in the Actor's Issues tab.
Responsible use
The data comes from publicly visible pages. Reviews are written by merchants and identify their stores by business name. Use the data in line with the laws that apply to you, including data protection law, and with the website's terms.