# Amazon Competitor Monitor – Price and Rating Compare (`signal_lab/amazon-competitor-monitor`) Actor

Compare Amazon competitor products by price, rating, review count, availability, brand, and portfolio median with ranked dataset output.

- **URL**: https://apify.com/signal\_lab/amazon-competitor-monitor.md
- **Developed by:** [Signal Lab](https://apify.com/signal_lab) (community)
- **Categories:** E-commerce, Marketing, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 1,000 results

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

## Amazon Competitor Monitor – Price and Rating Compare

Compare public Amazon product pages in one run. The Actor returns a ranked dataset with price, rating, review count, availability, the portfolio median, and each product’s percentage gap from that median—without requiring an Amazon API key.

### Run a verified example

[Compare two Amazon product prices](https://apify.com/signal_lab/amazon-competitor-monitor/examples/compare-two-amazon-product-prices) opens a ready-to-run public task with a small input and expected comparison output.

### What you can do

- Benchmark competing products before repricing or launching a listing.
- Track a small competitor set on a schedule.
- Rank products by current price and spot outliers against the median.
- Export JSON, CSV, or Excel and connect results through the Apify API or webhooks.

### Start quickly

Use two or more public Amazon product detail URLs. The built-in example is verified in the cloud and deliberately keeps the result cap small.

```json
{
  "productUrls": [
    "https://www.amazon.com/dp/0132350882",
    "https://www.amazon.com/dp/0135957052"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 10
}
```

1. Paste product detail URLs into `productUrls`.
2. Keep `useApifyProxy` off for a low-cost first run; enable it if Amazon blocks your region or volume.
3. Set `maxItems` to a predictable hard cap.
4. Run once, inspect the comparison table, then schedule only if the output meets your use case.

### Use it as an MCP tool

Connect this Actor to ChatGPT, Codex, Claude, Cursor, or another MCP client through Apify’s hosted MCP server:

```json
{
  "mcpServers": {
    "signal-lab-amazon-competitor": {
      "url": "https://mcp.apify.com?tools=signal_lab/amazon-competitor-monitor"
    }
  }
}
```

Apify opens its OAuth flow on first connection, so no API token needs to be pasted into the configuration. Ask the client for a bounded comparison, for example: “Compare these three Amazon product URLs by price, rating, reviews, availability, and distance from the portfolio median.”

### Output

Every paid result is one successfully parsed product with ASIN, title, price, currency, price rank, portfolio median, percentage difference from the median, rating, review count, availability, source URL, and scrape timestamp. Pages that cannot be parsed are recorded as partial failures and do not create paid result rows.

### Troubleshooting

- **Missing product:** confirm the URL is a public `/dp/ASIN` page.
- **Blocked page:** retry with Apify Proxy enabled; proxy usage is billed separately by Apify.
- **Price is absent:** Amazon may be showing a regional, coupon-only, or unavailable offer.
- **Need historical change detection:** use [Amazon Price Tracker](https://apify.com/signal_lab/amazon-price-tracker).

### Free product guide

See the [Amazon competitor monitoring workflow and expected output](https://signal-lab-tools.vitaxastar.chatgpt.site/workflows/amazon-competitor-price-monitoring), or browse [all Signal Lab data tools](https://signal-lab-tools.vitaxastar.chatgpt.site).

### Pricing and responsible use

Launch pricing is **$3.00 per 1,000 successful product rows** plus the small start event shown in the Pricing tab. You pay for rows actually produced. Amazon, proxy, and platform usage policies still apply; use public data responsibly.

# Actor input Schema

## `productUrls` (type: `array`):

Amazon product detail URLs to compare.

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

Optional Apify Proxy configuration. Residential access may be required for protected public pages.

## `maxItems` (type: `integer`):

Hard cap for emitted dataset rows and pay-per-event charges.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.amazon.com/dp/0132350882",
    "https://www.amazon.com/dp/0135957052"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "productUrls": [
        "https://www.amazon.com/dp/0132350882",
        "https://www.amazon.com/dp/0135957052"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("signal_lab/amazon-competitor-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 = {
    "productUrls": [
        "https://www.amazon.com/dp/0132350882",
        "https://www.amazon.com/dp/0135957052",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("signal_lab/amazon-competitor-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 '{
  "productUrls": [
    "https://www.amazon.com/dp/0132350882",
    "https://www.amazon.com/dp/0135957052"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 10
}' |
apify call signal_lab/amazon-competitor-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,signal_lab/amazon-competitor-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/Me3gdgcNv8bd5q8JD/builds/aKlRPVNlLG4JK0PJ0/openapi.json
