Competitor Price Intelligence avatar

Competitor Price Intelligence

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Competitor Price Intelligence

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

Jamshaid Arif

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

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?

  1. Collect offers — from each Shopify store via the public products.json endpoint, and from each product/store URL via embedded schema.org (JSON-LD) Product data.
  2. Normalize — every offer is reduced to name, brand, sku, seller, price, currency, availability, url, timestamp.
  3. Group same-product offers — SKU/identifier grouping first, then name-similarity matching (shared.matching.match_records).
  4. 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

FieldTypeDescription
shopifyStoresarrayShopify store URLs (collected via products.json).
productUrlsarrayProduct/store page URLs (parsed for JSON-LD product data).
searchKeywordstringOptional. Keep only offers whose name contains every keyword token.
maxProductsPerStoreintegerMax products per Shopify store (default 100).
proxyConfigurationobjectProxy 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.

FieldDescription
name, brand, sku, sellerProduct identity and the store/source the offer came from.
price, currency, availability, urlThe offer itself.
timestampISO-8601 UTC collection time.
groupId, offersInGroupWhich same-product group the offer belongs to and its size.
matchingConfidenceAverage pairwise match confidence within the group (null for singletons).
priceDifference, priceDifferencePctDifference versus the cheapest offer in the group.
isCheapestTrue for the cheapest offer in the group.
cheapestOfferThe 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.