# ShopMy Creator Products & Change Monitor (`luminar/shopmy-creator-products-monitor`) Actor

Export public ShopMy creator profiles, collections, product picks, brands, prices and engagement signals, then track reliable changes between runs.

- **URL**: https://apify.com/luminar/shopmy-creator-products-monitor.md
- **Developed by:** [Luka](https://apify.com/luminar) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 shopmy product picks

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

### 🚀 Start in 60 seconds

1. Keep **Get current creator products** selected.
2. Paste one public ShopMy creator URL or handle.
3. Keep **Latest finds** and 100 picks for a quick first run.
4. Click **Start**, then open **Product picks**.

The default run checks one public creator and costs at most about **$0.0385** if all 100 requested picks are delivered on the Free plan. A smaller result costs only for the verified creator and delivered picks.

```json
{
  "workflow": "CURRENT_EXPORT",
  "creatorUrls": ["https://shopmy.us/shop/sofiarichiegrainge"],
  "catalogScope": "LATEST",
  "maxProductsPerCreator": 100,
  "maxCollectionsPerCreator": 50,
  "stateNamespace": "default",
  "maxBuyerChargeUsd": 1
}
```

### 🎯 Choose the right workflow

- **Get current creator products** exports the current public picks.
- **Track creator product changes** creates a baseline on its first trustworthy run, then returns only `NEW`, `UPDATED`, and safely confirmed `ENDED` events.
- **Latest finds** and **Most popular** are fast product views.
- **All public collections** adds collection and individual pick identity for the most complete creator catalog available publicly.

For monitoring, run the same input again with the same scope name. The first trustworthy run seeds the baseline. Repeat the run later to compare current public data with that baseline.

### 📦 What you get

Each row can include the creator, collection, pick and product IDs; creator and collection names; product title, brand, category, department and industry; price and currency; merchant; public destination and ShopMy URLs; images; public click totals and promoter counts; and source timestamps when published.

![Actual public ShopMy creator product rows](https://api.apify.com/v2/key-value-stores/DJgPR6wwS2tIaLDQW/records/shopmy_creator_products_monitor--ad8d1ea663d872f5-products-dataset.png)

### 🎛️ Input guide

- **Creator URLs or handles**: up to 50 known public ShopMy creators.
- **Catalog scope**: Latest, Popular, or All public collections.
- **Maximum product picks**: 1–1,000 per creator.
- **Maximum collections**: 1–200 per creator when collection expansion is selected.
- **Monitoring scope name**: separates independent repeated scopes.
- **Maximum projected Actor charge**: refuses an unsafe maximum before source work.

Changing creators, catalog scope, product limit, collection limit, or monitoring namespace creates a different monitoring scope. Partial or capped runs never declare products ended.

### 💰 Pricing

Current export charges **$0.0375 per verified creator** plus **$0.000010 per delivered pick** on every plan. Monitoring charges $0.0375 per comparable creator scan plus the same per-change price. A complete 1,000-pick creator scope costs about $0.0475.

Failed, blocked and untrusted targets are free. Coverage summaries, duplicate suppression, unchanged items and baseline state are free.

### ✅ Coverage you can trust

Every run reports `COMPLETE`, `CAPPED`, `PARTIAL`, `FILTERED`, `BLOCKED`, `FAILED`, or `EMPTY_CONFIRMED` coverage. Product identity comes from source-published IDs. Monitoring advances only after confirmed delivery on a comparable trustworthy scope. `ENDED` requires two consecutive comparable complete absences.

### 🔌 API and automation

Run this Actor from the Apify API, schedules, webhooks, Zapier, Make, n8n, Google Sheets, or your own code. Export the Dataset as JSON, CSV, Excel, XML, RSS, or HTML.

### ⚠️ Not yet supported

- discovering creators by keyword instead of known public ShopMy URLs or handles;
- private commission rates, payouts, creator dashboards or login-only analytics;
- automatic outreach, messaging, or campaign scoring;
- guaranteeing fields that a creator or ShopMy does not publish publicly.

### ❓ FAQ and support

**Does this require a ShopMy login?** No. It reads public creator-shop data only.

**Why is a field null?** Public fields vary by creator, collection and product. Missing values are kept null instead of invented.

**Why did a run return CAPPED?** The public source had more items than the limit you selected. Raise the limit and run again if you need broader coverage.

**Does an empty run mean a creator deleted everything?** Only an explicitly verified comparable empty result is `EMPTY_CONFIRMED`. A blocked or incomplete response is free and never becomes removal evidence.

# Actor input Schema

## `workflow` (type: `string`):

Choose a current export or a repeatable change scan.

## `creatorUrls` (type: `array`):

Add public creator shop URLs such as https://shopmy.us/shop/sofiarichiegrainge, or handles such as sofiarichiegrainge.

## `catalogScope` (type: `string`):

Latest and popular are fast product views. All public collections preserves collection and pick identity and is the most complete option.

## `maxProductsPerCreator` (type: `integer`):

Hard delivery cap per creator. A source with more public picks returns CAPPED coverage instead of pretending the export is complete.

## `maxCollectionsPerCreator` (type: `integer`):

Used only for all public collections. Stops collection expansion honestly when the creator has more public collections.

## `stateNamespace` (type: `string`):

Track changes only. Use a stable name to separate independent monitors. Changing creators, scope, or limits creates a different scope fingerprint.

## `maxBuyerChargeUsd` (type: `number`):

The run stops before source work if the maximum event vector can exceed this amount while pay-per-event pricing is active.

## Actor input object example

```json
{
  "workflow": "CURRENT_EXPORT",
  "creatorUrls": [
    "https://shopmy.us/shop/sofiarichiegrainge"
  ],
  "catalogScope": "LATEST",
  "maxProductsPerCreator": 100,
  "maxCollectionsPerCreator": 50,
  "stateNamespace": "default",
  "maxBuyerChargeUsd": 1
}
```

# Actor output Schema

## `dataset` (type: `string`):

All delivered product-pick or change rows.

## `products` (type: `string`):

Creator, collection, product, brand, merchant, price and public engagement columns.

## `changes` (type: `string`):

NEW, UPDATED and safely confirmed ENDED product-pick events.

## `runSummary` (type: `string`):

Buyer-safe coverage, delivered counts, limits and billing totals.

# 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 = {
    "workflow": "CURRENT_EXPORT",
    "creatorUrls": [
        "https://shopmy.us/shop/sofiarichiegrainge"
    ],
    "catalogScope": "LATEST",
    "maxProductsPerCreator": 100,
    "maxCollectionsPerCreator": 50,
    "stateNamespace": "default",
    "maxBuyerChargeUsd": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("luminar/shopmy-creator-products-monitor").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 = {
    "workflow": "CURRENT_EXPORT",
    "creatorUrls": ["https://shopmy.us/shop/sofiarichiegrainge"],
    "catalogScope": "LATEST",
    "maxProductsPerCreator": 100,
    "maxCollectionsPerCreator": 50,
    "stateNamespace": "default",
    "maxBuyerChargeUsd": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("luminar/shopmy-creator-products-monitor").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "workflow": "CURRENT_EXPORT",
  "creatorUrls": [
    "https://shopmy.us/shop/sofiarichiegrainge"
  ],
  "catalogScope": "LATEST",
  "maxProductsPerCreator": 100,
  "maxCollectionsPerCreator": 50,
  "stateNamespace": "default",
  "maxBuyerChargeUsd": 1
}' |
apify call luminar/shopmy-creator-products-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,luminar/shopmy-creator-products-monitor"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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