# Shopify App Store Scraper: Apps, Pricing Plans & Reviews (`themineworks/shopify-app-store-scraper`) Actor

Scrape the Shopify App Store: apps by keyword or category with position, rating, reviews, pricing, trial and developer; full listings with every plan, languages, launch date and support email; merchant reviews with developer replies. No login. Pay per row.

- **URL**: https://apify.com/themineworks/shopify-app-store-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** E-commerce, Marketing, MCP servers
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 apps

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Shopify App Store Scraper: Apps, Pricing Plans & Reviews

[![100 Shopify apps with pricing in 74 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/shopify-app-store-scraper-hero.png)](https://console.apify.com/actors/yTRbpsVQpCw47gdMK/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 140,000 runs across 170+ public actors.

### Why choose this actor?

- **Every app a merchant sees for a keyword or category, in order, with the facts you compare on.** Each row carries the app's position, rating, review count, developer, free plan, trial length and starting price, read from the app's own listing. Our proof run returned **100 apps for "upsell" and "subscriptions" (50 each) in 74 seconds**, with the developer and pricing line filled on all 100. No Shopify account, no Partner login, no API key.
- **Full listings and merchant reviews in the same actor.** Details mode returns every pricing plan with its features, languages, works with, launch date, the support email the developer publishes and the count of reviews per star. Reviews mode returns the merchant store, country, time using the app and the developer's reply: in our 1 and 2 star test, **26 of 40 reviews came with the developer's public reply**.
- **You pay only for rows you receive.** One charge per app or review saved to your dataset, plus a flat start fee per run. Apps and categories that do not exist, keywords with no apps, the same app twice in one listing and reviews an earlier run already gave you (when you switch that on) are never charged.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/yTRbpsVQpCw47gdMK/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Marketing, SEO and reviews family:** [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this input and press Start. It returns the top 20 apps for "product reviews", each with its developer, rating, review count and pricing, in about 15 seconds:

```json
{
  "mode": "search",
  "searchTerms": ["product reviews"],
  "maxAppsPerSearch": 20
}
```

The actor has three modes, and each takes its input in plain forms you can mix:

- **Search mode, keywords**: plain text the way a merchant types it (`upsell`, `subscriptions`), or a search link such as `https://apps.shopify.com/search?q=upsell`.
- **Search mode, categories**: a category link such as `https://apps.shopify.com/categories/store-design-site-optimization-seo`, or just its handle `store-design-site-optimization-seo`. A top level category such as `store-design` is read through all of its subcategories.
- **Details and reviews modes, apps**: a listing link (`https://apps.shopify.com/judgeme`), a reviews link (`https://apps.shopify.com/judgeme/reviews`) or the handle (`judgeme`). Links with tracking parameters work as they are.

Apify's free plan includes $5 of credit every month, which covers about 1,600 results at this actor's price.

#### Copy to your AI assistant

```text
themineworks/shopify-app-store-scraper on Apify. Returns public Shopify App Store data in three modes: search (apps for keywords or category pages, in App Store order, with position, rating, review count, developer, free plan, trial days, starting price, Built for Shopify badge and category), details (full listing of named apps: description, every pricing plan with features, languages, works with, categories, launch date, developer website, support email, address and review counts per star) and reviews (merchant reviews with store name, country, rating, text, date, time using the app and the developer's reply). Call ApifyClient("TOKEN").actor("themineworks/shopify-app-store-scraper").call(run_input={"mode": "search", "searchTerms": ["upsell"], "maxAppsPerSearch": 100}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: mode ("search", "details" or "reviews"); search mode needs searchTerms and/or categories (links or handles); details and reviews modes need apps (links or handles). Optional: maxAppsPerSearch (default 50, 20 to 2,000), includeFullDetails (default false), maxReviewsPerApp (default 50, 20 to 10,000), reviewSort ("newest" or "relevance", default newest), reviewStars (list of "1" to "5", default all), onlyNewReviews (default false). Skip rows that have "_type": "info". Full spec: GET https://api.apify.com/v2/acts/themineworks~shopify-app-store-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **Three jobs, one actor**: search (apps for keywords or categories, with position), details (the full listing of apps you name) and reviews (merchant reviews of apps you name). One mode per run.
- **Up to 2,000 apps per keyword or category.** The App Store lists 24 apps a page; "product reviews" alone runs to 312 pages. A subcategory page shows up to 480 apps, and a top level category is read through its subcategories (7 top level categories, 121 subcategories mapped on 6 Oct 2026).
- **About 50 fields per app**: position, rating, reviews, the pricing line as listed, free plan, longest free trial in days, lowest paid price and its billing period, Built for Shopify badge, awards, developer and partner page, primary category; with full details, every plan (name, price, billing period, yearly price, trial, notes, features), languages, works with, categories with the feature tags the developer ticked, launch date, review counts per star, Shopify's own review summary, developer website, support email, address, privacy policy and similar apps.
- **Up to 10,000 reviews per app**, newest first or most relevant, with an optional star filter, each with the merchant store, country, time using the app, the developer's reply and its date.
- **Only new reviews on repeat runs**: switch it on for a schedule and each run returns, and charges, only reviews no earlier run in your account delivered.
- **No browser, no login**: plain HTTP over Apify's datacenter proxy, which the run includes. Our test runs read 300 reviews of one app in 24 seconds and 10 full listings in 17 seconds.

### How to use it

#### Basic: the top apps for one keyword

```json
{
  "mode": "search",
  "searchTerms": ["upsell"],
  "maxAppsPerSearch": 100
}
```

You get 100 rows in the order the App Store ranks them for "upsell", each with `position` 1 to 100, the developer, rating, review count and pricing.

#### Several keywords and categories at once

```json
{
  "mode": "search",
  "searchTerms": ["subscriptions", "loyalty program", "https://apps.shopify.com/search?q=wishlist"],
  "categories": [
    "https://apps.shopify.com/categories/selling-products-payments-subscriptions",
    "marketing-and-conversion-customer-loyalty"
  ],
  "maxAppsPerSearch": 200
}
```

Each keyword and each category is its own listing with its own positions and its own cap of 200. Every row says where it came from (`search_term`, or `category_input` plus `listed_in_category` for the subcategory page it was on).

#### Competitor pricing table for a category

```json
{
  "mode": "search",
  "categories": ["https://apps.shopify.com/categories/marketing-and-conversion-social-trust-product-reviews"],
  "maxAppsPerSearch": 480,
  "includeFullDetails": true
}
```

Every app in the Product reviews category (the App Store shows up to 480 per subcategory) with all of its plans, prices, trial lengths and plan features, its launch date and its rating split per star. Export to CSV or Excel and sort by `price_from_usd` or `review_count` to see where each competitor sits. Our test run read 60 apps with full listings from two categories in 22 seconds.

#### Keyword rank tracking for your own app

```json
{
  "mode": "search",
  "searchTerms": ["bundles", "upsell", "volume discount", "quantity breaks"],
  "maxAppsPerSearch": 50
}
```

Schedule it daily (Console: Schedules, Add schedule) and filter the dataset on your `app_handle`: `position` tells you where you rank for each keyword that day, and the rows above you are the apps you are losing installs to. Keep `maxAppsPerSearch` at 50 or 100 so each run stays small.

#### Weekly complaint watch on competitors

```json
{
  "mode": "reviews",
  "apps": ["loox", "judgeme", "https://apps.shopify.com/yotpo-social-reviews"],
  "maxReviewsPerApp": 200,
  "reviewSort": "newest",
  "reviewStars": ["1", "2"],
  "onlyNewReviews": true
}
```

Run it weekly: each run returns only the 1 and 2 star reviews posted since the last one, with the merchant's country, how long they used the app and whether the developer replied. This is where feature gaps and pricing complaints show up first.

#### Full listings for a shortlist

```json
{
  "mode": "details",
  "apps": [
    "https://apps.shopify.com/subscription-payments",
    "https://apps.shopify.com/bold-subscriptions",
    "subscriptions-by-appstle",
    "loop-subscriptions"
  ]
}
```

One complete row per app: description, every plan, languages, integrations, categories and feature tags, launch date, developer website, support email and address, and the apps Shopify lists as similar (handy to grow the shortlist).

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `mode` | string | `search` | `search` (apps for keywords or categories), `details` (full listing of the apps in `apps`) or `reviews` (merchant reviews of the apps in `apps`). |
| `searchTerms` | array of strings | none (prefilled with `product reviews`) | Search mode. Keywords, or App Store search links. When both this and `categories` are left out, the run searches `product reviews` as an example. |
| `categories` | array of strings | empty | Search mode. Category links or handles. A top level or middle category is read through its subcategories. |
| `maxAppsPerSearch` | integer | 50 | Search mode. Apps to collect per keyword or category, 20 to 2,000. |
| `includeFullDetails` | boolean | `false` | Search mode. Adds every details mode field to each search row, at the same price per app. |
| `apps` | array of strings | empty | Details and reviews modes. App links, reviews links or handles; up to 1,000 per run, repeats read once. |
| `maxReviewsPerApp` | integer | 50 | Reviews mode. Reviews to collect per app, 20 to 10,000. With a star filter the cap counts the combined matching list. |
| `reviewSort` | string | `newest` | Reviews mode. `newest` or `relevance` (the App Store's default order). |
| `reviewStars` | array of strings | empty (every rating) | Reviews mode. Star levels to keep, any of `"1"` to `"5"`. |
| `onlyNewReviews` | boolean | `false` | Reviews mode. Skip reviews an earlier run of yours already delivered, for schedules. Use with `newest`. |

Fields that belong to another mode are left aside, with a note in the log, so you can keep keywords and apps in the same saved input and switch modes.

### What data do you get?

Search and details modes return one row per app (`"record_type": "app"`); reviews mode returns one row per review (`"record_type": "review"`). A field with no value on the listing is left out of that row rather than sent empty.

**On every app row (search and details):**

- **The app**: `app_name`, `app_handle`, `app_url`, `app_id` (the public id on the listing's install button), `app_icon_url`, `short_description`.
- **Ratings**: `rating` (absent when the app has no reviews yet) and `review_count`.
- **Pricing at a glance**: `pricing_summary` exactly as listed (for example "From $24.99/month. Free trial available."), `has_free_plan`, `free_trial_available`, `free_trial_days` (the longest trial on any plan), `price_from_usd` and `price_from_period` (the lowest paid price, monthly plans first, else yearly or one time).
- **Badges and maker**: `built_for_shopify`, `developer_name`, `developer_url` (the developer's App Store partner page), `primary_category`, `primary_category_url`.
- `listing_loaded`: true when the app's own page was read. It is false only when that page could not be read (refused five times in a row, or gone since the search); the row then keeps what the search card shows (name, rating, reviews, pricing line, position).

**On search rows:** `search_type` (keyword or category), `search_term`, or `category_input` with `listed_in_category` and `listed_in_category_handle` (the subcategory page the app was on), `position` in that listing and `page`.

**Full listing fields (details mode, or search mode with `includeFullDetails`):** `headline`, `description`, `feature_bullets`, `pricing_plans` (each with `name`, `price_label`, `price_usd`, `billing_period`, `yearly_price`, `free_trial_days`, `notes` such as usage fees, and `features`), `pricing_note`, `external_pricing_url`, `languages`, `works_with`, `category_names`, `categories` (each with the feature tags the developer ticked, grouped as on the listing), `launched_date`, `rating_counts` (reviews per star, keys 1 to 5), `review_summary` (Shopify's own summary, shown on apps with 100+ reviews and a 4.0+ rating), `developer_website`, `support_email`, `developer_address`, `privacy_policy_url`, `resources` (every link under Resources: FAQ, tutorial, documentation), `changelog_url`, `awards`, `demo_store_url`, `screenshot_count` and `similar_apps` (handles under "More apps like this"). Details rows also carry `input`, the line you gave.

**On every review row:** `app_name`, `app_handle`, `app_url`, `review_id`, `review_url`, `rating` (1 to 5), `review_date`, `edited`, `text`, `store_name`, `store_country`, `time_using_app`, `developer_reply`, `developer_reply_date`, `developer_reply_by`, `app_rating`, `app_review_count`, `review_sort`, `star_filter`, `page`, `position`, `input`, `scraped_at`.

Dates are YYYY-MM-DD; `scraped_at` is ISO 8601 in UTC. Prices are in US dollars, as the App Store lists them.

#### Stable fields for automations

These fields were present in every row of their type in our test runs, and their names will not change:

| Field | On | What it holds |
|---|---|---|
| `record_type` | every row | `app` or `review` |
| `app_handle` | every row | The app's handle, the part after apps.shopify.com/ (use it to join runs) |
| `app_name` | every row | App name as listed |
| `app_url` | every row | Link to the listing |
| `scraped_at` | every row | When the row was read, ISO 8601 UTC |
| `review_count` | app rows | Number of merchant reviews |
| `pricing_summary` | app rows | Pricing line as listed |
| `built_for_shopify` | app rows | true or false |
| `listing_loaded` | app rows | true when the app's own page was read |
| `position` | search and review rows | Rank in the listing, or in the review list |
| `page` | search and review rows | Page of the listing or review list |
| `review_id` | review rows | The App Store's own review id, stable across runs |
| `rating` | review rows | Stars, 1 to 5 |
| `review_date` | review rows | Date shown on the review |
| `store_name` | review rows | Merchant store name as shown |

#### Output examples

Real rows from our test runs on 6 Oct 2026, trimmed where marked.

**Search mode**, keyword "upsell", position 1 (icon link removed):

```json
{
  "record_type": "app",
  "app_name": "Kaching Bundles App & Upsells",
  "app_handle": "bundle-deals",
  "app_url": "https://apps.shopify.com/bundle-deals",
  "app_id": "74f3a88ca9004748ce9210ea2cda82ca",
  "short_description": "Boost AOV with quantity breaks, product bundles & upsell app",
  "rating": 5,
  "review_count": 6171,
  "pricing_summary": "Free to install. Free trial available.",
  "has_free_plan": false,
  "free_trial_available": true,
  "free_trial_days": 7,
  "price_from_usd": 14.99,
  "price_from_period": "month",
  "built_for_shopify": true,
  "developer_name": "Kaching Bundles & Upsells",
  "developer_url": "https://apps.shopify.com/partners/kaching-apps",
  "primary_category": "Product bundles",
  "primary_category_url": "https://apps.shopify.com/categories/marketing-and-conversion-upsell-and-bundles-product-bundles",
  "listing_loaded": true,
  "search_type": "keyword",
  "search_term": "upsell",
  "position": 1,
  "page": 1,
  "scraped_at": "2026-10-05T19:44:10.395Z"
}
```

**Search mode with full details**, top level category "marketing-and-conversion-social-trust", read through its Product reviews subcategory (a selection of fields; languages cut to 5 of 40):

```json
{
  "record_type": "app",
  "app_name": "Reputon Google Reviews",
  "app_handle": "google-reviews-trust-badge",
  "rating": 5,
  "review_count": 1539,
  "pricing_summary": "Free to install. Free trial available.",
  "free_trial_days": 7,
  "price_from_usd": 6.99,
  "price_from_period": "month",
  "built_for_shopify": true,
  "developer_name": "Reputon",
  "developer_website": "https://reputon.com/",
  "support_email": "support@reputon.com",
  "developer_address": "CLAYMONT, DE, US",
  "launched_date": "2020-03-10",
  "search_type": "category",
  "category_input": "marketing-and-conversion-social-trust",
  "listed_in_category": "Product reviews",
  "listed_in_category_handle": "marketing-and-conversion-social-trust-product-reviews",
  "position": 3,
  "page": 1,
  "languages": [
    "English",
    "Spanish",
    "French",
    "German",
    "Italian",
    "... 35 more"
  ]
}
```

**Details mode** (description, feature bullets, review summary, plan features and works with cut short; icon, resources, address, category link and categories with their feature tags removed):

```json
{
  "record_type": "app",
  "app_name": "Bold Subscriptions App",
  "app_handle": "bold-subscriptions",
  "app_url": "https://apps.shopify.com/bold-subscriptions",
  "app_id": "ce6794be6752d5cccc7cc432f7deafc7",
  "short_description": "Maximize Subscriptions Sales and Sell More to Every Subscriber",
  "rating": 4,
  "review_count": 381,
  "pricing_summary": "From $24.99/month. Free trial available.",
  "has_free_plan": false,
  "free_trial_available": true,
  "free_trial_days": 30,
  "price_from_usd": 24.99,
  "price_from_period": "month",
  "built_for_shopify": false,
  "developer_name": "Bold",
  "developer_url": "https://apps.shopify.com/partners/bold",
  "primary_category": "Subscriptions",
  "headline": "Subscription App Built to Convert More Subscribers & Maximize the Lifetime Value of Every Subscriber",
  "description": "Sell recurring subscriptions or subscription boxes on your Shopify store with a Subscription App for Shopify. Boost conversion rates, convert more one-timers into subscribers, Plus increase the value ...",
  "feature_bullets": [
    "Offer your customers Prepaid Subscriptions or pay-as-you-go subscription plans",
    "Pair with Bold Custom Pricing to reward subscribers with exclusive VIP pricing"
  ],
  "pricing_plans": [
    {
      "name": "Launch",
      "price_label": "$24.99/month",
      "price_usd": 24.99,
      "billing_period": "month",
      "yearly_price": null,
      "free_trial_days": 30,
      "notes": [
        "+2% transaction fee"
      ],
      "features": [
        "Subscription Maximizers",
        "Customizable frequencies",
        "Order Based & Fixed Date"
      ]
    },
    {
      "name": "Grow",
      "price_label": "$49.99/month",
      "price_usd": 49.99,
      "billing_period": "month",
      "yearly_price": null,
      "free_trial_days": 30,
      "notes": [
        "+1% transaction fee"
      ],
      "features": [
        "Most popular!",
        "All Launch features, PLUS:",
        "Reduced 1% transaction fee"
      ]
    },
    {
      "name": "Scale",
      "price_label": "$74.99/month",
      "price_usd": 74.99,
      "billing_period": "month",
      "yearly_price": null,
      "free_trial_days": 30,
      "notes": [
        "+0.9% transaction fee"
      ],
      "features": [
        "All Grow features, PLUS:",
        "Reduced 0.9% transaction fee",
        "Standard support"
      ]
    }
  ],
  "pricing_note": "All charges are billed in USD. Recurring and usage-based charges are billed every 30 days.",
  "external_pricing_url": "https://support.boldcommerce.com/hc/en-us/articles/360050564071",
  "languages": [
    "English"
  ],
  "works_with": [
    "Checkout",
    "Customer accounts",
    "Shopify Admin",
    "Bold Upsell",
    "Checkout, Shop Payments"
  ],
  "category_names": [
    "Subscriptions",
    "Upsell and cross-sell"
  ],
  "launched_date": "2020-10-15",
  "rating_counts": {
    "1": 49,
    "2": 9,
    "3": 17,
    "4": 34,
    "5": 272
  },
  "review_summary": "Merchants say this app makes it easy to add recurring billing and “subscribe and save” offers, especially for consumables. Many report simple setup, smooth customer self‑service, ...",
  "developer_website": "https://boldcommerce.com/product/subscriptions",
  "support_email": "support@boldcommerce.com",
  "privacy_policy_url": "https://boldcommerce.com/legal#our-privacy-policy",
  "changelog_url": "https://developer.boldcommerce.com/changelog/tags/subscriptions",
  "awards": [],
  "demo_store_url": "http://subscriptions.bolddemos.com/",
  "screenshot_count": 12,
  "similar_apps": [
    "skio",
    "paywhirl",
    "progus-subscriptions"
  ],
  "listing_loaded": true,
  "input": "bold-subscriptions",
  "scraped_at": "2026-10-05T19:45:24.329Z"
}
```

**Reviews mode**, 1 and 2 star filter, newest first:

```json
{
  "record_type": "review",
  "app_name": "Klaviyo: Email Marketing & SMS",
  "app_handle": "klaviyo-email-marketing",
  "app_url": "https://apps.shopify.com/klaviyo-email-marketing",
  "review_id": "2380223",
  "review_url": "https://apps.shopify.com/reviews/2380223",
  "rating": 1,
  "review_date": "2026-10-01",
  "edited": false,
  "text": "It’s okay but when trying to cancel it makes it extremely hard. I deinstalled the app wanting to stop it, and got an email that it will automatically bill me due to maxing the amount of subscribers. Logging it to cancel the account it so challenging and I still don’t know if it’s cancelled properly.",
  "store_name": "The Little Rainbow Company Limited",
  "store_country": "New Zealand",
  "time_using_app": "Almost 3 years using the app",
  "developer_reply": "We appreciate you for sharing this feedback regarding your experience with the cancellation process. A senior member of our Billing Support team has reached out to you directly to help confirm your account status and address your concerns.",
  "developer_reply_date": "2026-10-02",
  "developer_reply_by": "Klaviyo",
  "app_rating": 4.7,
  "app_review_count": 3351,
  "review_sort": "newest",
  "star_filter": [
    2,
    1
  ],
  "page": 1,
  "position": 1,
  "input": "klaviyo-email-marketing",
  "scraped_at": "2026-10-05T19:46:16.828Z"
}
```

### Pricing

Pay per event: you pay for each app or review delivered to your dataset, plus a flat $0.005 per run, whatever memory you choose. Prices by Apify plan:

| Event | Free plan | Bronze (Starter) | Silver (Scale) | Gold and above (Business) |
|---|---|---|---|---|
| App delivered (`app-scraped`, search and details modes), per 1,000 | $2.99 | $2.49 | $1.99 | $1.49 |
| Review delivered (`review-scraped`, reviews mode), per 1,000 | $0.99 | $0.79 | $0.59 | $0.49 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

A search row and a details row cost the same: in search mode the actor reads each app's own page anyway, for the developer, trial days and starting price, so switching on `includeFullDetails` adds the full listing at no extra charge.

What is never charged:

- Keywords with no apps, categories and apps that do not exist.
- Pages the App Store refused, even after retries.
- The same app twice in one keyword or category listing, and the same review twice: the second copy is skipped.
- Reviews an earlier run already delivered, when Only new reviews is on.
- The information row at the end of the dataset (it has `"_type": "info"`).

Proxy traffic goes through Apify's datacenter proxy, which is included in the price; there is no separate proxy fee.

### FAQ

**What does this actor read?**
The public Shopify App Store at apps.shopify.com, logged out, the way any merchant browsing it sees it: search results, category pages, app listings and review pages. It does not use a Shopify account, a Partner login, an API key or your cookies.

**How many apps can I get?**
Up to 2,000 per keyword or category per run. Broad keywords run deep ("product reviews" had 312 pages of 24 apps on 6 Oct 2026); narrow ones end sooner, and the run stops at the last page. A subcategory page shows up to 480 apps (20 pages of 24). A top level category such as `store-design` is read through its subcategories one after another until your cap; an app listed in two of them is delivered once.

**What does position mean, and what if one app shows up for two keywords?**
`position` is the app's rank in the listing it came from, counted the way the App Store numbers its pages (24 a page), so page 2 starts at 25. Each keyword or category is its own listing: an app found by two keywords appears once under each, with its position in each, which is what you want for rank tracking. Use `app_handle` to dedupe if you only need the list of apps.

**How fresh is the data?**
Live. Each run reads the App Store at that moment: ratings, review counts, plans and positions are as listed when the row was read (`scraped_at`).

**Do I need a Shopify account, cookies or a proxy of my own?**
No. Nothing to log in to and nothing to configure. The actor uses Apify's datacenter proxy, which the run includes, and it spreads its requests so the App Store's own rate limit is not reached; in our proof runs every app and review page answered.

**Why do some reviews have no text?**
The App Store accepts star only reviews, and many recent ones have no text: 103 of the 150 newest reviews in our test had text. Those reviews still come through with the rating, date, store, country and time using the app, and `text` is left out. Use the star filter or the relevance order if you mostly want written reviews.

**Can I run it on a schedule and get only new reviews?**
Yes. In reviews mode turn on `onlyNewReviews`, keep `reviewSort` on `newest`, and add a schedule in Console (Schedules, Add schedule, daily or weekly). Each run delivers and charges only reviews no earlier run in your account delivered, and stops as soon as it reaches ones it has seen. In our test the second run on the same app delivered 0 reviews after reading one page.

**What happens with a wrong handle, a renamed app or a removed one?**
A renamed app is followed to its new listing (in our test `shopify-email` led to `shopify-messaging`, and the row shows the new handle with your original line in `input`). A handle with no app gets status `not_found` in the run summary (the OUTPUT record) and costs nothing; the other apps in the run go on as normal. The same goes for a category handle that does not exist.

**Are prices in US dollars? What about usage fees?**
Yes, the App Store lists plan prices in US dollars. Usage fees, transaction fees and "additional charges may apply" lines are kept as they appear, in each plan's `notes` and in `pricing_note`. `price_from_usd` is the lowest paid plan price; monthly plans are compared first, and an app with only yearly plans shows its lowest yearly price with `price_from_period` set to year.

**What formats can I export?**
JSON, CSV, Excel, XML, RSS and HTML from the dataset tab, or through the API. In CSV and Excel, lists and nested fields such as `pricing_plans` and `rating_counts` are spread over numbered columns (`pricing_plans/0/price_usd`, `rating_counts/5`).

**Can I use it from Claude, ChatGPT or Cursor (MCP)?**
Yes, through Apify's MCP server.

- Connector URL: https://mcp.apify.com/?tools=themineworks/shopify-app-store-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http shopify-app-store-scraper "https://mcp.apify.com/?tools=themineworks/shopify-app-store-scraper"`

**I need data about Shopify stores, not apps.**
Use our [Shopify Store Scraper](https://apify.com/themineworks/shopify-store-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) for products and prices from any Shopify store. For reviews of software outside Shopify, see our [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [Capterra Reviews Scraper](https://apify.com/themineworks/capterra-software-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

**Is it legal to scrape the Shopify App Store?**
The actor reads only public pages and returns what any visitor can see. Store names on reviews are the names merchants chose to show, and the support email and address are the ones each developer publishes on its listing. You are responsible for how you use the data, including Shopify's terms and data protection law such as GDPR and CCPA.

### Integrations

- **Google Sheets**: add the Google Sheets integration to the actor or a schedule, and new rows land in a sheet after each run.
- **Make, Zapier and n8n**: use the Apify app to start a run and read the dataset, for example to post new 1 star reviews of a competitor to Slack.
- **Webhooks**: call your own endpoint when a run finishes.
- **API**: start runs and read results from any language; the Python and JavaScript clients are a few lines each.
- **MCP clients**: Claude, ChatGPT, Cursor, VS Code and Claude Code, as in the FAQ above.

### More from The Mine Works

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Trends Scraper](https://apify.com/themineworks/google-trends-pro?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Semrush Scraper](https://apify.com/themineworks/semrush-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [App Reviews Scraper](https://apify.com/themineworks/app-reviews-monitor?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Trustpilot Business Search](https://apify.com/themineworks/trustpilot-business-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [TripAdvisor Reviews Scraper](https://apify.com/themineworks/tripadvisor-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Username Checker](https://apify.com/themineworks/username-checker?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Backlink Building Agent](https://apify.com/themineworks/backlink-building-agent?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found an app, category or field that does not come through? Open an issue on the Issues tab and include the link; we answer there. For a new site or source, email dmineworks@gmail.com.

*Shopify App Store Scraper turns keywords, categories or a list of apps into a clean table of apps, pricing plans and merchant reviews, with a charge only for the rows you get.*

# Actor input Schema

## `mode` (type: `string`):

Search returns one row per app found by your keywords or categories, in the App Store's own order. Details returns one full row per app you list in Apps. Reviews returns one row per merchant review of the apps you list in Apps.

## `searchTerms` (type: `array`):

One keyword per line, the way a merchant types it in the App Store search box (product reviews, upsell, subscriptions). A search link such as https://apps.shopify.com/search?q=upsell also works. Up to 100 keywords and categories per run. When both this and Categories are left out, the run searches product reviews as an example.

## `categories` (type: `array`):

One App Store category per line, as a link (https://apps.shopify.com/categories/marketing-and-conversion-social-trust-product-reviews) or its handle. A top level category such as store-design is read through all of its subcategories.

## `maxAppsPerSearch` (type: `integer`):

How many apps to collect for each keyword or category, 20 to 2,000. The App Store lists 24 apps a page; a single subcategory shows up to 480.

## `includeFullDetails` (type: `boolean`):

Adds everything details mode returns (description, every pricing plan, languages, works with, launch date, support email, counts per star and more) to each search row, at the same price per app.

## `apps` (type: `array`):

One app per line: an App Store link (https://apps.shopify.com/judgeme), a reviews link (https://apps.shopify.com/judgeme/reviews) or the handle (judgeme). Up to 1,000 apps per run; repeats are read once.

## `maxReviewsPerApp` (type: `integer`):

How many reviews to collect for each app, 20 to 10,000. The App Store shows 10 reviews a page; the actor pages until it reaches this number or the last review that matches your filters.

## `reviewSort` (type: `string`):

Newest first is the one to use for monitoring.

## `reviewStars` (type: `array`):

Leave empty for every rating. Pick one or more star levels to collect only those, for example 1 and 2 stars to read a competitor's complaints. Max reviews per app applies to the combined list.

## `onlyNewReviews` (type: `boolean`):

Skip reviews an earlier run of yours already delivered, so a scheduled run returns and charges only new ones. Keep the order on Newest first so the run stops as soon as it reaches reviews it has seen.

## Actor input object example

```json
{
  "mode": "search",
  "searchTerms": [
    "product reviews"
  ],
  "categories": [],
  "maxAppsPerSearch": 50,
  "includeFullDetails": false,
  "apps": [
    "https://apps.shopify.com/judgeme",
    "loox"
  ],
  "maxReviewsPerApp": 50,
  "reviewSort": "newest",
  "reviewStars": [],
  "onlyNewReviews": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchTerms": [
        "product reviews"
    ],
    "categories": [],
    "maxAppsPerSearch": 50,
    "apps": [
        "https://apps.shopify.com/judgeme",
        "loox"
    ],
    "maxReviewsPerApp": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/shopify-app-store-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchTerms": ["product reviews"],
    "categories": [],
    "maxAppsPerSearch": 50,
    "apps": [
        "https://apps.shopify.com/judgeme",
        "loox",
    ],
    "maxReviewsPerApp": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/shopify-app-store-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchTerms": [
    "product reviews"
  ],
  "categories": [],
  "maxAppsPerSearch": 50,
  "apps": [
    "https://apps.shopify.com/judgeme",
    "loox"
  ],
  "maxReviewsPerApp": 50
}' |
apify call themineworks/shopify-app-store-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/shopify-app-store-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/yTRbpsVQpCw47gdMK/builds/phLXlAzhlhBu21QWg/openapi.json
