Shopify App Store Review Scraper

Monitor one public Shopify App Store listing with a structured row of ratings, pricing hints, Shopify AI summary text, sampled merchant reviews, and recurring feedback themes. This Actor fetches apps.shopify.com/{slug} listing and paginated review pages. It is not a podcast-review tool — Apple show ratings belong on Apple Podcasts Reviews Scraper.

Open Shopify App Store Review Scraper on Apify

Shopify App Store apps, not podcasts

Use this page when the job is merchant feedback on a Shopify app listing: praise patterns, complaint clusters, pricing posture, and onboarding friction from public App Store pages. Use Apple Podcasts Reviews Scraper when the source is Apple/iTunes Customer Reviews RSS for podcast collection IDs.

This Actor Apple Podcasts Reviews Scraper
Source Public apps.shopify.com/{slug} listing and review pages Official iTunes Customer Reviews RSS JSON
Primary input appUrls (listing URLs or slugs) podcastIds, countries, maxPagesPerPair
Reviewer fields Merchant storeName, location, usage duration, developer replies Podcast reviewerName, rating, title, content, storefront
Deliverable One app-level report: rating, pricing hints, AI summary, samples, theme rollups Raw podcast_review rows or one podcast_review_report

This Actor does not accept podcast IDs, Apple show URLs, or episode feeds. It does not search Apple Podcasts, snapshot Top Podcasts ranks, or read iTunes review RSS.

Use cases

What it does

For each app URL or slug you provide, the Actor:

  1. Fetches the public listing page at apps.shopify.com/{slug}.
  2. Extracts structured metadata from JSON-LD and HTML (name, developer, description, icon, category).
  3. Parses the rating summary — overall score, total review count, per-star distribution, and star counts.
  4. Extracts pricing plan details — plan names, pricing hints, free-trial indicators, and feature-list snippets.
  5. Collects the AI-generated review summary that Shopify surfaces on listing pages.
  6. Samples individual reviews from listing and paginated review pages (stars, date, store name, location, usage duration, body text, developer replies).
  7. Builds keyword-based rollups — top themes (support, ease of use, bugs, billing, onboarding, and similar) and feature-request excerpts.

How is Shopify App Store Review Scraper different from Apple Podcasts Reviews Scraper?

This Actor reads public Shopify App Store merchant listings at apps.shopify.com/{slug}. Inputs are appUrls (full listing URLs or bare slugs). Each delivered app-level report covers listing metadata, rating summary, pricing hints, Shopify’s listing AI review summary, sampled merchant reviews, and keyword theme rollups. Apple Podcasts Reviews Scraper reads Apple/iTunes Customer Reviews RSS for podcast collection IDs and storefronts. It does not scrape Shopify apps. This Actor does not accept podcast IDs, Apple show URLs, or episode feeds.

What input is required?

appUrls is required. The published schema accepts Shopify App Store URLs or bare slugs. Other published fields:

Field Type Default Notes
appUrls string[] required Listing URLs or slugs (for example https://apps.shopify.com/omnisend or omnisend)
reviewLimit integer 100 Max reviews per app; minimum 1, maximum 500
timeoutMs integer 20000 HTTP timeout per page; minimum 5000, maximum 60000
delivery string dataset dataset or webhook
webhookUrl string POST target when delivery is webhook
dryRun boolean false Skip dataset and webhook writes

The schema sets additionalProperties to false. Use appUrls, not unpublished aliases. The published input schema does not include appSlugs, maxReviewsPerApp, sinceDays, or sortBy.

Published input example (matches the schema):

{
  "appUrls": [
    "https://apps.shopify.com/omnisend",
    "klaviyo-email-marketing"
  ],
  "reviewLimit": 50,
  "delivery": "dataset",
  "dryRun": false
}

Single-listing Store example:

{
  "appUrls": ["https://apps.shopify.com/omnisend"],
  "reviewLimit": 100,
  "timeoutMs": 20000,
  "delivery": "dataset",
  "dryRun": false
}

Start with a Quickstart Baseline on 1–2 listings in dataset mode. Keep reviewLimit modest for a Recurring Baseline; raise it only when deeper theme clustering changes decisions. Use dryRun: true before recurring runs or larger watchlists.

Run a listing report on Apify

What does a listing report contain?

A good first run gives you apps[] (one merchant-review row with rating, pricing hints, AI summary text, and recurring themes), reviewSamples[] plus rollups (raw evidence and grouped complaints), and warnings / endpointStatuses when review pages are thin or a listing surface degrades.

Published README sample shape:

{
  "meta": {
    "generatedAt": "2026-04-10T17:06:42.111Z",
    "implementationStatus": "live",
    "totalSources": 1,
    "totals": {
      "apps": 1,
      "ok": 1,
      "errors": 0,
      "warningCount": 0,
      "totalReviewsSampled": 10
    },
    "notes": ["..."]
  },
  "apps": [
    {
      "slug": "omnisend",
      "url": "https://apps.shopify.com/omnisend",
      "status": "ok",
      "app": {
        "name": "...",
        "developer": "...",
        "description": "...",
        "icon": "...",
        "category": "..."
      },
      "rating": {
        "overall": 4.8,
        "totalReviews": 2939,
        "distribution": { "5": 90 },
        "starCounts": { "5": 2632 }
      },
      "pricing": {
        "hasFreeOption": true,
        "hasFreeTrial": false,
        "pricingHint": "Free to install",
        "plans": ["..."]
      },
      "reviewSummary": "Merchants praise this app for ...",
      "reviewSamples": [
        {
          "id": "2090002",
          "stars": 5,
          "date": "February 21, 2026",
          "storeName": "...",
          "body": "..."
        }
      ],
      "rollups": {
        "themes": [{ "theme": "customer support", "count": 5 }],
        "featureRequests": ["..."]
      },
      "warnings": [],
      "endpointStatuses": { "listing": "ok", "reviews": "ok" },
      "error": null
    }
  ]
}

That sample is the published README illustration, not a live coverage guarantee. README prose also lists location, usage duration, and developer replies on sampled reviews. There is no separate published dataset/output JSON schema on the Store page.

What happens if reviews or listing HTML are unavailable?

If certain surfaces are unavailable (for example no reviews or a changed HTML structure), the Actor returns explicit warnings instead of failing silently. A good first run also exposes endpointStatuses for the listing and reviews surfaces so thin review pages or a degraded listing are visible.

How is Shopify App Store Review Scraper priced?

Billing is pay-per-event. The published Store card is $30.00 / 1,000 shopify app review and pricing reports. The billed event title is Shopify app review and pricing report at $0.03, charged once for each delivered app-level report containing public rating, pricing, sampled-review, and feedback-theme evidence. You are not charged for Apify platform usage, only the fixed event price.

Total cost mainly follows how many app listings you analyze and how many review pages you sample. Check the Store pricing card for the current per-event rates.

$30.00 per 1,000 Shopify app review and pricing reports ($0.03 per delivered app-level report)

See Shopify App Store Review Scraper pricing on Apify

How do dataset, webhook, and dry-run delivery work?

delivery defaults to dataset. Set delivery to webhook and provide webhookUrl to POST results after the payload shape is useful. dryRun true runs without saving results to the dataset or webhook. The Store quickstart starts with a single-listing dataset run, then a multi-app recurring watch, then webhook-routed alerts once the schema is stable.

Open Shopify App Store Review Scraper on Apify

Related pages