# Product Price Tracker (`truefetch/product-price-tracker`) Actor

Track public product search results across supported ecommerce marketplaces from one input. Compare marketplace, retail, fashion, and big-box results in a normalized dataset with price, currency, rating, seller or stock signals, source URL, platform, country, query, and rank.

- **URL**: https://apify.com/truefetch/product-price-tracker.md
- **Developed by:** [TrueFetch](https://apify.com/truefetch) (community)
- **Categories:** E-commerce, Social media, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.65 / 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/platform/actors/running/actors-in-store#pay-per-event

## 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

> **Affiliate disclosure:** Apify links on this page may include referral parameters. If you sign up through one of these links, TrueFetch may earn a commission from Apify at no extra cost to you. Pricing, features, and Actor access are unaffected.

[![Product Price Tracker](https://img.shields.io/badge/Product%20Price%20Tracker-1F8A70?style=for-the-badge)](https://apify.com/truefetch/product-price-tracker?fpr=aiagentapi)
[![20 Platforms](https://img.shields.io/badge/20%20Platforms-1F8A70?style=for-the-badge)](https://apify.com/truefetch/product-price-tracker?fpr=aiagentapi)
[![Result Event](https://img.shields.io/badge/result%20event-%240.0085%2Fresult-2E8B57?style=for-the-badge)](https://apify.com/truefetch/product-price-tracker?fpr=aiagentapi)
[![Unified Product Dataset](https://img.shields.io/badge/Unified%20Product%20Dataset-555555?style=for-the-badge)](https://apify.com/truefetch/product-price-tracker?fpr=aiagentapi)
[![Telegram Support](https://img.shields.io/badge/Telegram-Support-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/AiAgentApi)
[![Telegram Group](https://img.shields.io/badge/Telegram-Group-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/TrueFetch)

## Product Price Tracker — Product Price, Rating & Search Result API

**Track public product search results across supported ecommerce marketplaces with one Apify Actor. Search by keyword, country, and optional platform selection, then export normalized product rows that keep price, currency, rating, seller or stock signals, source URL, platform, query, and rank together.** Returns clean JSON / CSV / Excel for retail price monitoring, marketplace comparison, catalog research, and AI shopping workflows.

> **TL;DR (40-word answer):** Product Price Tracker is a no-login Apify Actor for comparing public product search results across supported shopping platforms. It preserves platform, country, query, source URL, and rank while normalizing prices, images, ratings, stock text, and URLs. Pricing uses the `result` event from $0.0085 per result. Last updated 2026-06-29.

> **What it is NOT:** Product Price Tracker is _not a checkout bot, not a private seller API, and not a tool that rewrites user intent. It sends the supplied keyword, country, and platform choices to supported shopping sites and preserves each platform's public ranking and availability signals._

> **Product Price Tracker is an Apify Actor that accepts `keyword`, `country`, `max_results`, and optional `platforms`, then exports a source-linked product dataset with standardized fields for analysis.** It keeps the user's query visible in `query`, records each platform in `platform` and `site`, preserves public source context in `source_url`, and does not hide platform-specific ranking behavior behind artificial sorting. Maintained by TrueFetch on the Apify Store.

---

### 🛒 Why choose Product Price Tracker

**Product Price Tracker is best for** retail analytics, price intelligence, ecommerce research, and AI shopping workflows that need one normalized dataset while still respecting how each marketplace ranks and exposes products.

- Multi-store coverage from one input: use `keyword`, `country`, `max_results`, and optional `platforms` to query the supported marketplaces for the selected country instead of maintaining a separate Actor call per store.
- Marketplace differences stay visible: Amazon-style catalog pages, eBay active listings, UK retail, India fashion, and big-box retail do not expose identical fields, so optional columns stay empty instead of being fabricated.
- Unified product schema: titles, URLs, images, prices, discounts, ratings, seller signals, stock text, source URL, platform, query, rank, and timestamps share the same field names across stores.
- Platform ranking is preserved: `rank` reflects the order returned by the source, so downstream analysis can separate scraper behavior from marketplace search algorithms.
- Query traceability: every record keeps `query`, `source_url`, `platform`, `site`, and `country` so analysts can verify why a result appeared.
- Pay per delivered result: pricing is tied to the `result` event, so the exported dataset is the billing unit users can audit.

---

### 🚀 Quick Start — run in 3 steps

#### Run in Apify Console

1. **Open the Actor** — go to [Product Price Tracker on Apify](https://apify.com/truefetch/product-price-tracker?fpr=aiagentapi) and click **Try for free**.
2. **Configure inputs** — enter `keyword`, choose `country`, set `max_results`, and optionally set `platforms` when you want to limit the run to specific supported marketplaces.
3. **Click Start** — the Actor streams product records to the default dataset. Export as JSON, JSONL, CSV, Excel, XML, RSS, or pull via the dataset API.

#### Run via Apify API

```bash
curl -X POST "https://api.apify.com/v2/acts/TrueFetch~product-price-tracker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "keyword": "wireless earbuds",
  "country": "United States",
  "max_results": 100,
  "platforms": [
    "Amazon",
    "eBay",
    "Walmart"
  ]
}'
````

#### Run via MCP (for AI agents)

Product Price Tracker is callable from Claude, ChatGPT, Cursor, and any MCP-compatible client through the [Apify MCP Server](https://docs.apify.com/platform/integrations/mcp?fpr=aiagentapi). Reference the Actor as `TrueFetch/product-price-tracker` and pass the same JSON input as above.

***

### ⚙️ Input parameters

| Parameter | Type | Required | Description | Example |
| --- | --- | :---: | --- | --- |
| `keyword` | string | yes | Product search phrase, brand, model, category, or marketplace query to send to multi-store. | `wireless earbuds` |
| `country` | string | yes | Country/storefront to query. Supported values: 34 countries across supported shopping platforms. | `United States` |
| `max_results` | integer | yes | Maximum number of product records to return. The actor stops at this user limit or the platform's available result limit, whichever comes first. | `100` |
| `platforms` | array<string> | no | Optional platform allow-list for the selected country. Leave empty to let supported platforms for that country run. | `["Amazon", "eBay"]` |

**Supported `country` values:** country availability depends on the selected platform. The schema currently exposes Australia, Austria, Belgium, Brazil, Canada, Chile, Egypt, France, Germany, Hong Kong, Hungary, India, Indonesia, Ireland, Italy, Japan, Luxembourg, Malaysia, Mexico, Netherlands, New Zealand, Philippines, Poland, Portugal, Saudi Arabia, Singapore, South Korea, Spain, Sweden, Switzerland, Turkey, United Arab Emirates, United Kingdom, and United States.

**Default behavior:** the Actor sends the supplied input through the platform adapter, respects the platform's public search behavior, and stops at `max_results` or the platform's available result boundary.

```json
{
  "keyword": "wireless earbuds",
  "country": "United States",
  "max_results": 100,
  "platforms": [
    "Amazon",
    "eBay",
    "Walmart"
  ]
}
```

***

### 📦 Output dataset

Each run writes normalized product records to the **default Apify dataset**. The schema contains 58 product-analysis fields so records from different shopping platforms can be compared without renaming columns. Optional fields stay empty when the source platform does not expose them.

| Field | Type | Description |
| --- | --- | --- |
| `title` | string/null | Product or listing title returned by the source platform. |
| `brand` | string/null | Product brand when the platform exposes it clearly. |
| `price`, `currency`, `price_text` | number/string/null | Numeric price, ISO currency, and original display price text for verification. |
| `was_price`, `discount_pct`, `discount_text`, `promo_text` | mixed/null | Promotion and discount signals when present on the source. |
| `stock_status`, `stock_text` | string/null | Normalized and original availability text. |
| `rating`, `review_count` | number/integer/null | Public rating and review count when available. |
| `seller`, `seller_url`, `seller_score` | string/number/null | Seller or store signals when exposed by the platform. |
| `main_image`, `image_urls` | string/array/null | Product image URL fields with non-product placeholders filtered out. |
| `product_id`, `sku`, `gtin`, `mpn`, `model` | string/null | Product identifiers when the source provides them. |
| `category`, `breadcrumbs`, `features`, `specifications` | mixed/null | Product categorization, bullet points, and specs when available. |
| `shipping_text`, `shipping_cost`, `delivery_text`, `pickup_text`, `return_text` | mixed/null | Fulfillment, pickup, delivery, and return signals when present. |
| `platform`, `site`, `country`, `product_url`, `source_url`, `query`, `rank` | string/integer/null | Source traceability fields used to audit query-to-result correctness. |
| `sponsored`, `processor`, `processed_at` | boolean/string/null | Sponsored flag when known, actor URL, and UTC processing timestamp. |

#### Sample output

```json
{
  "main_image": "https://m.media-amazon.com/images/I/example.jpg",
  "image_urls": [
    "https://m.media-amazon.com/images/I/example.jpg"
  ],
  "title": "SoundCore Wireless Earbuds with Noise Cancelling",
  "brand": "SoundCore",
  "category": "Electronics",
  "price": 89.99,
  "currency": "USD",
  "price_text": "$89.99",
  "stock_status": "in_stock",
  "stock_text": "In stock",
  "rating": 4.6,
  "review_count": 1248,
  "seller": "SoundCore Store",
  "platform": "Amazon",
  "site": "amazon.com",
  "country": "United States",
  "product_url": "https://www.amazon.com/dp/B0EXAMPLE",
  "source_url": "https://www.amazon.com/s?k=wireless+earbuds",
  "query": "wireless earbuds",
  "rank": 1,
  "sponsored": false,
  "processor": "https://apify.com/truefetch/product-price-tracker",
  "processed_at": "2026-06-29T00:00:00+00:00"
}
```

***

### 💡 Use cases

#### For resellers comparing prices across marketplaces

- **Problem:** A reseller needs to compare the same product idea across marketplace-style listings, retailer catalogs, and country-specific storefronts without losing where each row came from.
- **How Product Price Tracker solves it:** Run the same keyword and country, optionally restrict `platforms`, and compare `price`, `currency`, `stock_text`, `seller`, `rating`, `platform`, and `rank` in one table.
- **Outcome:** A normalized price comparison dataset that still shows the source platform, country, and original result order.

#### For deal aggregators and price comparison sites

- **Problem:** A deal site needs public offers with images, prices, URLs, and freshness signals from several retailers, but each store formats search results differently.
- **How Product Price Tracker solves it:** Schedule category keywords and publish rows with `title`, `price`, `price_text`, `discount_text`, `main_image`, `product_url`, `source_url`, and `processed_at`.
- **Outcome:** Consistent product feeds that can be exported as JSON, CSV, Excel, or pulled through the dataset API without flattening away source differences.

#### For AI agents needing live shopping data

- **Problem:** An AI assistant cannot answer current product-price questions from model training data alone, and generic search snippets do not provide a stable table.
- **How Product Price Tracker solves it:** Call the Actor through the Apify API or MCP server, then let the agent filter by `price`, `rating`, `stock_status`, `platform`, `country`, and source URL.
- **Outcome:** Grounded product answers backed by live URLs, platform labels, and normalized fields.

***

### 💰 Pricing, limits, and performance

| Fact | Value |
| --- | --- |
| Pricing model | Pay-per-event |
| Dataset billing event | `result` |
| FREE result price | **$0.0085 per result** (about **$8.50 per 1,000 results**) |
| GOLD / PLATINUM / DIAMOND result price | **$0.00765 per result** |
| Result unit | One successful product/listing record pushed to the default dataset |
| Required inputs | `keyword`, `country`, `max_results` |
| Supported countries | 34 countries across supported shopping platforms |
| Output schema | 58 normalized product fields |
| Login / cookies required | No user login, cookies, or marketplace API key required |
| Export formats | JSON, JSONL, CSV, Excel, XML, RSS, dataset API |

You are billed for dataset results through the configured `result` charge event. Use `max_results` to control requested volume; the final count can be lower when the source platform returns fewer public matches.

***

### ⚖️ Compared with alternatives

| Capability | **Product Price Tracker** | Manual browsing | Custom scraper |
| --- | :---: | :---: | :---: |
| Structured product records | yes | no | you build it |
| Source URL and query retained | yes | manual | depends on implementation |
| Normalized price/rating/image fields | yes | no | you maintain mapping |
| Respects platform public ranking | yes | manual observation | easy to accidentally override |
| Apify dataset exports and API | yes | no | you build storage/export |
| Setup time to first run | minutes | minutes per query | days to weeks |

**Verdict.** Product Price Tracker is built for teams that need source-linked product data across multiple ecommerce surfaces while preserving each platform's public ranking, country behavior, and field availability.

***

### ⚠️ Common mistakes to avoid

1. **Using vague keywords across every store.** Broad queries can return mixed categories differently on each platform. Use brand, model, product type, or category terms that match your analysis goal.
2. **Ignoring `country`.** Country changes supported platforms, storefronts, currency, ranking, and availability. Keep it explicit in every run.
3. **Assuming every platform exposes every field.** eBay may emphasize condition or shipping, Myntra may emphasize fashion brand and discount, and big-box retailers may expose stock or pickup text. Empty optional fields should be audited against `source_url`.
4. **Re-sorting without keeping `rank`.** Preserve `rank` if you need to understand the platform's original search order.
5. **Expecting checkout or private account data.** This Actor returns public product/listing data, not cart, order, seller dashboard, affiliate, or private API data.

***

### 🛠️ Troubleshooting

| Problem | Likely cause | Fix |
| --- | --- | --- |
| Empty dataset | The keyword has no public results, the selected country is unsupported for that platform, or the platform returned no matches. | Try a broader keyword, verify `country`, and compare with the generated `source_url` when available. |
| Fewer rows than `max_results` | The platform exposed fewer public results than requested or hit its own result boundary. | Treat `max_results` as an upper bound, not a guarantee. |
| Price or rating is empty | The source result did not expose that field for the item. | Use `price_text`, `stock_text`, `source_url`, and `product_url` for audit. |
| Results look different from another run | Marketplace algorithms, location, availability, ads, and ranking can change. | Compare `query`, `country`, `source_url`, `rank`, and `processed_at`. |

***

### ❓ FAQ

#### What data does Product Price Tracker return?

Product Price Tracker returns normalized product records with fields such as `title`, `brand`, `price`, `currency`, `price_text`, `rating`, `review_count`, `stock_text`, `seller`, `main_image`, `product_url`, `source_url`, `platform`, `site`, `country`, `query`, `rank`, `processor`, and `processed_at`. Optional fields are populated only when the source platform exposes them.

#### How much does Product Price Tracker cost?

Pricing is pay-per-event. The dataset billing event is `result`; current tiered pricing starts at $0.0085 per result on FREE and $0.00765 per result on GOLD, PLATINUM, and DIAMOND. Check the Apify pricing panel for the final account-specific charge.

#### Which countries does Product Price Tracker support?

Supported `country` values are defined in the actor input schema. Current support: country availability depends on the selected platform. The schema currently exposes Australia, Austria, Belgium, Brazil, Canada, Chile, Egypt, France, Germany, Hong Kong, Hungary, India, Indonesia, Ireland, Italy, Japan, Luxembourg, Malaysia, Mexico, Netherlands, New Zealand, Philippines, Poland, Portugal, Saudi Arabia, Singapore, South Korea, Spain, Sweden, Switzerland, Turkey, United Arab Emirates, United Kingdom, and United States.

#### Which platforms does Product Price Tracker support?

It supports the platform enum exposed in the input schema: Amazon, eBay, Target, Flipkart, AliExpress, OTTO, MediaMarkt, Argos, John Lewis, Bol.com, Hepsiburada, Rakuten, Kakaku, Blibli, Big W, JB Hi-Fi, Canadian Tire, ASOS, Myntra, and AJIO. Country support is platform-specific.

#### Does Product Price Tracker require a login or API key?

No. Product Price Tracker is designed for public product/search data and does not require a shopper login, cookies, or a marketplace API key from the user.

#### Does Product Price Tracker preserve the user's query and platform ranking?

Yes. The output keeps `query`, `source_url`, `platform`, `site`, `country`, and `rank` so users can compare the dataset against the original search intent and the platform's own ranking algorithm.

#### Can I export multi-store results to CSV, Excel, or Google Sheets?

Yes. Apify datasets can be exported as JSON, JSONL, CSV, Excel, XML, RSS, or consumed through the dataset API. Google Sheets workflows can use Apify integrations, Make, Zapier, n8n, or a direct API pull.

***

### 🔌 Integrations

Product Price Tracker plugs into the Apify ecosystem:

- **Schedules** — run recurring price and search monitoring jobs ([docs](https://docs.apify.com/platform/schedules?fpr=aiagentapi)).
- **Webhooks** — POST completed runs to your pricing database, BI stack, or workflow tool on `ACTOR.RUN.SUCCEEDED` ([docs](https://docs.apify.com/platform/integrations/webhooks?fpr=aiagentapi)).
- **Apify API** — use `run-sync-get-dataset-items` for blocking calls or `runs` for async jobs ([docs](https://docs.apify.com/api/v2?fpr=aiagentapi)).
- **MCP Server** — call the Actor from Claude, ChatGPT, Cursor, and other agents ([docs](https://docs.apify.com/platform/integrations/mcp?fpr=aiagentapi)).
- **No-code tools** — connect with Make, Zapier, n8n, Pipedream, Google Sheets, Airtable, and other dataset consumers.

***

### 🧱 Sister Actors from TrueFetch

#### Jobs

- [Best Job Listing](https://apify.com/truefetch/best-job-listing?fpr=aiagentapi)
- [Glassdoor Job Listing](https://apify.com/truefetch/glassdoor-job-listing?fpr=aiagentapi)
- [Indeed Job Listing](https://apify.com/truefetch/indeed-job-listing?fpr=aiagentapi)
- [LinkedIn Job Listing](https://apify.com/truefetch/linkedin-job-listing?fpr=aiagentapi)

#### Shopping & Deals

- [Product Price Tracker](https://apify.com/truefetch/product-price-tracker?fpr=aiagentapi)
- [Amazon Price Tracker](https://apify.com/truefetch/amazon-price-tracker?fpr=aiagentapi)
- [Argos Price Tracker](https://apify.com/truefetch/argos-price-tracker?fpr=aiagentapi)
- [eBay Price Tracker](https://apify.com/truefetch/ebay-price-tracker?fpr=aiagentapi)
- [Flipkart Price Tracker](https://apify.com/truefetch/flipkart-price-tracker?fpr=aiagentapi)
- [Myntra Price Tracker](https://apify.com/truefetch/myntra-price-tracker?fpr=aiagentapi)
- [Target Price Tracker](https://apify.com/truefetch/target-price-tracker?fpr=aiagentapi)
- [Walmart Price Tracker](https://apify.com/truefetch/walmart-price-tracker?fpr=aiagentapi)

#### Vehicles

- [AutoTrader Car Listing](https://apify.com/truefetch/autotrader-car-listing?fpr=aiagentapi)
- [Cars.com Car Listing](https://apify.com/truefetch/carscom-car-listing?fpr=aiagentapi)

#### Real Estate

- [US Property Listing](https://apify.com/truefetch/us-property-listing?fpr=aiagentapi)
- [Zillow Property Listing](https://apify.com/truefetch/zillow-property-listing?fpr=aiagentapi)

#### Local Business & Food

- [BBB Business Profile](https://apify.com/truefetch/bbb-business-profile?fpr=aiagentapi)
- [Google Maps Business Listing](https://apify.com/truefetch/google-maps-business-listing?fpr=aiagentapi)
- [Zomato Restaurant Listing](https://apify.com/truefetch/zomato-restaurant-listing?fpr=aiagentapi)

#### Classifieds

- [Kleinanzeigen Listing](https://apify.com/truefetch/kleinanzeigen-listing?fpr=aiagentapi)
- [OLX Listing](https://apify.com/truefetch/olx-listing?fpr=aiagentapi)

#### Social Media

- [Instagram Profile](https://apify.com/TrueFetch/instagram-profile?fpr=aiagentapi)
- [Reddit Post Search](https://apify.com/TrueFetch/reddit-post-search?fpr=aiagentapi)
- [Telegram Channel Message](https://apify.com/TrueFetch/telegram-channel-message?fpr=aiagentapi)

#### Videos & Text

- [TikTok Video](https://apify.com/truefetch/tiktok-video?fpr=aiagentapi)
- [YouTube Video](https://apify.com/truefetch/youtube-video?fpr=aiagentapi)

#### Content & Articles

- [Medium Article](https://apify.com/truefetch/medium-article?fpr=aiagentapi)
- [Substack Article](https://apify.com/truefetch/substack-article?fpr=aiagentapi)

***

### 📞 Support, changelog, last updated

#### Support

- Telegram support: [@AiAgentApi](https://t.me/AiAgentApi)
- Telegram community: [TrueFetch](https://t.me/TrueFetch)
- Apify Actor page: [Product Price Tracker](https://apify.com/truefetch/product-price-tracker?fpr=aiagentapi)

#### Changelog

- 2026-06-29: Replaced stale template copy with Product Price Tracker SEO/GEO copy, current actor slug, current input schema, and normalized product dataset fields.

***

```json
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Product Price Tracker",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Cloud",
  "url": "https://apify.com/truefetch/product-price-tracker",
  "description": "Track public product search results across supported ecommerce marketplaces. Export normalized product records with price, currency, rating, seller or stock signals, source URL, platform, country, query, and rank.",
  "offers": {
    "@type": "Offer",
    "price": "0.0085",
    "priceCurrency": "USD",
    "description": "Pay-per-result pricing for the result event"
  },
  "provider": {
    "@type": "Organization",
    "name": "TrueFetch",
    "url": "https://apify.com/truefetch"
  }
}
```

*Last updated: 2026-06-29. Schema: Product search and price tracking Actor. Maintained by TrueFetch.*

# Actor input Schema

## `keyword` (type: `string`):

Product keyword, model, brand, or query to search for

## `country` (type: `string`):

Country used to route ecommerce platforms and country sites

## `max_results` (type: `integer`):

Maximum number of product records to return per platform

## `platforms` (type: `array`):

Optional list of product platforms to search. Leave empty to use all supported platforms for the selected country.

## Actor input object example

```json
{
  "keyword": "iPhone",
  "country": "United States",
  "max_results": 10,
  "platforms": []
}
```

# Actor output Schema

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

Product records returned by this actor with normalized fields and source URLs.

# 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 = {
    "keyword": "iPhone",
    "country": "United States",
    "max_results": 10,
    "platforms": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("truefetch/product-price-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 = {
    "keyword": "iPhone",
    "country": "United States",
    "max_results": 10,
    "platforms": [],
}

# Run the Actor and wait for it to finish
run = client.actor("truefetch/product-price-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 '{
  "keyword": "iPhone",
  "country": "United States",
  "max_results": 10,
  "platforms": []
}' |
apify call truefetch/product-price-tracker --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Product Price Tracker",
        "description": "Track public product search results across supported ecommerce marketplaces from one input. Compare marketplace, retail, fashion, and big-box results in a normalized dataset with price, currency, rating, seller or stock signals, source URL, platform, country, query, and rank.",
        "version": "1.0",
        "x-build-id": "a4mV1JYYh3pMODVDB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/truefetch~product-price-tracker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-truefetch-product-price-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/truefetch~product-price-tracker/runs": {
            "post": {
                "operationId": "runs-sync-truefetch-product-price-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/truefetch~product-price-tracker/run-sync": {
            "post": {
                "operationId": "run-sync-truefetch-product-price-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",
                "required": [
                    "keyword",
                    "country",
                    "max_results"
                ],
                "properties": {
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Product keyword, model, brand, or query to search for"
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "Australia",
                            "Austria",
                            "Belgium",
                            "Brazil",
                            "Canada",
                            "Chile",
                            "Egypt",
                            "France",
                            "Germany",
                            "Hong Kong",
                            "Hungary",
                            "India",
                            "Indonesia",
                            "Ireland",
                            "Italy",
                            "Japan",
                            "Luxembourg",
                            "Malaysia",
                            "Mexico",
                            "Netherlands",
                            "New Zealand",
                            "Philippines",
                            "Poland",
                            "Portugal",
                            "Saudi Arabia",
                            "Singapore",
                            "South Korea",
                            "Spain",
                            "Sweden",
                            "Switzerland",
                            "Turkey",
                            "United Arab Emirates",
                            "United Kingdom",
                            "United States"
                        ],
                        "type": "string",
                        "description": "Country used to route ecommerce platforms and country sites"
                    },
                    "max_results": {
                        "title": "Max Results",
                        "minimum": 10,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of product records to return per platform"
                    },
                    "platforms": {
                        "title": "Platforms",
                        "type": "array",
                        "description": "Optional list of product platforms to search. Leave empty to use all supported platforms for the selected country.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Amazon",
                                "eBay",
                                "Target",
                                "Flipkart",
                                "AliExpress",
                                "OTTO",
                                "MediaMarkt",
                                "Argos",
                                "John Lewis",
                                "Bol.com",
                                "Hepsiburada",
                                "Rakuten",
                                "Kakaku",
                                "Blibli",
                                "Big W",
                                "JB Hi-Fi",
                                "Canadian Tire",
                                "ASOS",
                                "Myntra",
                                "AJIO"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
