🧩 Shopify Apps Spy + Product Scraper avatar

🧩 Shopify Apps Spy + Product Scraper

Pricing

from $3.00 / 1,000 product extracteds

Go to Apify Store
🧩 Shopify Apps Spy + Product Scraper

🧩 Shopify Apps Spy + Product Scraper

Detect which apps any Shopify store has installed (Klaviyo, Recharge, Yotpo, Privy + 30 more). Plus full product catalog & reviews. No login. 5x cheaper.

Pricing

from $3.00 / 1,000 product extracteds

Rating

0.0

(0)

Developer

KazKN

KazKN

Maintained by Community

Actor stats

1

Bookmarked

10

Total users

1

Monthly active users

3 days ago

Last modified

Share

Shopify Scraper API for Products, Installed Apps & Reviews

Turn any Shopify store URL into structured products, installed-app signals, and publicly accessible reviews from supported providers.

Choose Basic, Standard, or Full mode, process up to 100 stores per run, and keep products, store summaries, detected apps, and reviews in separate datasets.

Shopify product pages, app scripts, and review widgets transformed into clean product, store summary, detected app, and review datasets

Built for B2B SaaS lead generation, DTC competitive intelligence, agency tech audits, and Shopify product research.

KazKN · Data intelligence suite   •  Shopify intelligence, CRE listings, Crexi search, Vinted arbitrage
Shopify Apps Spy  Shopify Apps Spy
➤ You are here
CRE Intelligence  CRE Intelligence
LoopNet + Crexi · broker data
Crexi Scraper  Crexi Scraper
Sale + lease · market or URL
Vinted Smart Scraper  Vinted Smart
Cross-market arbitrage

Copy to your AI assistant

Use kazkn/shopify-scraper-apps-spy on Apify to extract Shopify product catalogs, store summaries, detected storefront apps, and publicly accessible reviews from Yotpo, Judge.me, Stamped, Okendo, or Loox when available. Basic mode returns products, Standard adds app detection, and Full adds supported reviews.

{
"store_urls": [
"https://allbirds.com"
],
"extract_level": "standard",
"max_products_per_store": 100,
"include_variants": false,
"max_concurrent_stores": 1,
"use_residential_proxy": false
}
from apify_client import ApifyClient
client = ApifyClient("TOKEN")
run_input = {
"store_urls": ["https://allbirds.com"],
"extract_level": "standard",
"max_products_per_store": 100,
"include_variants": False,
"max_concurrent_stores": 1,
"use_residential_proxy": False,
}
run = client.actor("kazkn/shopify-scraper-apps-spy").call(run_input=run_input)
default_dataset_id = run["defaultDatasetId"]
products = client.dataset(default_dataset_id).list_items().items
print(products)

Full Actor specification: GET /v2/acts/kazkn~shopify-scraper-apps-spy/builds/default with Authorization: Bearer TOKEN.

Best for: Shopify lead qualification, competitor catalog research, installed-app intelligence, agency tech-stack audits, public review analysis, CSV exports, and API workflows.

Explore on Apify: Run Actor · Input · Output · Pricing · API · Examples · Support

🔍 What does this Shopify scraper do?

Built for B2B SaaS lead-gen, DTC competitive intel, and agency tech audits. No login. No API key. No proxy required for most stores.

It turns any Shopify URL into structured intelligence in under 30 seconds.

You simply:

  • paste one or more Shopify URLs (custom domain or *.myshopify.com)
  • pick an extraction level (Basic, Standard, or Full)
  • click Run
  • export results as JSON, CSV, or Excel

The actor extracts:

  • 🛍️ Full product catalog — title, handle, vendor, type, tags, description, prices, variants, images, inventory signals
  • 🧩 Detected apps — Klaviyo, Recharge, Yotpo, Judge.me, Privy, Gorgias, Algolia, Okendo, Iterable, Bloomreach, Braze, Smile.io, LoyaltyLion, Weglot, Rebuy, Shogun, PageFly, Hotjar, GTM, Facebook Pixel, TikTok Pixel, and 30+ more
  • Reviews from Yotpo, Judge.me, Stamped, Okendo, Loox (Full mode)
  • 🏷️ Store metadata — name, currency, country, myshopify domain, total products

🎬 Video Tutorial — See It in Action

▶️ Watch the full tutorial — from a Shopify store URL to apps + products + reviews in under 3 minutes.

(🇫🇷 Tutoriel français · 🇩🇪 Auf Deutsch · 🇪🇸 En español)


🎯 Who is this Shopify scraper for?

  • 🤖 B2B SaaS founders targeting Shopify merchants — enrich your outbound list with installed-apps data nobody else has
  • 📊 DTC operators and analysts — snapshot competitor catalogs, watch what apps they install or churn, compare regional storefronts
  • 🛍️ Dropshippers — explore catalogs, prices, variants, apps, and reviews for product research
  • 🏪 Agencies — deliver clean tech-stack audits to your Shopify clients in minutes instead of hours

⚡ Why use this Shopify scraper?

  • 🧩 Tech stack detection nobody else has — the unique value vs the 8 other Shopify scrapers on Apify Store
  • 🌍 Multi-region tested — US, UK, EU, France, Italy, Spain, Germany all validated end-to-end
  • 🚀 Sub-30s per store — scrapes 250 products + apps + reviews faster than any browser-based competitor
  • 💰 Transparent event pricing — $0.003 per extracted product; start, store, app-analysis, and review events are shown below
  • 🛡️ Zero browser — pure HTTP + JSON; the current default run allocation is 4 GB
  • Sitemap fallback — if a store disables /products.json, the actor automatically reads the sitemap
  • 📦 Real-time dataset — products stream into your dataset as they're extracted, no batch wait
  • 🔁 Batch up to 100 stores in a single run

💡 If you only need products without apps detection, use any commodity Shopify scraper. If you want the stack intel, this is the only actor that gives it to you.


🚀 How to scrape Shopify products in 3 steps

Setting up 🧩 Shopify Apps Spy + Product Scraper takes less than a minute:

  1. Open the actor on Apify Console and paste one or more Shopify store URLs in the input field (custom domain like https://allbirds.com or any *.myshopify.com).
  2. Pick an Extraction Level that matches what you need:
    • Basic — products only
    • Standard (default) — products + tech stack detection
    • Full — Standard + reviews from Yotpo, Judge.me, Stamped, Okendo, Loox
  3. Click Run — then download your dataset from the Storage tab as JSON, CSV, or Excel.

💡 Pro tip: filter by collection handle to scrape only /collections/sneakers or any specific catalog slice instead of the whole store.

Input example

{
"store_urls": [
"https://allbirds.com",
"https://glossier.com",
"https://magicspoon.com"
],
"extract_level": "full",
"max_products_per_store": 250,
"max_reviews_per_product": 20,
"max_concurrent_stores": 3,
"use_residential_proxy": false
}

💡 Set use_residential_proxy: true only when you scrape Cloudflare-protected stores like Tesla Shop or Manscaped. Datacenter proxy is enough for 98% of Shopify stores. Learn more about Apify Proxy.


🧩 Detected apps catalog (50+ apps, growing)

The detector spots the entire installed tech stack of any Shopify by running a library of regex patterns on the home page and one product page HTML.

CategoryDetected apps
ReviewsYotpo · Judge.me · Loox · Stamped · Okendo · Reviews.io · Trustpilot · Shopify legacy reviews
📧 Email marketingKlaviyo · Mailchimp · Omnisend · Drip · Iterable · Bloomreach Engagement · Braze
🎯 Popups / opt-inPrivy · Justuno · OptiMonk
🔁 SubscriptionsRecharge · Bold Subscriptions · Appstle
🎁 Loyalty / rewardsSmile.io · Yotpo Loyalty (Swell) · LoyaltyLion
💬 Live chat / helpdeskGorgias · Tidio · Intercom · Zendesk · Drift
🔎 SearchAlgolia · Searchanise · Klevu
🎨 Page buildersShogun · PageFly · GemPages · Zipify
🌐 Currency / i18nCurrency Converter Plus · Weglot · LangShop
🛒 Upsell / cartReConvert · Bold Upsell · In Cart Upsell · Rebuy
📈 Analytics / pixelsHotjar · GTM · GA4 · Facebook Pixel · TikTok Pixel · Pinterest Tag · Snapchat Pixel

💡 Don't see an app you care about? The patterns library is open — open an issue with a link to a store using it and I add the regex within 24h.


💰 Pricing

🧩 Shopify Apps Spy + Product Scraper uses pay-per-event pricing. You only pay for what you actually extract:

EventWhen it firesPrice
Actor startPer charged GB at the start of a run$0.05 / GB
Store analyzedOnce per Shopify store with products$0.01
Product extractedPer product row pushed$0.003
Apps detectedPer store at Standard or higher$0.10
Review extractedPer review row pushed$0.001
  • The current default run allocation is 4 GB, so actor start can charge $0.20 per run before store, product, app, or review events.
  • Apify platform usage is included in the event prices above.
  • Set Max Total Charge USD on every run to cap your spend

💸 Real cost examples

All examples use one 4 GB run, therefore include a $0.20 actor-start charge. Apify platform usage is included in the event prices.

  • Basic catalog — 1 store, 250 products: $0.20 start + $0.01 store + (250 × $0.003 products) = $0.96 in events.
  • Standard tech-stack scan — 100 stores, 1 product each: $0.20 start + (100 × $0.01 stores) + (100 × $0.003 products) + (100 × $0.10 app analysis) = $11.50 in events.
  • Full audit — 5 stores, 100 products and 10 reviews per product: $0.20 start + (5 × $0.01 stores) + (500 × $0.003 products) + (5 × $0.10 app analysis) + (5,000 × $0.001 reviews) = $7.25 in events.

Compare to PPSPY ($24/month), Koala Inspector ($9.99/month), Charm.io ($299/month), Shophunter ($99/month) — and none of them give you bulk API access or installed-apps data.

Learn more about Apify pricing.


📦 Output format

The actor writes each output type to a separate run dataset so Apify tabs and CSV exports stay clean:

  • Products (default dataset) — one flat row per product, optimized for CSV / Sheets exports
  • Store summary — one row per store with metadata, counts, review diagnostics, and run health
  • Apps detected — one row per store with the detected Shopify app stack
  • Reviews — one row per review in Full mode, empty when no supported review provider is found

Export any section to JSON / CSV / Excel / Google Sheets / Airtable / Slack / any Apify integration.

Reviews note — if the Reviews dataset is empty, check reviews_status, reviews_products_probed, and review_providers_tried in Store summary. The actor reports why reviews were not emitted instead of filling the Reviews tab with unrelated rows.

Products dataset

One row per product (or per variant if include_variants: true).

{
"store_url": "https://allbirds.com",
"store_domain": "allbirds.com",
"store_platform": "shopify",
"scraped_at": "2026-04-30T22:15:30Z",
"extract_level": "standard",
"product_id": 7894123456,
"product_handle": "wool-runner-mizzles-natural-white",
"product_title": "Wool Runner Mizzles - Natural White",
"product_url": "https://allbirds.com/products/wool-runner-mizzles-natural-white",
"product_type": "Sneakers",
"vendor": "Allbirds",
"tags": "wool, waterproof",
"description_text": "Plain text description",
"price": 135.0,
"price_min": 135.0,
"price_max": 135.0,
"compare_at_price": null,
"currency": "USD",
"available": true,
"available_variant_count": 8,
"total_variant_count": 12,
"image_urls": "https://cdn.shopify.com/...jpg | https://cdn.shopify.com/...jpg",
"main_image": "https://cdn.shopify.com/...jpg",
"image_count": 6,
"store_name": "Allbirds",
"myshopify_domain": "allbirds-2.myshopify.com",
"low_stock_message": null,
"in_stock_count": null,
"viewing_now_widget": false,
"recent_purchases": false
}

Variantstotal_variant_count and available_variant_count are always present. If a product has multiple flavors / sizes / colors (e.g. an energy drink with 5 flavors), set include_variants: true in the input to get one row per variant with per-SKU price, availability, and option labels (size, color, flavor, etc.) on top of the per-product summary.

Store summary dataset

One row per scraped store with store metadata, product counts, variant counts, and review diagnostics in Full mode.

{
"store_url": "https://magicspoon.com",
"store_domain": "magicspoon.com",
"myshopify_domain": "magicspoon-cereal.myshopify.com",
"store_name": "Magic Spoon",
"currency": "USD",
"country": "US",
"extract_level": "standard",
"detected_at": "2026-04-30T22:15:30Z",
"reviews_apps": ["okendo"],
"email_marketing": ["klaviyo"],
"subscriptions": ["recharge"],
"page_builder": ["shogun"],
"upsell": ["rebuy"],
"analytics": ["google_tag_manager"],
"all_apps_raw": ["okendo", "klaviyo", "recharge", "shogun", "rebuy", "google_tag_manager"],
"detected_count": 6,
"product_count": 250,
"in_stock_product_count": 231,
"total_variant_count": 412,
"row_count_pushed": 250,
"review_count": 0,
"reviews_status": "no_supported_review_app_detected",
"reviews_products_probed": 100,
"review_providers_tried": ["yotpo", "judgeme", "stamped", "okendo", "loox"]
}

Apps detected dataset

One row per store in Standard and Full modes.

{
"store_url": "https://magicspoon.com",
"store_domain": "magicspoon.com",
"store_name": "Magic Spoon",
"myshopify_domain": "magicspoon-cereal.myshopify.com",
"detected_at": "2026-04-30T22:15:30Z",
"reviews_apps": ["okendo"],
"email_marketing": ["klaviyo"],
"subscriptions": ["recharge"],
"analytics": ["google_tag_manager"],
"all_apps_raw": ["okendo", "klaviyo", "recharge", "google_tag_manager"],
"detected_count": 4
}

Reviews dataset

One row per review with normalized provider-agnostic fields. Emitted only at extract_level: 'full'.

{
"store_domain": "glossier.com",
"product_id": 9576351138037,
"product_handle": "spring-pinks",
"review_id": "yotpo_12345",
"provider": "yotpo",
"rating": 5,
"title": "Best lip balm ever",
"body": "I wear them every day...",
"author_name": "Sarah J.",
"author_verified": true,
"created_at": "2026-03-12T08:00:00Z",
"helpful_count": 14,
"images": ["https://cdn.yotpo.com/..."]
}

💡 Tips for scraping Shopify efficiently

  • 📈 Batch multiple stores in a single run — the actor runs them in parallel
  • 🌐 Multi-region brands — pass https://allbirds.com, https://allbirds.eu, https://allbirds.co.uk to compare regional storefronts (different stacks, different currencies)
  • 🛡️ Hit a 403? Toggle Use Residential Proxy for Cloudflare-protected stores (Apify Proxy docs)
  • 🔄 Schedule weekly runs with Apify Scheduler to track product changes and price drops over time
  • 🪝 Push to Sheets, Slack, Airtable via Apify integrations — no glue code needed
  • 🤖 Run from any AI agent (Claude, Cursor, Windsurf) using the Apify MCP server

🌍 Supported Shopify markets and stores

🧩 Shopify Apps Spy + Product Scraper works on any Shopify storefront worldwide — custom domain, *.myshopify.com, regional subdomains, Shopify Plus.

✅ Empirically tested on stores from these countries before publishing:

🇺🇸 United States · 🇬🇧 United Kingdom · 🇪🇺 European Union · 🇫🇷 France · 🇩🇪 Germany · 🇮🇹 Italy · 🇪🇸 Spain

The endpoint we use (/products.json) is a public, version-less Shopify spec that has been stable since 2014. Country, currency, and language do not affect detection — the actor handles every Shopify storefront identically.


🧭 When to use Shopify Apps Spy + Product Scraper vs alternatives

Use 🧩 Shopify Apps Spy + Product Scraper if you want:

  • The only Apify Shopify scraper with installed-apps detection
  • Catalog + apps + reviews in one run
  • Sub-30s per store, batchable up to 100
  • Pay-per-event with no subscription

Use PPSPY ($24/month) or Charm.io ($299/month) if you prefer:

  • A polished web UI without API access
  • Flat monthly pricing instead of usage-based

Use a generic web scraper if you only need:

  • Single-product scraping with custom selectors
  • No Shopify-specific data model

💡 Product extraction is billed at $0.003 per row. Total event cost also includes the run-start, store, and optional app-analysis and review events described in the pricing table.


🔗 Part of the KazKN ecosystem

This actor is part of the KazKN family of scrapers and MCP servers on Apify:


❓ Frequently asked questions

Yes. The /products.json endpoint is a public, official Shopify feature documented by Shopify and consumed by Google Shopping for indexing. The actor does not bypass authentication, does not interact with Shopify's Admin API, and does not collect any buyer personal data. Read more on the Apify legal blog.

Can you scrape Shopify products without an API key?

Yes. The actor uses only the public storefront /products.json endpoint — no app install, no OAuth, no API key.

Does Shopify have an API?

Two: the Admin API (requires OAuth + a per-store install — not used here) and the public storefront /products.json endpoint (used here).

How many products can I extract per store?

Up to 100,000 per store, paginated 250 at a time. Realistic Shopify catalogs have 50–10,000 products.

What if a store disables /products.json?

The actor automatically falls back to sitemap_products_1.xml and pulls each product via /products/{handle}.json. About 2 % of Shopify Plus stores disable both — they show up as a graceful "no products fetched" record with diagnostic info.

Does the actor work on Shopify Plus stores?

Yes — most of the validation set is Shopify Plus (Allbirds, Magic Spoon, Glossier, Kith, Princess Polly, Pinko, Aspesi, PDPaola).

How does the apps detector work?

It fetches the home page HTML and one product page HTML, then runs a library of regex patterns against the combined markup. Detection signals include CDN URLs, JavaScript globals, custom HTML attributes, and inline configuration objects.

How accurate is the apps detection?

Very high recall on apps that ship visible front-end widgets (Yotpo, Judge.me, Recharge, Klaviyo, Privy, Gorgias, Algolia, Okendo). Lower recall on stores that lazy-load apps via SPAs or use a heavily customized headless theme (e.g. Gymshark, Bombas). The detector reports actual reality — never fabricates apps.

What review providers are supported?

Yotpo, Judge.me, Stamped, Okendo, and Loox. The crawler picks the first provider the apps detector flagged for the store, or falls through the list until one returns reviews.

Can I scrape multi-region brands?

Yes. Pass each storefront URL separately (e.g. https://allbirds.com, https://allbirds.eu, https://allbirds.co.uk) and the actor reports the local currency in the product and store summary outputs, then treats each storefront as an independent run.

What about Cloudflare-protected stores?

Some stores (Tesla Shop, Manscaped) front their storefront with Cloudflare. Toggle Use Residential Proxy on those — the actor routes through Apify's residential pool.

Can I filter by collection?

Yes — set Filter by Collection to a collection handle (e.g. sneakers, new-arrivals) and the actor restricts the scrape to that collection only.

Can I run this on a schedule?

Yes — schedule runs in Apify Scheduler with any cadence (hourly, daily, weekly). Export to webhook, Google Sheets, S3, BigQuery, or any Apify integration.

Is data validated before being pushed?

Yes — every product, store summary, and review is validated against a Zod schema before being pushed. Invalid rows are logged and skipped, never stored.

What's the typical run time?

Standard level: 5–10 seconds per store on a single product page (250 products), parallelized across stores. 20 stores in standard level finishes in ~45 seconds in cloud benchmarks.

What's the memory footprint?

The current default run allocation is 4 GB. Actor start is charged at $0.05 per charged GB, so this allocation can bill $0.20 before result events. See Apify resource pricing.

What if the URL isn't a Shopify store?

The actor returns a diagnostic record with error: "not_a_shopify_store", the signals it checked, and the HTTP status code. You are never charged for non-Shopify URLs.

How is this different from a generic scraper?

Generic scrapers like Apify Web Scraper extract one product at a time, do not understand Shopify's variants/collections/inventory model, and can't detect installed apps. This actor is purpose-built for Shopify with regex patterns tuned for the apps detection use case.

Can I use this from an AI agent?

Yes — connect any MCP-compatible AI agent (Claude, Cursor, Windsurf) via the Apify MCP server. The agent can call this actor as a tool.

Can you add a specific app to the detector?

Yes — the patterns library is regex-based. Open an issue with a link to a store using the app and I'll add the regex.


The /products.json endpoint is public and documented by Shopify. The actor does not bypass authentication, respects rate limits, and does not collect buyer personal data.

Note that personal data is protected by GDPR in the EU and other regulations worldwide. Do not scrape personal data unless you have a legitimate reason. If unsure, consult your lawyers. Suggested reading: Is web scraping legal? — Apify Blog.