If you build Shopify apps, advise merchants, or watch a niche, the Shopify App Store is the closest thing to a public market map. Each listing shows who made the app, what it costs, how merchants rate it, and what they complain about. The hard part is getting that data out of the website and into a spreadsheet or script you can actually use.
This guide shows how to collect app details, pricing plans and merchant reviews with the Shopify App Store Scraper on Apify.
The problem
Shopify does not offer a public catalog API for the App Store. Everything useful lives on HTML listing pages, search results and paginated review threads:
- App name, handle, developer and developer URL
- Rating, review count, tagline and description
- Pricing summary and each plan's name, price and feature list
- Categories, launch date, languages and "Works with" notes
- Merchant reviews, including the store name, country, how long they have used the app, and any developer reply
Doing that by hand means opening each app, copying plan tables, then clicking through review pages. Comparing twenty competitors, or checking the same five apps every week for price changes, gets old fast.
The manual way (and why it hurts)
You can search apps.shopify.com and export nothing. Browser copy-paste drops plan features into a jumble, review dates and "3 months using the app" labels often get left behind, and there is no official CSV button on a listing. A one-off research session is doable. A weekly competitor watch is not, unless you automate it.
Step 1: Configure the Actor
Open the Actor page and click Try for free. The defaults scrape one well-known app and a handful of its newest reviews so you can see the shape of the data:
{ "apps": ["judgeme"], "maxApps": 20, "includeReviews": true, "maxReviewsPerApp": 20, "reviewSort": "newest" } You can point it at more than one source in the same run:
-
apps: handles or full URLs, such asjudgemeorhttps://apps.shopify.com/judgeme -
searchKeywords: terms likeupsellorproduct reviews; the Actor walks the search results -
categories: category slugs or URLs, such asstore-design -
maxApps: cap on apps collected per keyword or category -
includeReviews: setfalseif you only want the catalog and pricing -
maxReviewsPerApp: how many merchant reviews to keep per app (0skips reviews) -
reviewSort:newestorrelevance
No Shopify login, partner account or API key is required. The Actor reads the same public pages anyone can open in a browser, and it paces requests so it does not hammer the store.
Step 2: Read the output
Every dataset row has a type field.
app rows hold the listing itself. A trimmed example from a Judge.me run:
| handle | name | developer | rating | reviewCount | launchDate | pricingSummary |
|---|---|---|---|---|---|---|
| judgeme | Judge.me Product Reviews App | Judge.me | 5.0 | 49323 | 2015-06-25 | Free plan available. Free trial available. |
Full app records also include the listing URL, developer URL, each pricing plan (name, price and feature list), category and feature tags, supported languages, "works with" notes, tagline, description, icon URL, a Built for Shopify flag and a scrape timestamp.
review rows are individual merchant reviews:
| appHandle | rating | date | storeName | country | durationOfUse |
|---|---|---|---|---|---|
| judgeme | 5 | 2026-10-29 | American Nutriceuticals | United States | 5 months using the app |
Reviews also include the review text (empty for star-only reviews), a review id, and any developer reply plus its date.
If an app is delisted or the page cannot be reached, the Actor writes an error row. Those rows are not charged.
You can download the dataset as CSV, Excel, JSON or XML from the run page.
Step 3: Schedule it
A one-off export is useful for a research sprint. The lasting value is watching competitors without thinking about it.
- In Apify Console, open Schedules and click Create new.
- Set the cron expression. For example,
0 8 * * 1runs it every Monday morning at 8:00. - Add the Actor (Shopify App Store Scraper) and paste the input you care about. For a competitor watch, list the handles in
apps, keepreviewSortonnewest, and use a smallmaxReviewsPerApp. - Optional: under the Actor's Integrations tab, connect Google Sheets, Slack, Zapier, Make or a webhook so each finished run lands where you already work.
To scan a whole niche quickly, use searchKeywords or categories and set includeReviews to false. That gives you names, ratings, review counts and pricing plans without downloading thousands of review rows.
Step 4: Run it from Python with apify-client
If you'd rather pull the data into your own scripts, use the official apify-client package (pip install apify-client). Grab your API token from Settings > API & Integrations in Apify Console and keep it in an environment variable rather than in code.
import os from apify_client import ApifyClient client = ApifyClient(os.environ["APIFY_TOKEN"]) run_input = { "apps": ["judgeme"], "maxApps": 20, "includeReviews": True, "maxReviewsPerApp": 20, "reviewSort": "newest", } run = client.actor("perskekits/shopify-app-store-scraper").call(run_input=run_input) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): if item.get("type") == "app": print(item.get("name"), item.get("rating"), item.get("pricingSummary")) elif item.get("type") == "review": print(item.get("appHandle"), item.get("rating"), item.get("date"), item.get("storeName")) From there you can watch plan prices over time, feed review text into a sentiment model, or alert yourself when a competitor's rating or review count jumps.
What it costs
The Actor uses Apify's pay-per-event pricing, so you pay for results, not for server time:
- $0.005 per run start
- $0.001 per result (each app row and each review row)
For example, one app plus 20 reviews costs about $0.026. A thousand results cost about $1.005. Delisted or unreachable apps write a free error row. You can also set a maximum run cost in Apify so the Actor stops cleanly when it hits your cap. Apify's free plan includes a small amount of monthly platform credit, which is enough to try small runs. Check the Actor's pricing tab for the current rates before you run anything large.
FAQ
Do I need a Shopify Partner account?
No. The Actor only reads public App Store pages.
Can I search by keyword or category instead of listing apps?
Yes. Use searchKeywords and/or categories, and maxApps to cap how many listings you follow from each source.
Does it collect merchant emails?
No. Reviews include the store name and country the way Shopify displays them, not a private contact email.
How fresh are the reviews?
They come from the live listing. Set reviewSort to newest and keep maxReviewsPerApp small if you only want recent feedback.
Is it legal?
It collects publicly visible App Store content. You're responsible for using the data in line with applicable laws and the website's terms.
Wrapping up
You should not have to click through pricing tables and review pages every time you want a competitor snapshot. Point the Actor at a handle, a search, or a category, press Start, and export a clean catalog. Try the Shopify App Store Scraper on Apify.
