Shopify App Store Scraper avatar

Shopify App Store Scraper

Pricing

from $0.07 / 1,000 result extracteds

Go to Apify Store
Shopify App Store Scraper

Shopify App Store Scraper

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

Pricing

from $0.07 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

6 days ago

Last modified

Share

Scrape public Shopify App Store app listings for market research, competitor monitoring, app discovery, and ecommerce SaaS lead generation. The Actor outputs app names, handles, URLs, descriptions, developer metadata, pricing summaries, ratings, categories, features, languages, integrations, and related apps from public Shopify App Store pages.

What does Shopify App Store Scraper do?

Shopify App Store Scraper turns public app listing pages into structured dataset records. You can scrape exact apps by URL, pass known Shopify app handles, or start from category URLs and let the Actor discover listings until your maxItems limit is reached.

Typical records include the app name, app handle, public listing URL, tagline or short description, developer name, rating, review count, pricing summary, categories, languages, integrations, feature bullets, and related app references when available.

Who is it for?

This Actor is useful for ecommerce teams, SaaS founders, agencies, analysts, and data vendors who need repeatable Shopify App Store listing data without manually copying pages.

Common workflows include:

  • tracking competitor app positioning and rating changes,
  • building lead lists of Shopify app developers,
  • comparing pricing and feature language across app categories,
  • discovering apps in a niche before partnership or integration outreach,
  • enriching ecommerce market research with public app metadata.

Example inputs and input recipes

Scrape one known app

Use this recipe when you already know the Shopify App Store handle.

{
"handles": ["klaviyo-email-marketing"],
"maxItems": 1,
"includeRelatedApps": false
}

Scrape exact app URLs

Use startUrls when you already have full public app listing URLs.

{
"startUrls": [{ "url": "https://apps.shopify.com/klaviyo-email-marketing" }],
"maxItems": 1,
"includeRelatedApps": false
}

Discover from a category

Use categoryUrls for public Shopify App Store category pages. Keep maxItems small while testing, then increase it for production runs.

{
"categoryUrls": [{ "url": "https://apps.shopify.com/categories/marketing-and-conversion-email-marketing" }],
"maxItems": 20,
"includeRelatedApps": true
}

Input options

  • startUrls — public Shopify App Store app detail URLs.
  • handles — app handles such as klaviyo-email-marketing.
  • categoryUrls — public category pages for discovery crawls.
  • maxItems — maximum number of listings to save.
  • includeRelatedApps — follow related app cards found on detail pages until the item limit is reached.

Use one or more input sources in the same run. The Actor deduplicates app URLs so repeated handles or URLs do not create duplicate output records.

Output

Each dataset item represents one public Shopify App Store app listing with structured metadata. Fields can include:

  • name, handle, and url,
  • app summary and description text,
  • developerName and developer profile information when public,
  • rating and review count values,
  • pricing summary,
  • categories, features, languages, and integrations,
  • related app links discovered from the listing.

The Actor also writes a RUN_SUMMARY key-value-store record with run-level counts and partial-success information.

Data quality and partial results

Runs preserve partial output. If one app page changes, times out, or no longer exists, other successfully scraped listings remain in the dataset. If no listing can be extracted at all, the run fails clearly instead of silently returning an empty dataset.

For category crawls, Shopify may adjust category URLs and page layouts over time. Use exact app handles or URLs when you need the most deterministic result set.

Cost expectations

Use a small maxItems while testing. Larger category crawls may make more Shopify App Store requests because related app discovery can expand the queue. Pay-per-event charging is based on saved listing records, with a small start event.

For predictable cost control:

  1. Start with maxItems between 1 and 10.
  2. Review the dataset shape and runtime.
  3. Increase maxItems only after the input produces the expected listings.
  4. Disable includeRelatedApps when you only want the exact apps or category seed results.

API usage

Call the Actor through the Apify API with a JSON input containing handles, startUrls, or categoryUrls. After the run succeeds, read structured Shopify App Store listing records from the default dataset.

Node.js

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);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/shopify-app-store-scraper').call(run_input={
'handles': ['klaviyo-email-marketing'],
'maxItems': 1,
'includeRelatedApps': False,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST \
"https://api.apify.com/v2/acts/fetch_cat~shopify-app-store-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"handles":["klaviyo-email-marketing"],"maxItems":1,"includeRelatedApps":false}'

MCP usage

You can use this Actor from Apify integrations and MCP-compatible workflows by passing the same JSON input fields used in the Apify Console. Start with a handle-based input for deterministic app-level lookups, then use the default dataset as the structured result source for downstream analysis.

Add the Apify MCP server

For Claude Desktop or Claude Code, add the Apify MCP server with your Apify API token. One common CLI setup is:

$claude mcp add apify -- npx -y @apify/actors-mcp-server --actors fetch_cat/shopify-app-store-scraper

You can also configure the MCP server with JSON:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "fetch_cat/shopify-app-store-scraper"],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}

Example prompts showing MCP usage

  • "Run Shopify App Store Scraper for the handle klaviyo-email-marketing and summarize the pricing, rating, and developer fields."
  • "Scrape up to 10 public apps from this Shopify App Store category URL and return the dataset columns useful for competitor research."
  • "Compare the related app names from the latest Shopify App Store Scraper dataset and group them by category."

Legality and responsible use

This Actor collects publicly available Shopify App Store listing information. It does not log in, bypass private areas, or claim affiliation with Shopify. Always review your intended use case, local laws, and Shopify's applicable terms before using scraped data in production workflows.

FAQ

Can it scrape reviews? This Actor focuses on app listings. Use the Shopify App Reviews Scraper for review text.

Can I scrape private merchant data? No. The Actor is designed for public Shopify App Store listing pages only.

What happens if Shopify changes a page? The run records partial outcomes in RUN_SUMMARY and fails clearly if no listings can be extracted.

How do I avoid too many related apps? Set includeRelatedApps to false or use a smaller maxItems value.

  • Shopify App Reviews Scraper for review text and reviewer metadata.
  • Shopify store and ecommerce actors for merchant-side data enrichment.

Support

Open an Apify issue with your run ID and input if you need help. Include the public app URL or handle you expected to scrape and a short description of the missing or unexpected field.