Price Comparison Tool — Compare Prices Across Major Retailers
Pricing
$6.50 / 1,000 product compareds
Price Comparison Tool — Compare Prices Across Major Retailers
Compare product prices across Amazon, Walmart, Target, Best Buy, and Home Depot. Find the best deals, track price differences, and identify savings. Search by product name or provide specific URLs.
Pricing
$6.50 / 1,000 product compareds
Rating
0.0
(0)
Developer
junipr
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
21 hours ago
Last modified
Categories
Share
Multi-Store Price Comparison
Introduction
Multi-Store Price Comparison lets you compare product prices across five of the largest US retailers — Amazon, Walmart, Target, Best Buy, and Home Depot — in a single actor run. No more running five separate scrapers and manually joining the results in a spreadsheet.
Provide a product name, a UPC/EAN barcode, or a direct product URL, and the actor searches every configured store simultaneously. For each store it returns the current price, availability status, shipping cost, estimated delivery window, product rating, and review count — all normalized into a single, unified output schema. The bestPrice field immediately tells you which store is cheapest and how much you'd save by buying there instead of the most expensive option.
Primary use cases:
- E-commerce price monitoring — track competitor pricing on specific SKUs daily or weekly
- Retail arbitrage — find products cheaper in one store to resell on another
- Deal-finding apps — surface the best price for users at the moment of intent
- Procurement — compare vendor pricing on tools, equipment, or office supplies
- Affiliate marketing — always link to the lowest-price retailer for maximum conversion
Key differentiators vs the competition: multi-store in one actor run, UPC barcode search for exact matching, unified output schema with no data joining required, and PPE pricing so you only pay for results you get.
Why Use This Actor
Running five separate per-store scrapers is slow, expensive, and painful to maintain. Subscription price APIs charge $50–500/month regardless of usage. This actor gives you a better result for a fraction of the cost.
| Feature | This Actor | 5 Separate Scrapers | Oxylabs / Bright Data | PriceAPI.com |
|---|---|---|---|---|
| Stores per query | 5 simultaneously | 1 each | 1 at a time | Varies |
| Pricing | $6.50 / 1,000 products (PPE) | Pay per each | $49–500/mo subscription | $50–250/mo |
| Unified output schema | Yes | No (manual join) | No | Yes |
| UPC barcode search | Yes | Varies | No | Yes |
| Zero config | Yes | No | API key required | API key required |
| Apify ecosystem | Full | Partial | None | None |
A single product comparison costs $0.0065 — less than a cent. Daily monitoring of 50 products costs under $0.33/day. Weekly monitoring of 500 products costs $3.25/week.
How to Use
Zero-Config Quick Start
Just provide a product name — all five stores are searched with default settings:
{"products": [{ "name": "AirPods Pro 2" }]}
UPC Barcode Search (Exact Match)
UPC search finds the exact product SKU on each store, producing higher match confidence scores:
{"products": [{ "upc": "194253397175" }]}
URL-Based Search
Start from a known product page. The actor extracts product details and searches other stores:
{"products": [{ "urls": ["https://www.amazon.com/dp/B0D1XD1ZV3"] }]}
Batch Comparison
Compare multiple products in a single run (max 100):
{"products": [{ "name": "Sony WH-1000XM5" },{ "name": "iPad Air M2" },{ "upc": "194253397175" },{ "name": "DeWalt 20V drill" }],"stores": ["amazon", "walmart", "bestbuy"]}
Via Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('junipr/price-comparison').call({products: [{ name: 'Kindle Paperwhite' }],stores: ['amazon', 'walmart', 'target'],includeShippingDetails: true,includeReviews: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].bestPrice); // { store: 'amazon', price: 139.99, savings: 20.00, ... }
Input Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
products | array | [{"name": "AirPods Pro 2"}] | Products to compare. Each object has name, upc, or urls. Max 100. |
stores | array | All 5 stores | Stores to include: amazon, walmart, target, bestbuy, homedepot. |
amazonDomain | string | amazon.com | Amazon regional domain (amazon.com, amazon.co.uk, amazon.ca, amazon.de). |
includeThirdPartySellers | boolean | false | Include marketplace/third-party seller listings. |
includeUsedCondition | boolean | false | Include used, renewed, or refurbished listings. |
matchStrictness | string | moderate | strict = exact model only, moderate = same product OK, loose = similar products. |
maxResultsPerStore | integer | 1 | Max product matches per store (1–5). Useful with loose matching. |
includeOutOfStock | boolean | true | Include out-of-stock products with availability marked. |
includeShippingDetails | boolean | true | Include shipping cost and estimated delivery. |
includeReviews | boolean | true | Include rating and review count per store. |
proxyConfiguration | object | Apify residential | Residential proxy configuration. Required for Amazon and Walmart. |
Common configurations:
- Quick price check:
products: [{ "name": "..." }]— defaults cover everything - Exact match via barcode:
products: [{ "upc": "..." }],matchStrictness: "strict" - Batch monitoring:
products: [50 items],stores: ["amazon", "walmart"]
Output Format
Each dataset item corresponds to one product query:
{"productQuery": { "name": "AirPods Pro 2", "upc": null, "inputUrls": [] },"bestPrice": {"store": "walmart","price": 189.99,"url": "https://www.walmart.com/ip/...","savings": 59.01,"savingsPercent": 23.7},"comparisons": [{"store": "amazon","productName": "Apple AirPods Pro (2nd Generation)","productUrl": "https://www.amazon.com/dp/...","price": 219.99,"originalPrice": 249.00,"currency": "USD","onSale": true,"saleDiscount": 12,"availability": "in_stock","condition": "new","seller": "Amazon","isDirectRetailer": true,"shipping": { "freeShipping": true, "shippingCost": 0, "estimatedDelivery": "Tomorrow", "primeEligible": true },"reviews": { "rating": 4.7, "reviewCount": 85432 },"productDetails": { "brand": "Apple", "model": null, "upc": null, "imageUrl": "https://...", "category": null },"matchConfidence": 0.92,"scrapedAt": "2026-03-11T14:22:00.000Z","errors": []}],"priceRange": { "lowest": 189.99, "highest": 249.00, "average": 214.50, "storesCompared": 4 },"scrapedAt": "2026-03-11T14:22:01.000Z"}
The matchConfidence score (0–1) tells you how closely the found product matches your query. Scores above 0.8 indicate strong matches. The priceRange summarizes the spread across all stores compared.
Tips and Advanced Usage
Setting up scheduled monitoring: Use Apify's built-in scheduler to run the actor on a cron schedule (daily, hourly). Each run creates a new dataset — query multiple datasets to track price history over time.
UPC codes vs name search: UPC codes produce exact matches with higher confidence scores. Find UPCs on the product box, Amazon's product detail page, or barcode databases like barcodelookup.com. Always prefer UPC over name search when the exact product matters.
Interpreting match confidence: A confidence of 0.9+ means the actor found the same product. 0.6–0.9 is a probable match (same model, possibly different bundle or color). Below 0.5 means the store returned a different product — use strict matchStrictness to filter these out.
Building a price dashboard in Google Sheets: Use the Apify Google Sheets integration or fetch dataset items via the Apify API and write them to a sheet using Apps Script. Schedule daily runs + daily sheet updates for a live price tracker.
Setting up price alert webhooks: Configure a webhook on your actor run to POST to your server when a run completes. Parse bestPrice in the webhook payload and send alerts when a product drops below your target price.
Tracking price trends: Each comparison item includes a scrapedAt timestamp. Store multiple run datasets and join on productQuery.name + store to build price-over-time charts.
Pricing
This actor uses Pay-Per-Event (PPE) pricing at $6.50 per 1,000 products compared ($0.0065 each).
Pricing includes all platform compute costs — no hidden fees.
You are only charged when a product comparison is successfully produced — meaning at least one store returned a price. Products not found on any store are never charged.
| Scenario | Products | Monthly Cost |
|---|---|---|
| Single check | 1 | $0.0065 |
| Weekly monitoring (50 products) | ~200/mo | $1.30/mo |
| Daily monitoring (50 products) | ~1,500/mo | $9.75/mo |
| E-commerce catalog (500 products, weekly) | ~2,000/mo | $13.00/mo |
| Retail arbitrage (100 products, daily) | ~3,000/mo | $19.50/mo |
Compare to Oxylabs ($49–500/month subscription) or Bright Data ($500+/month) — for most use cases this actor costs 95%+ less.
FAQ
Which stores are supported?
Amazon (US, UK, Canada, Germany, and other regional domains), Walmart, Target, Best Buy, and Home Depot. All five are searched by default. Use the stores input to limit to specific stores.
Can I compare prices for any product?
Yes, as long as the product is sold by at least one of the five supported retailers. Works best for consumer electronics, appliances, tools, and household goods. Niche or specialty products may only appear on one or two stores.
How does it match the same product across different stores?
Each store's search results are matched against your query using a word-overlap similarity score. The matchConfidence field (0–1) shows how closely each found product matches. Use matchStrictness: "strict" to only keep high-confidence matches, or "loose" to include similar products. UPC-based searches produce the most reliable cross-store matches.
Does it work for products outside the US?
For Amazon, set amazonDomain to a regional domain (e.g., amazon.co.uk, amazon.de). Walmart, Target, Best Buy, and Home Depot are US-only retailers and always use US pricing. For non-US markets, set stores: ["amazon"] with your regional domain.
Can I track price changes over time?
Yes. Each Apify actor run creates a new dataset. Schedule the actor to run daily or weekly, then query multiple datasets by date to see price history. Use Apify's dataset API to retrieve historical runs programmatically.
What if a product is out of stock?
By default (includeOutOfStock: true), out-of-stock products are included with availability: "out_of_stock". The last known price is shown if the retailer displays it. Set includeOutOfStock: false to exclude them from comparisons entirely.
Does it include marketplace/third-party seller prices?
By default, only direct retailer prices are returned (Amazon's Buy Box, Walmart sold/shipped by Walmart, etc.). Set includeThirdPartySellers: true to include marketplace seller listings where available.
How accurate are the prices?
Prices are point-in-time snapshots taken at the moment of scraping. Each comparison includes a scrapedAt timestamp. Flash sales, cart discounts, and store-specific coupons may not be reflected. Always verify before purchasing.
Legal Notice
This actor accesses publicly available product pages. No login credentials or authentication are bypassed. Users are responsible for compliance with each retailer's Terms of Service. Price data is used for informational comparison purposes only. Product images are not stored — only image URLs are returned.
Related Actors
- Google Shopping Scraper — Scrape Google Shopping results for broader market price discovery