# Shopify App Store Tracker — Ratings, Pricing & Developer Data (`actorpilot/shopify-app-store-tracker`) Actor

Scrape apps.shopify.com for Shopify app listings by keyword or category. Extract ratings, review counts, pricing models, developer names, taglines, and descriptions for competitor research, market analysis, partner prospecting, and App Store tracking.

- **URL**: https://apify.com/actorpilot/shopify-app-store-tracker.md
- **Developed by:** [S. Klein](https://apify.com/actorpilot) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Tracker

**Scrape [apps.shopify.com](https://apps.shopify.com) for app listings, ratings, review counts, pricing models, developer names, and descriptions** — by keyword search, category browsing, or top-rated mode. No API key required.

Whether you're researching competitors, analyzing a market segment, or prospecting for partnership targets, this Actor delivers structured, ready-to-use data from the Shopify App Store in seconds.

### Why Use Shopify App Store Tracker?

The Shopify App Store lists over 8,000 apps across dozens of categories. Manual research is slow and impossible to scale. This Actor automates the entire process:

- **Competitor research**: Find every app competing in your niche — loyalty, upsell, SEO, reviews, subscriptions — and compare them side by side
- **Market analysis**: Which pricing models dominate a category? What's the average rating? Which apps are top-rated?
- **Partner prospecting**: Identify high-rated Shopify app developers for technology partnerships, integrations, or co-marketing
- **SaaS market intelligence**: Track new entrants in a space, monitor rating trends over time, discover underserved categories
- **Investment due diligence**: Research a Shopify app's market position, review trajectory, and competitive landscape before acquiring or investing
- **Lead generation for agencies**: Find merchants using specific apps (by developer) for targeted outreach
- **App store optimization benchmarking**: See how competitors write their taglines, what pricing tiers they use, and how many reviews market leaders have

### How to Use Shopify App Store Tracker

1. Go to the Actor page on [Apify Store](https://apify.com) and click **Try for free**
2. Choose your **mode**: `search` (keyword), `category` (browse), or `top_rated`
3. Enter your keyword or select a category from the dropdown
4. Set `maxResults` to control how many apps to scrape (default: 30)
5. Optionally set `minRating` to filter out low-quality apps
6. Click **Start** — results appear in the **Output** tab within seconds to minutes
7. Download as JSON, CSV, or Excel — or connect to your workflow via the Apify API

### Modes

#### Search by Keyword

Find apps matching any search term — ranked by Shopify's relevance algorithm. Ideal for competitive research in a specific niche.

```json
{
  "mode": "search",
  "query": "email marketing",
  "maxResults": 30
}
````

Other example queries: `"loyalty program"`, `"upsell"`, `"SEO"`, `"reviews"`, `"subscription"`, `"reviews import"`, `"helpdesk"`

#### Browse by Category

Browse one of Shopify's 7 main categories to see the full competitive landscape in a segment.

```json
{
  "mode": "category",
  "category": "marketing-and-conversion",
  "maxResults": 50
}
```

**Available categories:**

| Category Slug | What it covers |
|---|---|
| `finding-products` | Dropshipping, sourcing, print-on-demand |
| `selling-products` | Product customization, bundles, B2B, digital |
| `orders-and-shipping` | Fulfillment, tracking, returns, shipping rates |
| `store-design` | Page builders, themes, visual merchandising |
| `marketing-and-conversion` | Email, SMS, loyalty, reviews, upsell, pop-ups |
| `store-management` | Inventory, analytics, accounting, customer support |
| `sales-channels` | Social commerce, marketplaces, Google Shopping |

#### Top Rated

Returns the highest-rated apps in the marketing & conversion category — useful for benchmarking and spotting category leaders.

```json
{
  "mode": "top_rated",
  "maxResults": 50
}
```

### Input Reference

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search`, `category`, `top_rated`, or `browse` |
| `query` | string | — | Search keyword (required for `search` mode) |
| `category` | string | — | Category slug (required for `category` mode) |
| `maxResults` | integer | `30` | Max apps to return (1–200) |
| `minRating` | number | `0` | Minimum star rating (e.g. `4.5` to filter out low-rated apps) |

### Output

Each scraped app returns the following fields:

| Field | Type | Description |
|---|---|---|
| `appName` | string | Full app name as shown in the store |
| `appSlug` | string | URL-friendly identifier |
| `appUrl` | string | Direct link to the app's store page |
| `developerName` | string | Company or developer name |
| `rating` | number | Average star rating (0–5) |
| `reviewCount` | integer | Total number of reviews |
| `pricingModel` | string | Pricing tier label (e.g. "Free plan available") |
| `tagline` | string | Short app description / value proposition |
| `description` | string | Full app description text |
| `categories` | array | Category tags assigned to the app |
| `scrapedAt` | string | ISO 8601 timestamp of when data was collected |

You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel** from the Output tab or via the Apify API.

#### Example Output

```json
{
  "appName": "Smile: Loyalty Program Rewards",
  "appSlug": "smile-io",
  "appUrl": "https://apps.shopify.com/smile-io",
  "developerName": "Smile.io",
  "rating": 4.9,
  "reviewCount": 4264,
  "pricingModel": "Free plan available",
  "categories": ["marketing-and-conversion"],
  "tagline": "Customer loyalty points, VIP tiers, referrals, rewards program",
  "description": "Increase sales and repeat purchases, save on acquisition costs...",
  "scrapedAt": "2026-06-11T08:00:00.000Z"
}
```

### How Much Does It Cost?

Apify provides a **free tier** with $5 of platform credits per month — enough for hundreds of app scraping runs.

| Run size | Approximate time | Estimated cost |
|---|---|---|
| 30 apps | ~30–45 seconds | ~$0.01 |
| 100 apps | ~2–3 minutes | ~$0.03 |
| 200 apps | ~5–6 minutes | ~$0.06 |

Costs are minimal because this Actor uses lightweight HTTP requests — no browser automation needed.

### Tips for Best Results

- **Use `minRating: 4.5`** to instantly filter out low-quality apps and focus on proven players
- **Combine keyword + category**: Run a keyword search first to find your direct competitors, then browse their category to discover adjacent players
- **Set `maxResults: 200`** for full market maps — the Actor handles pagination automatically
- **Schedule recurring runs** via Apify's scheduler to track rating changes and new entrants over time
- **Export to Google Sheets** using Apify's native Google Sheets integration for team collaboration

### Use With the Apify API and MCP

The Actor integrates natively with the Apify API — trigger runs, retrieve results, and build automated pipelines programmatically.

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/actorpilot~shopify-app-store-tracker/runs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"search","query":"loyalty","maxResults":50}'
```

The Actor also works with the **Apify MCP server** — connect it to Claude, GPT-4, or any MCP-compatible AI assistant to query Shopify App Store data conversationally:

> "Find me the top 20 loyalty apps on Shopify with at least 4.8 stars"

### FAQ

**Do I need a Shopify account to use this?**
No. The Actor scrapes the public Shopify App Store — no account or API key required.

**How fresh is the data?**
Data is scraped live at the time of each run — it reflects the current state of the App Store.

**Why are some Shopify-owned apps missing?**
Shopify's own apps (Shop Pay, Flow, Collabs) use a different page structure and may not appear in standard search or category results.

**Can I scrape a specific developer's apps?**
Use `mode: search` with the developer name as the query (e.g., `"Klaviyo"`).

**Is scraping Shopify legal?**
This Actor scrapes publicly available, non-login-protected information. Always review Shopify's terms of service and use the data in compliance with applicable laws.

**I need a custom integration or different data fields — can you help?**
Open a support ticket via the **Issues** tab on the Actor page, or contact us through Apify for a custom solution.

# Actor input Schema

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

How to discover apps.

## `query` (type: `string`):

Required for search mode. Example: 'SEO', 'email marketing', 'upsell', 'loyalty program'.

## `category` (type: `string`):

Required for category mode.

## `maxResults` (type: `integer`):

Maximum number of apps to return.

## `minRating` (type: `number`):

Only return apps with a rating at or above this value. 0 = return all.

## Actor input object example

```json
{
  "mode": "search",
  "query": "email marketing",
  "category": "marketing-and-conversion",
  "maxResults": 30,
  "minRating": 0
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("actorpilot/shopify-app-store-tracker").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("actorpilot/shopify-app-store-tracker").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 '{}' |
apify call actorpilot/shopify-app-store-tracker --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Shopify App Store Tracker — Ratings, Pricing & Developer Data",
        "description": "Scrape apps.shopify.com for Shopify app listings by keyword or category. Extract ratings, review counts, pricing models, developer names, taglines, and descriptions for competitor research, market analysis, partner prospecting, and App Store tracking.",
        "version": "1.0",
        "x-build-id": "J6UOgpVsb7HK3ZoGh"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/actorpilot~shopify-app-store-tracker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-actorpilot-shopify-app-store-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/actorpilot~shopify-app-store-tracker/runs": {
            "post": {
                "operationId": "runs-sync-actorpilot-shopify-app-store-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/actorpilot~shopify-app-store-tracker/run-sync": {
            "post": {
                "operationId": "run-sync-actorpilot-shopify-app-store-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "category",
                            "top_rated"
                        ],
                        "type": "string",
                        "description": "How to discover apps.",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Required for search mode. Example: 'SEO', 'email marketing', 'upsell', 'loyalty program'."
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "finding-products",
                            "selling-products",
                            "orders-and-shipping",
                            "store-design",
                            "marketing-and-conversion",
                            "store-management",
                            "sales-channels"
                        ],
                        "type": "string",
                        "description": "Required for category mode.",
                        "default": "marketing-and-conversion"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of apps to return.",
                        "default": 30
                    },
                    "minRating": {
                        "title": "Minimum rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only return apps with a rating at or above this value. 0 = return all.",
                        "default": 0
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
