Shopify Store Intelligence — Catalog, Price & Stock Tracker avatar

Shopify Store Intelligence — Catalog, Price & Stock Tracker

Pricing

Pay per event

Go to Apify Store
Shopify Store Intelligence — Catalog, Price & Stock Tracker

Shopify Store Intelligence — Catalog, Price & Stock Tracker

Track product launches, price changes, and stock signals across hundreds of Shopify stores. KV-checkpointed delta detection plus AI-powered store audits. Replaces Storeleads and Particl at PPE pricing.

Pricing

Pay per event

Rating

5.0

(1)

Developer

Omar Eldeeb

Omar Eldeeb

Maintained by Community

Actor stats

2

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Track product launches, price changes, and stock signals across hundreds of Shopify stores in one actor. KV-checkpointed delta detection plus AI-powered store audits. Replaces Storeleads ($75–950/mo) and Particl ($250–1000/mo) at fraction-of-a-cent PPE pricing.

What does Shopify Store Intelligence do?

Five modes against the public Shopify storefront endpoints (/products.json + /products/<handle>.json + sitemap fallback):

  1. catalog_snapshot — full product dump for one or many stores
  2. new_launches — products published in the last N days OR new since your last run
  3. price_changes — variant-level price + compare-at-price deltas vs your previous run (the Particl-killer)
  4. stock_signals — variants going in/out of stock; with deep-probe enabled, true inventory_quantity deltas including low-stock alerts
  5. store_audit — one-shot per-store report with aggregate stats and Gemini-powered niche classification (BD/M&A use case)

All output is one unified row shape discriminated by type (product / delta / audit).

Why use Shopify Store Intelligence?

  • DTC competitive intel teams — track 50–500 competitor stores weekly, surface price moves and new launches the same day
  • Trend hunters / dropshippers — find what competitors test before it explodes
  • M&A scouts / agencies — one-shot store_audit returns niche, buyer persona, brand positioning, price tier, and full catalog stats per store
  • Repricing / brand pricing analystsprice_changes deltas down to the variant SKU level
  • Demand forecastersstock_signals flag products selling out fast (predictive of hot SKUs)

How to use Shopify Store Intelligence

  1. Pick a mode (start with store_audit for one store to see what you get)
  2. Paste 1–500 store domains (allbirds.com, kith.com, mvmt.com — bare domains, http stripped automatically)
  3. Set maxProductsPerStore to control PPE budget (small catalogs: leave default; big brands: cap at 500)
  4. For price_changes / stock_signals: schedule the actor weekly or daily — the second-onwards run emits real deltas
  5. For big brands behind WAF (Gymshark-tier), enable proxyConfiguration → useApifyProxy: true — sitemap fallback handles the rest
  6. Export results as JSON / CSV / Excel via Apify's standard download

Input

Minimal example (audit one store with AI niche classification):

{
"mode": "store_audit",
"storeDomains": ["allbirds.com"],
"enableAiNiche": true
}

Track price changes across a competitor set (run weekly):

{
"mode": "price_changes",
"storeDomains": ["allbirds.com", "rothys.com", "vejashoes.com"],
"maxProductsPerStore": 500,
"concurrency": 8
}

Find new launches in the last 14 days:

{
"mode": "new_launches",
"storeDomains": ["mvmt.com", "thursdayboots.com"],
"lookbackDays": 14
}

Stock signals with true inventory probe (slower, more expensive, higher signal):

{
"mode": "stock_signals",
"storeDomains": ["bombas.com"],
"deepInventoryProbe": true,
"lowStockThreshold": 10
}

Bypass WAF on big brands with residential proxy:

{
"mode": "catalog_snapshot",
"storeDomains": ["gymshark.com"],
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Output

Sample product row (from catalog_snapshot / new_launches):

{
"type": "product",
"store": "allbirds.com",
"title": "Trino® Cozy Crew - Heathered Onyx",
"vendor": "Allbirds",
"productType": "Socks",
"available": true,
"variantCount": 4,
"priceMin": 12,
"priceMax": 12,
"currency": "USD",
"publishedAt": "2026-04-21T12:39:05-07:00",
"productUrl": "https://allbirds.com/products/trino-cozy-crew-heathered-onyx",
"variants": [
{
"title": "S (W5-7)",
"sku": "PCC1HONU301",
"price": 12,
"compareAtPrice": 24,
"available": true,
"inventoryQuantity": null
}
],
"source": "products.json"
}

Sample delta row (from price_changes / stock_signals):

{
"type": "delta",
"store": "allbirds.com",
"deltaType": "price_change",
"productTitle": "Wool Runner",
"variantTitle": "Black / Size 10",
"oldValue": 110,
"newValue": 88,
"detectedAt": "2026-05-08T12:00:00.000Z"
}

Sample audit row (from store_audit with enableAiNiche: true):

{
"type": "audit",
"store": "allbirds.com",
"isShopify": true,
"productCount": 50,
"vendorCount": 1,
"avgPrice": 32.90,
"medianPrice": 25,
"currency": "USD",
"availableShareOfCatalog": 0.16,
"primaryNiche": "sustainable footwear and apparel",
"secondaryNiches": ["eco-friendly accessories", "comfortable everyday wear"],
"buyerPersona": "Environmentally conscious consumers who prioritize comfort, sustainability, and minimalist design",
"brandPositioning": "Allbirds positions itself as a leader in sustainable fashion, offering comfortable products made from natural, renewable materials",
"priceTier": "premium",
"aiConfidence": 0.95
}

Data fields

FieldTypeWhere it appearsNotes
typestringevery rowproduct / delta / audit discriminator
storestringevery rowbare domain (no scheme)
productIdstringproduct, delta<domain>::<shopifyId>
variants[]arrayproductarray of { title, sku, price, compareAtPrice, available, inventoryQuantity }
inventoryQuantitynumber|nullvariantonly populated when store exposes it (depends on Shopify config)
deltaTypestringdeltaprice_change, compare_at_change, stock_in, stock_out, low_stock, restock
primaryNichestringauditGemini classification when enableAiNiche: true
priceTierenumauditbudget / mid / premium / luxury
sourceenumproductproducts.json / product-handle / sitemap-fallback

How much does it cost to scrape Shopify with this actor?

EventPriceWhen it fires
Actor start$0.01Once per run, per GB of memory
Product fetched$0.005Each product written in catalog_snapshot mode
Price change detected$0.02Variant price or compare_at_price changed since last run
New launch detected$0.01Product published in lookback window OR new since last run
Stock signal detected$0.01Variant flipped in/out of stock or crossed low-stock threshold
Store audited$0.50One-shot per-store report with aggregate stats
AI niche classified$0.05Gemini classification appended to a store_audit row
Residential proxy fetch$0.003Fired only when proxyConfiguration.useApifyProxy: true

Free trial: the first 200 custom chargeable events per run are free.

Typical-run costs:

  • Audit 5 stores with AI: 5 × ($0.50 + $0.05) = $2.75
  • Catalog snapshot 10 stores × 200 products: 2,000 × $0.005 = $10
  • Weekly price-change monitor across 100 stores (~50 deltas/week observed): 50 × $0.02 = $1/week
  • Stock signals on 50 high-traffic stores (~30 signals/run): 30 × $0.01 = $0.30/run

Compare: Storeleads $75–950/mo, Particl $250–1,000/mo, Charm.io enterprise.

Tips & advanced options

  • First run of a delta mode = baseline only. No deltas are emitted on run #1 — checkpoint is saved instead. Schedule the actor for repeated runs to see real deltas.
  • maxProductsPerStore is your budget knob. Large catalogs (5,000+ products) blow through PPE fast. Cap aggressively for monitoring use cases.
  • WAF-blocked stores (Gymshark-tier) auto-fall-back to sitemap parsing — slower but works without a proxy. Enable useApifyProxy: true for full /products.json access.
  • inventory_quantity exposure varies by store. Allbirds returns null even on /products/<handle>.json; Bombas exposes it. The available boolean is always populated.
  • Schedule with Apify Schedules. Run price_changes weekly, new_launches daily for a low-cost monitoring stack.
  • One actor for many use cases. The dataset is discriminated by the type field — filter downstream consumers (BI tools, n8n, Make.com webhooks) on type === 'delta' or type === 'audit'.

This actor reads only publicly accessible Shopify storefront endpoints (/products.json, /products/<handle>.json, /sitemap.xml) — the same data any browser can request without authentication. No Shopify accounts, OAuth, or admin access is required or used. We do not bypass paywalls, login walls, or rate limits.

Each store's robots.txt should be respected by users; if a store explicitly disallows crawling, do not use this actor against it. Public catalog data is generally not personal information under GDPR/CCPA, but consult counsel for your jurisdiction before storing or republishing.

Shopify and the Shopify storefront APIs are trademarks of Shopify Inc. This actor is not affiliated with, endorsed by, or sponsored by Shopify Inc.

FAQ

Will this work on every Shopify store? Most. About 70–80% of Shopify stores leave /products.json open by Shopify default. Big brands (Gymshark, fashion-world enterprise) WAF-block the JSON path — for those, the actor automatically falls back to sitemap-based discovery. Enable Apify residential proxy to recover full coverage on these.

Why does inventoryQuantity come back as null sometimes? Shopify lets store owners hide inventory counts via theme settings. When hidden, you only get available: true|false. The deepInventoryProbe option fetches /products/<handle>.json (which exposes counts on stores that allow it) but cannot bypass intentional hiding.

How is this different from existing Shopify actors on Apify? Existing actors return raw catalog dumps. This one adds: KV-checkpointed delta detection (price + stock changes between runs), per-store AI niche classification, sitemap fallback for WAF-blocked stores, and unified output shape discriminated by type. No incumbent ships these together.

Can I find Shopify stores I don't already know about? Not in v1. Pass your own domain list. There is no public Shopify store directory — paid aggregators (BuiltWith, Wappalyzer) are required for at-scale discovery. We may add a niche-seeded discovery mode in v2.

Does this respect Shopify's ToS? We use only public storefront endpoints. Shopify's general ToS prohibits abusive scraping; this actor uses one User-Agent, defensive concurrency caps, and respects 4xx/429 responses. We recommend you respect each store's robots.txt and rate-limit your runs to the data freshness you actually need.

For issues / feature requests: report at Apify Console → Actor → Issues.