Competitor Price Intelligence
Pricing
from $4.99 / 1,000 results
Competitor Price Intelligence
Collects Shopify product offers, matches identical products across sellers, and compares prices with matching confidence. Extracts product details, seller, price, availability, and identifies the cheapest offer.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Jamshaid Arif
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Collect product offers from Shopify stores and product pages, automatically match the same product across sellers, and report the price spread between matched offers — each group annotated with a matching confidence so you can trust (or discount) the comparison.
The Actor is deliberately conservative: it never combines different products. Two offers are only grouped when they share a hard identifier (SKU/GTIN) or their names match with confidence ≥ 0.8. Because matching caps confidence when identifiers conflict, similarly-named but distinct products stay in separate groups.
What does this Actor do?
- Collect offers — from each Shopify store via the public
products.jsonendpoint, and from each product/store URL via embedded schema.org (JSON-LD)Productdata. - Normalize — every offer is reduced to
name,brand,sku,seller,price,currency,availability,url,timestamp. - Group same-product offers — SKU/identifier grouping first, then name-similarity matching (
shared.matching.match_records). - Compare prices — within each multi-offer group, annotate the difference versus the cheapest offer, flag the cheapest seller, and record the average pairwise matching confidence.
Input
| Field | Type | Description |
|---|---|---|
shopifyStores | array | Shopify store URLs (collected via products.json). |
productUrls | array | Product/store page URLs (parsed for JSON-LD product data). |
searchKeyword | string | Optional. Keep only offers whose name contains every keyword token. |
maxProductsPerStore | integer | Max products per Shopify store (default 100). |
proxyConfiguration | object | Proxy settings (Apify Proxy recommended). |
Provide at least one of shopifyStores or productUrls.
Input example
{"shopifyStores": ["https://store-a.myshopify.com", "https://store-b.myshopify.com"],"searchKeyword": "desk lamp","maxProductsPerStore": 100}
Output
One record per offer. Same-product offers share a groupId; multi-offer groups carry price-comparison fields.
| Field | Description |
|---|---|
name, brand, sku, seller | Product identity and the store/source the offer came from. |
price, currency, availability, url | The offer itself. |
timestamp | ISO-8601 UTC collection time. |
groupId, offersInGroup | Which same-product group the offer belongs to and its size. |
matchingConfidence | Average pairwise match confidence within the group (null for singletons). |
priceDifference, priceDifferencePct | Difference versus the cheapest offer in the group. |
isCheapest | True for the cheapest offer in the group. |
cheapestOffer | The cheapest offer's {seller, price, currency, url}. |
Output example
{"name": "Aurora Desk Lamp","brand": "Aurora","sku": "LAMP-100","seller": "https://store-b.myshopify.com","price": 44.99,"currency": "USD","groupId": 0,"offersInGroup": 2,"matchingConfidence": 0.98,"priceDifference": 5.0,"priceDifferencePct": 12.5,"isCheapest": false,"cheapestOffer": { "seller": "https://store-a.myshopify.com", "price": 39.99, "currency": "USD", "url": "https://store-a.myshopify.com/products/aurora-desk-lamp" }}
You can download the dataset in JSON, CSV, Excel or HTML.
How matching works (and why it is trustworthy)
- Identifiers first — offers sharing a SKU/GTIN are the same product with confidence ≈ 0.98.
- Then names — offers are grouped when normalized-name similarity (plus brand/model-token agreement) reaches 0.8. Marketing filler is stripped before comparison.
- Conflicts cap confidence — when two offers carry different hard identifiers, confidence is capped low, so they are never merged. Different products are not combined.