Shopify App Store Scraper

Scrape Shopify App Store listings, pricing, ratings, developer metadata, categories, features, and related apps.

Data fields

FieldTypeDescription
nametextName exported in the dataset view.
handletextHandle exported in the dataset view.
urllinkURL exported in the dataset view.
developerNametextDeveloper exported in the dataset view.
pricingSummarytextPricing exported in the dataset view.
ratingValuenumberRating exported in the dataset view.
ratingCountnumberReviews exported in the dataset view.
categoriesarrayCategories exported in the dataset view.

Input preview

startUrlsApp URLs
handlesApp handles
categoryUrlsCategory URLs
maxItemsMaximum listings
includeRelatedAppsInclude related apps

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Research Shopify apps without copying each listing by hand. Shopify App Store Scraper collects public descriptions, pricing summaries, ratings and developer details in one dataset.

Start with a few known apps or explore a category. Export the results to a spreadsheet, use the API or explore them with an AI agent.

🚀 Quick start

New here? Try this one-app lookup first. It collects the public Klaviyo listing and keeps the first run small:

{
  "handles": ["klaviyo-email-marketing"],
  "maxItems": 1,
  "includeRelatedApps": false
}
  1. Open this Actor in Apify Console and enter the input above.
  2. Start the run and wait for it to finish.
  3. Open the dataset to inspect the listing, then export it as CSV, JSON or Excel.

Each row describes one app listing, including its available rating and review count. For individual review text, use the Shopify App Reviews Scraper.

Prefer a walkthrough?

Apify’s official video covers inputs, runs and exports. It uses another Actor, so follow the Shopify examples on this page; the Console layout may differ.

https://www.youtube.com/watch?v=1OW8gOqlZbY

💡 Research Shopify apps

  • Compare competing apps: collect listing descriptions, pricing summaries and ratings for a known set of apps.
  • Explore an app category: discover listings from a current public category page.
  • Find related apps: expand from selected listings using related-app references.
  • Track listing changes: schedule repeated runs in Apify and compare exported datasets in your own workflow. Change detection and alerts are not built into this Actor.

Choose your input

Your starting point Input field Best use
Known app handles handles Repeatable app lookups
Exact public listing URLs startUrls Collect a prepared app list
A public category page categoryUrls Discover listings from a category

Choose at least one input source. You can combine sources; repeated handles are processed once per run.

Control the number of listings

Setting Default What it changes
Maximum listings — maxItems 20 Caps saved app listings across the whole run, including related apps. Accepts 1–10000; fewer listings may be available.
Include related apps — includeRelatedApps true Visits related listings discovered on app pages until the item limit is reached. Set false for a fixed lookup list.

The maxItems limit includes both your chosen apps and any related apps. For a fixed comparison, set includeRelatedApps to false and allow enough items for your app list. The relatedApps field can still contain references when following those links is disabled.

Compare a known set of apps

For a page-builder comparison, collect PageFly and GemPages in the same run:

{
  "handles": ["pagefly", "gempages"],
  "maxItems": 2,
  "includeRelatedApps": false
}

Use pricingSummary, ratingValue and ratingCount to shortlist apps. Open their listing pages when you need full pricing plans or feature details.

Not sure which apps to compare yet? Start with Judge.me and collect a small set of related listings:

{
  "handles": ["judgeme"],
  "maxItems": 5,
  "includeRelatedApps": true
}

Use the names, descriptions and listing URLs to decide which apps deserve a closer look. Related results depend on the references available on the public listings.

Discover apps from a category

Paste a current Shopify App Store category URL into categoryUrls; older links may redirect. Set includeRelatedApps to false to avoid following related listings beyond the category results.

maxItems sets the maximum number of listings to save. Fewer apps may be available.

Shopify App Store data and output

Each row describes one public app listing.

Fields you receive

Available fields include:

Fields Meaning
name, handle, url App identity and public listing URL
description, pricingSummary Listing text and app pricing summary
developerName, developerWebsite Public developer information when available
ratingValue, ratingCount Listing rating and rating/review count
categories, features, languages, worksWith Public listing attributes
relatedApps, scrapedAt Related listing references and collection timestamp

Some fields may be missing or empty. Check the listing before treating a missing value as zero or free.

Example output

Selected fields from a saved Klaviyo listing collected on 9 October 2026. Ratings, review counts and app pricing can change:

{
  "name": "Klaviyo: Email Marketing & SMS",
  "handle": "klaviyo-email-marketing",
  "url": "https://apps.shopify.com/klaviyo-email-marketing",
  "pricingSummary": "Free to install",
  "ratingValue": 4.7,
  "ratingCount": 3341,
  "developerName": "Klaviyo",
  "scrapedAt": "2026-10-09T00:24:07.145Z"
}

Check partial results

If some apps cannot be collected, the successful results remain available. Open the run's default key-value store in Apify Console and select RUN_SUMMARY:

  • saved tells you how many listing records were saved.
  • outcomes identifies app handles with recorded errors.
  • partial is true when those errors were recorded.
  • finishedAt gives the summary timestamp.

partial: false means no errors were recorded. A category may still contain more apps than the run could collect within its item or time limit. If the summary is missing, check the run log. If no listings can be extracted, the run fails.

💳 Pricing and limits

How much does it cost?

Pay for the app listings you extract, plus a small fee each time you start a run.

Charge Free-plan price (USD)
Starting a run $0.005 per run
App listing extraction About $0.13 per 1,000 listings

Example: Extracting 1,000 app listings in one run costs about $0.14 in Actor fees, including the start charge.

Paid plans offer discounts. See the Pricing tab for exact current rates.

Keep your first run small

Start with maxItems: 1. Set includeRelatedApps to false for an exact app list, or enable it to discover related apps. Each run has a start fee, including repeat lookups.

The app prices returned in pricingSummary describe the Shopify app itself. They are separate from the cost of using this scraper.

Put the results to work

Build a comparison spreadsheet

  1. Run the two-app comparison example above.
  2. Export the dataset as CSV and import it into Google Sheets or Excel.
  3. Keep handle, name, url, pricingSummary, ratingValue and ratingCount together.
  4. Compare the listing prices and rating signals, then open the linked app pages for details before making a decision. The pricing summary is listing text, rather than a complete plan comparison.

Repeat the same research

Save your preferred app list as an Apify task and add a schedule in Apify Console. Keep includeRelatedApps set to false when you want to compare the same apps between runs.

Save each dataset with its collection date and match records by handle. Compare ratingValue, ratingCount and pricingSummary with the previous collection to find changed listings. Check RUN_SUMMARY before treating a missing app as a removal.

The Actor collects snapshots; your spreadsheet or application performs the comparison and sends any alerts. Use the API example below to retrieve records automatically. Each scheduled run has its own start and result charges.

Shopify App Store API access

Run fetch_cat/shopify-app-store-scraper through the Apify API to collect public app listing data in your own workflow. This scraper is not Shopify's official API and is not affiliated with Shopify.

Use any input recipe above to start a run and retrieve its dataset. Include handles, startUrls or categoryUrls in your request; Console sample inputs are not automatically supplied through the API.

Run from Node.js

Install the Node.js client:

npm install apify-client

Set your Apify API token in the APIFY_TOKEN environment variable, then run:

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client
  .actor('fetch_cat/shopify-app-store-scraper')
  .call({
    handles: ['klaviyo-email-marketing'],
    maxItems: 1,
    includeRelatedApps: false,
  });

const { items } = await client
  .dataset(run.defaultDatasetId)
  .listItems();

console.log(items);

The example waits for the run and retrieves its records. For Python, cURL and other languages, use the Actor's API tab or Python client guide. For larger datasets, follow the client's pagination instructions. Normal Actor charges apply.

🤖 AI agents and MCP

For Codex or Claude Code, start with Apify’s official plugin. It connects Apify’s hosted MCP server and includes Agent Skills. Follow the guide for your client and sign in to Apify.

Once connected, name the Actor and keep your first request small:

Use fetch_cat/shopify-app-store-scraper to look up Klaviyo on Shopify App Store. Collect just that app, without following related apps. Show its name, pricing summary, rating and review count.

The agent should check the input and output schemas, run the Actor, and read the completed dataset. Normal Actor charges apply.

Optional: connect only this Actor

For a focused setup, Apify’s MCP configurator supports this tool selection:

https://mcp.apify.com?tools=fetch_cat/shopify-app-store-scraper

Follow the MCP connection guide for your client. This selects one Actor on the hosted server; an existing plugin connection can already access it.

Optional agent payments

Agents can also use Apify’s experimental x402 prepaid tokens without an Apify account. This Actor uses limited permissions. The official guide explains stablecoin funding and token terms; normal Actor fees apply.

💬 Support, feedback and custom additions

Have a question, found a problem or want another field? We’d love to hear from you. Open an issue in this Actor’s Issues tab.

For errors, include:

  • The run ID or run URL.
  • A small input example and the public app URL.
  • What you expected and what you received.

Leave out tokens and private information.

For custom fields, additions or integrations, email hello@fetchcat.dev and tell us what you’re building. If the scraper has helped your project, a review is always appreciated.

Made with care for curious people, AI agents and the possibilities in data. ♥

Common questions

Questions and answers reused from the canonical actor README.

Does this collect individual Shopify app reviews?

It collects listing ratings and review counts. Use the Shopify App Reviews Scraper for individual review text.

How do I exclude related apps?

Set includeRelatedApps to false. For a fixed list, supply the exact handles or listing URLs and allow enough maxItems for that list.

Why did I get fewer listings than requested?

maxItems is a ceiling. Your input may expose fewer apps, some pages may be unavailable, or discovery may stop before the whole category is collected. Check RUN_SUMMARY and the run log for recorded errors.

What should I do when an app URL no longer works?

Open its current public Shopify listing and update the handle or URL. Other successfully collected apps remain in the dataset. If none can be extracted, the run fails.

How do I export Shopify App Store data?

Open the run's dataset and export CSV, JSON or Excel. You can also retrieve the same records through the API or an AI-agent workflow.