Price Comparison Engine — Multi-Platform Price Tracker avatar

Price Comparison Engine — Multi-Platform Price Tracker

Pricing

Pay per usage

Go to Apify Store
Price Comparison Engine — Multi-Platform Price Tracker

Price Comparison Engine — Multi-Platform Price Tracker

Compare prices across Amazon, Walmart, eBay, Target, Best Buy & Google Shopping in one run. Finds lowest price, best deal, price spread analytics. Unified output with product matching and similarity scoring. Perfect for deal hunting, price monitoring, and arbitrage.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ricardo Akiyoshi

Ricardo Akiyoshi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 minutes ago

Last modified

Categories

Share

Price Comparison Engine -- Multi-Platform Price Tracker

Compare product prices across 6 major e-commerce platforms in a single run. Find the lowest price, best deal, and get full price analytics -- all from one actor.

Supported Platforms

PlatformData Extracted
AmazonPrice, rating, reviews, Prime status, seller, ASIN
WalmartPrice, rating, reviews, seller, pickup/delivery, Walmart+
eBayPrice, bid price, Buy It Now, seller rating, shipping, condition
TargetPrice, rating, reviews, pickup availability, Circle offers
Best BuyPrice, rating, reviews, open-box price, model number
Google ShoppingPrice, seller, shipping, store rating, comparison prices

What You Get

For each product found across platforms:

{
"productName": "Apple iPhone 15 Pro Max 256GB - Natural Titanium",
"price": 1199.00,
"originalPrice": 1299.00,
"currency": "USD",
"platform": "amazon",
"seller": "Amazon.com",
"rating": 4.7,
"reviewCount": 12453,
"shipping": "Free Prime shipping",
"condition": "New",
"availability": "In Stock",
"url": "https://www.amazon.com/dp/B0CMZ4S8MQ",
"imageUrl": "https://...",
"matchScore": 0.95,
"scrapedAt": "2026-03-02T12:00:00.000Z"
}

Plus a summary analytics record at the end:

{
"type": "analytics",
"searchQuery": "iPhone 15 Pro Max 256GB",
"totalProductsFound": 47,
"platformBreakdown": {
"amazon": 10,
"walmart": 8,
"ebay": 10,
"target": 5,
"bestbuy": 6,
"google_shopping": 8
},
"priceAnalytics": {
"lowestPrice": 1089.00,
"highestPrice": 1499.99,
"averagePrice": 1198.45,
"medianPrice": 1199.00,
"priceSpread": 410.99,
"priceSpreadPercent": 37.74
},
"bestDeal": {
"productName": "iPhone 15 Pro Max 256GB - Unlocked",
"price": 1089.00,
"platform": "ebay",
"seller": "top_deals_usa",
"url": "https://www.ebay.com/itm/..."
},
"bestRated": {
"productName": "Apple iPhone 15 Pro Max",
"rating": 4.8,
"reviewCount": 23891,
"platform": "bestbuy"
}
}

Use Cases

  • Deal Hunting: Find the absolute lowest price for any product across all major retailers
  • Price Monitoring: Track price changes over time by running the actor on a schedule
  • Arbitrage: Find price gaps between platforms for resale opportunities
  • Market Research: Understand pricing strategies across competing retailers
  • Purchase Decisions: Compare prices, ratings, and shipping before buying
  • Competitor Analysis: See how different sellers price the same product
  • Dropshipping: Find products with the biggest wholesale/retail price gaps

How It Works

  1. Enter a product name or keyword (e.g., "Sony WH-1000XM5")
  2. Select which platforms to search (default: all 6)
  3. The engine searches each platform simultaneously using CheerioCrawler
  4. Products are extracted using multiple strategies (JSON-LD, embedded JSON, DOM parsing)
  5. Results are normalized to a unified schema with price analytics
  6. Products are sorted by your chosen criteria and deduplicated

Input Parameters

ParameterTypeDefaultDescription
searchQuerystringrequiredProduct name or keyword to search
platformsarrayall 6Which platforms to search
maxResultsPerPlatforminteger10Max products per platform
sortByenumprice_lowSort: price_low, price_high, rating, relevance
maxConcurrencyinteger3Concurrent requests (2-5 recommended)
maxRetriesinteger3Retries per failed request
proxyConfigurationobjectResidentialProxy settings (residential recommended)

Pricing

$0.01 per product compared (pay-per-event). You only pay for successfully extracted products. The analytics summary record is free.

Example costs:

  • 10 products per platform x 6 platforms = 60 products = $0.60
  • 5 products per platform x 3 platforms = 15 products = $0.15

Tips for Best Results

  • Be specific: "iPhone 15 Pro Max 256GB" works better than "iPhone"
  • Use model numbers: "WH-1000XM5" finds exact matches across all platforms
  • Start small: Use 5 results per platform first to test, then increase
  • Use proxies: Residential proxies are strongly recommended for reliable results
  • Schedule runs: Set up daily/weekly runs for price monitoring

Technical Details

  • Built with CheerioCrawler (no browser overhead, fast and efficient)
  • 12+ rotating User-Agent strings to minimize detection
  • Multiple extraction strategies per platform (JSON-LD, script data, DOM fallback)
  • Automatic price normalization (handles $, commas, ranges, currencies)
  • Product similarity scoring for cross-platform matching
  • Deduplication to avoid counting the same product twice
  • Graceful degradation: if one platform fails, others still return data

Example Searches

QueryBest For
iPhone 15 Pro Max 256GBExact product comparison
Sony WH-1000XM5 headphonesElectronics price check
Nike Air Max 90 men size 10Specific shoe comparison
Samsung 65 OLED TV 2025TV deal hunting
KitchenAid Stand MixerAppliance price monitoring
PlayStation 5 consoleGaming deal finder

Integration — Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("sovereigntaylor/price-comparison-engine").call(run_input={
"searchTerm": "example query",
"maxResults": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item.get('title', item.get('name', 'N/A'))}")

Integration — JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('sovereigntaylor/price-comparison-engine').call({
searchTerm: 'example query',
maxResults: 50
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => console.log(item.title || item.name || 'N/A'));