# Shopify App Store Scraper — Apps & Reviews (`ethanteague/shopify-app-store-scraper`) Actor

Scrape Shopify App Store apps and merchant reviews: ratings, review text with store name/country/tenure, pricing plans, developer info. Track competitors, monitor churn complaints, validate app ideas.

- **URL**: https://apify.com/ethanteague/shopify-app-store-scraper.md
- **Developed by:** [Ethan Teague](https://apify.com/ethanteague) (community)
- **Categories:** E-commerce, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 review scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Shopify App Store Scraper — Apps & Reviews

Scrape the **Shopify App Store** into clean, flat JSON: full app profiles and every merchant review — with the reviewer's **store name, country, and time using the app** attached. Built for app developers, agencies, and investors doing competitive intelligence on the Shopify ecosystem.

### What you can scrape

| Item | Fields |
|---|---|
| **App details** | Name, description, star rating, review count, developer name + partner URL, launch date, monthly plan prices, free-plan flag, Built-for-Shopify badge, categories |
| **Merchant reviews** | Star rating, date, full review text, **reviewing store's name**, country, and how long they'd used the app |

### Why this scraper

- **Churn intelligence, not just star counts.** Reviews come with store identity and tenure — see exactly *which* merchants are leaving a competitor and *why*, week by week.
- **Monitoring-ready.** The `reviewsNewerThan` cutoff plus star filters (e.g. only 1–2★) make a weekly "new complaints about competitor X" pipeline a single scheduled run.
- **Flat output** — one-click CSV/Excel export, no nested JSON to wrangle.
- **Honest pay-per-result pricing** — you pay for delivered items only.

### Use cases

- Track a competitor's negative reviews as a **lead source or churn-watch** (the reviewers are named merchants).
- Validate an app idea: pull every recent review in a category and mine complaint patterns before writing code.
- Portfolio monitoring for agencies/investors: ratings, velocity, and pricing across dozens of apps on a schedule.
- Feed an AI agent fresh app-market data through the Apify API or MCP.

### Example input

```json
{
  "appUrls": ["klaviyo-email-marketing", "https://apps.shopify.com/stockie"],
  "includeAppDetails": true,
  "includeReviews": true,
  "maxReviewsPerApp": 200,
  "reviewsNewerThan": "2026-01-01",
  "starFilters": ["1", "2"]
}
```

### Example output

App item:

```json
{
  "type": "app",
  "appSlug": "stockie",
  "url": "https://apps.shopify.com/stockie",
  "name": "Stockie Inventory Management",
  "rating": 4.9,
  "ratingCount": 92,
  "developer": "Plutonian",
  "launched": "July 19, 2021",
  "monthlyPricesUsd": [4.99, 9.99, 29.99, 59.99],
  "freePlanAvailable": true,
  "builtForShopify": true,
  "categories": ["sales-channels", "finding-products", "selling-products"]
}
```

Review item:

```json
{
  "type": "review",
  "appSlug": "stockie",
  "store": "Woolyn",
  "country": "United States",
  "tenure": "4 days using the app",
  "date": "July 15, 2026",
  "dateIso": "2026-07-15",
  "stars": 4,
  "text": "Pros: The most robust PO ordering system and the closest to Stocky that I've found..."
}
```

### Pricing

| Event | Price |
|---|---|
| Actor start | $0.001 per run |
| App scraped | $0.005 (= $5 per 1,000 apps) |
| Review scraped | $0.002 (= **$2 per 1,000 reviews**) |

Example: a competitor's full profile + its latest 500 reviews ≈ **$1.01**. Set a *Maximum total charge* on any run to hard-cap spend.

### Use it via API

```bash
curl -X POST "https://api.apify.com/v2/acts/USERNAME~shopify-app-store-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"appUrls": ["stockie"], "maxReviewsPerApp": 50}'
```

Works with the Apify JavaScript/Python clients, schedules, webhooks, and integrations (Google Sheets, Make, Zapier, LangChain), and it's callable as an AI-agent tool via the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp).

### FAQ

**Is this allowed?** The actor reads public listing pages at polite request rates with automatic backoff. You're responsible for complying with applicable laws and terms for your use case.

**How fresh is the data?** Live at request time — nothing cached.

**Reviews stop earlier than my max.** That's the `reviewsNewerThan` cutoff working: reviews are collected newest-first and the run stops at your date instead of burning budget on old pages.

**Need categories, search results, or developer replies?** Open an issue on the **Issues** tab — those are next on the roadmap, and I typically respond within a day.

# Actor input Schema

## `appUrls` (type: `array`):

Shopify apps to scrape — full URLs (<code>https://apps.shopify.com/klaviyo-email-marketing</code>) or just slugs (<code>klaviyo-email-marketing</code>).

## `includeAppDetails` (type: `boolean`):

Push one item per app with rating, review count, developer, launch date, pricing plans, categories, and Built-for-Shopify badge.

## `includeReviews` (type: `boolean`):

Push merchant reviews with store name, country, time using the app, star rating, date, and full text.

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

Reviews are collected newest-first.

## `reviewsNewerThan` (type: `string`):

Stop collecting once reviews get older than this date, e.g. <code>2026-01-01</code>. Great for weekly monitoring runs. Optional.

## `starFilters` (type: `array`):

Only collect reviews with these star ratings (1–5). E.g. <code>1</code> and <code>2</code> to monitor complaints/churn signals. Leave empty for all reviews.

## `proxyConfiguration` (type: `object`):

Proxy settings. Keep Apify Proxy enabled for reliable results on the platform.

## Actor input object example

```json
{
  "appUrls": [
    "klaviyo-email-marketing"
  ],
  "includeAppDetails": true,
  "includeReviews": true,
  "maxReviewsPerApp": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "appUrls": [
        "klaviyo-email-marketing"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ethanteague/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 = { "appUrls": ["klaviyo-email-marketing"] }

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

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

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

```

## CLI example

```bash
echo '{
  "appUrls": [
    "klaviyo-email-marketing"
  ]
}' |
apify call ethanteague/shopify-app-store-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ethanteague/shopify-app-store-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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