Shopify Store Scraper - Products, Prices, Apps & Store Leads avatar

Shopify Store Scraper - Products, Prices, Apps & Store Leads

Pricing

from $10.00 / 1,000 store analyzeds

Go to Apify Store
Shopify Store Scraper - Products, Prices, Apps & Store Leads

Shopify Store Scraper - Products, Prices, Apps & Store Leads

Scrape any Shopify store: full catalog with variants, SKUs and prices, collections, theme, installed apps, plus emails and socials for lead gen. Tracks price drops.

Pricing

from $10.00 / 1,000 store analyzeds

Rating

0.0

(0)

Developer

Boztek LTD

Boztek LTD

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Shopify Store Scraper — Products, Prices, Apps & Store Leads

Profile any Shopify store from its public endpoints. One run gives you the store's identity, its full catalog with variants and prices, its collections, the theme it runs, the apps it has installed, and the emails and social profiles it publishes.

Point it at a domain. If the site is Shopify, you get everything below. If it is not, it is reported and skipped — and never charged.

What you get

Per store

IdentityStore name, .myshopify.com domain, shop ID, description
Location & moneyCity, province, country, currency, money format, countries shipped to
Catalog sizeProducts pulled, products published, collection count
PricingCheapest, most expensive and average product price; how many are on sale; how many are in stock
MerchandisingTop vendors, top product types, newest product date, collection list with product counts
TechActive theme, recognised Shopify apps (reviews, email, SMS, subscriptions, page builders, pixels, BNPL)
ContactEmails, phone numbers, Instagram / Facebook / TikTok / X / YouTube / Pinterest / LinkedIn handles
PaymentsAccepted card brands, Shop Pay Installments availability

Per product

Title, handle, vendor, product type, tags, product URL, image, price range across variants, highest compare-at price, derived discount percentage, stock status, option names, publish/update dates, and every variant with its SKU, price, compare-at price, weight and availability.

Track what changes

Turn on trackChanges and each run is compared against the previous one:

  • New products — what just launched, with prices
  • Removed products — what was pulled or sold out of the catalog
  • Price changes — old price, new price and the percentage move

The first run records a baseline; from the second run on, you get a diff. Schedule it daily and you have competitor price monitoring — or a launch feed for a niche you sell into.

What does it cost?

Pay-per-event. Non-Shopify domains cost nothing.

EventPriceWhen
Store analyzed$0.01Per confirmed Shopify store profiled
Product scraped$0.0002Per product row
Contacts & tech extracted$0.005Per store, only with enrichment on
Change report$0.02Per store, only from the second run on
Actor start$0.00005Once per run
ScenarioCost
100 stores, profiles + contacts, no products (outputMode: stores)~$1.50
One store, full 5,000-product catalog~$1.02
Daily price watch, 10 stores × 2,000 products~$4.30/day

Set outputMode to stores for lead generation and you never pay the per-product rate.

Output

Everything lands in one dataset, tagged with recordType so you can split it. The Console ships with a Store profiles view and a Products view. The samples below show the field shape; the numbers are illustrative.

{
"recordType": "store",
"domain": "www.allbirds.com",
"storeName": "Allbirds",
"myshopifyDomain": "weareallbirds.myshopify.com",
"city": "Beverly Hills",
"province": "California",
"country": "US",
"currency": "USD",
"productCount": 291,
"collectionCount": 1345,
"priceMin": 60,
"priceMax": 160,
"priceAvg": 112,
"onSaleCount": 34,
"availableCount": 251,
"topVendors": ["Allbirds"],
"newestProductAt": "2026-07-08T18:32:23.000Z",
"themeName": "allbirds-theme",
"apps": ["Attentive", "Google Tag Manager", "Yotpo"],
"emails": ["help@allbirds.com"],
"socialProfiles": [
"instagram:allbirds", "facebook:weareallbirds", "tiktok:weareallbirds",
"twitter:allbirds", "pinterest:weareallbirds"
],
"changes": { "newProducts": 3, "removedProducts": 1, "priceChanges": 12 }
}
{
"recordType": "product",
"domain": "www.allbirds.com",
"title": "Men's Cruiser - Shadow Blue (Natural White Sole)",
"vendor": "Allbirds",
"productType": "Shoes",
"priceMin": 105,
"priceMax": 105,
"compareAtMax": null,
"discountPercent": null,
"currency": "USD",
"available": true,
"variantCount": 13,
"productUrl": "https://www.allbirds.com/products/mens-cruiser-shadow-blue-natural-white-sole",
"variants": [
{ "variantId": 41, "title": "8", "sku": "A12856M080", "price": 105, "available": true }
]
}

compareAtMax and discountPercent are filled in only when the store publishes a compare-at price above the selling price — a stale compare-at that equals or undercuts the price is ignored rather than reported as a fake discount.

Input options

OptionTypeDefaultDescription
storeUrlsarrayrequiredDomains or URLs. .myshopify.com works too
outputModestringbothboth / stores (cheapest) / products
maxProductsPerStoreinteger0Cap the catalog per store (0 = all)
includeVariantsbooleantrueInclude every variant with SKU and price
includeDescriptionbooleanfalseInclude product descriptions
descriptionFormatstringmarkdownmarkdown / text / html
includeCollectionsbooleantrueList collections on the store row
extractContactsbooleantrueEmails, phones, socials, theme and apps
trackChangesbooleanfalseDiff against the previous run
stateStoreNamestringshopify-store-intelligence-stateKey-value store holding the baseline
maxConcurrencyinteger5Parallel requests across stores
proxyConfigurationobjectoffOptional — not needed

Use cases

  1. Agency lead generation — feed a list of domains, keep the ones that are Shopify, and get the merchant's email, socials, catalog size and installed apps in one row. Apps tell you what they already pay for.
  2. Competitor price monitoring — schedule daily with trackChanges and get every price move with its percentage.
  3. Product research and dropshipping — spot what a niche is launching, at what price, and what is selling out.
  4. Market sizing — catalog size, price bands and vendor mix across a whole segment.
  5. App and theme adoption research — see which apps and themes a cohort of stores actually runs.

How stores are detected

The Actor asks each domain for /meta.json — one small request that also returns the store's name, country, currency and catalog counts. Stores that disable it fall back to /products.json, which every Shopify store serves. Both the apex and the www. host are tried, so gymshark.com and www.allbirds.com both resolve.

Limitations

  • Contact extraction only sees server-rendered HTML. Stores whose footer is rendered client-side publish no email or social links in the page source, so those fields come back empty. Gymshark is a real example: its home page has no mailto: or social links and it serves no /pages/contact. Catalog, pricing, theme and app data are unaffected.
  • themeStoreId is empty for custom themes. Shopify sets theme_store_id to null for themes that did not come from the Theme Store, so the field is genuinely absent rather than missed.
  • App detection is signature-based. It recognises around 50 widely used apps from their scripts. An app that leaves no trace in the page source will not be listed, so treat the list as "at least these", not an exhaustive audit.
  • products.json returns published products only. Draft, archived and hidden products are not exposed by Shopify, and neither are inventory quantities — only per-variant availability.
  • Some stores throttle or disable the public feeds. A store that returns nothing is reported in RUN_SUMMARY rather than silently dropped.
  • Prices are as the store serves them — in the store's own default currency and market. Geo-specific pricing is not requested.