Price Comparison Engine — Multi-Platform Price Tracker
Pricing
Pay per usage
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
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
| Platform | Data Extracted |
|---|---|
| Amazon | Price, rating, reviews, Prime status, seller, ASIN |
| Walmart | Price, rating, reviews, seller, pickup/delivery, Walmart+ |
| eBay | Price, bid price, Buy It Now, seller rating, shipping, condition |
| Target | Price, rating, reviews, pickup availability, Circle offers |
| Best Buy | Price, rating, reviews, open-box price, model number |
| Google Shopping | Price, 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
- Enter a product name or keyword (e.g., "Sony WH-1000XM5")
- Select which platforms to search (default: all 6)
- The engine searches each platform simultaneously using CheerioCrawler
- Products are extracted using multiple strategies (JSON-LD, embedded JSON, DOM parsing)
- Results are normalized to a unified schema with price analytics
- Products are sorted by your chosen criteria and deduplicated
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | required | Product name or keyword to search |
platforms | array | all 6 | Which platforms to search |
maxResultsPerPlatform | integer | 10 | Max products per platform |
sortBy | enum | price_low | Sort: price_low, price_high, rating, relevance |
maxConcurrency | integer | 3 | Concurrent requests (2-5 recommended) |
maxRetries | integer | 3 | Retries per failed request |
proxyConfiguration | object | Residential | Proxy 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
| Query | Best For |
|---|---|
iPhone 15 Pro Max 256GB | Exact product comparison |
Sony WH-1000XM5 headphones | Electronics price check |
Nike Air Max 90 men size 10 | Specific shoe comparison |
Samsung 65 OLED TV 2025 | TV deal hunting |
KitchenAid Stand Mixer | Appliance price monitoring |
PlayStation 5 console | Gaming deal finder |
Integration — Python
from apify_client import ApifyClientclient = 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'));