Shopify Store Products Scraper avatar

Shopify Store Products Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Shopify Store Products Scraper

Shopify Store Products Scraper

Scrape any Shopify store's full product catalog from its public feed. Get prices, compare-at prices, variants, SKUs, stock status, images, tags and vendor. Paste a domain or collection URL, no login or API key needed. One row per product or per variant.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Mangudäi

Mangudäi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pull any Shopify store's product catalog into a clean dataset. Prices, compare-at prices, variants, SKUs, stock status, images, tags, vendor and product type, from the store's own public feed.

Paste a domain, get the catalog. No login, no API key, no cookies.

What it does

Every Shopify storefront publishes its catalog at /products.json. This actor reads that feed, walks its pagination, adds the shop's currency and name from /meta.json, and writes one tidy row per product or per variant.

Because the data comes straight from the store's own JSON, it is complete and current, and it does not break when the theme changes.

What you can do with it

  • Track a competitor's prices and discounts day by day
  • Watch stock levels on specific SKUs
  • Build a product feed for a comparison site, a marketplace, or an AI agent
  • Pull a supplier's catalog into your own store or spreadsheet
  • Find which products a brand added or removed this week

Input

FieldWhat it does
storeUrlsStore home pages or /collections/<handle> URLs. A bare domain like gymshark.com works.
collectionHandlesOptional. Restrict every store to these collections.
searchTermOptional keyword filter across title, type, vendor and tags.
outputModeproduct for one row per product, variant for one row per variant.
maxProductsPerStoreStop after this many products per store.
onlyAvailableSkip products where every variant is sold out.
minPrice / maxPricePrice window in the store's own currency.
includeVariants / includeImagesAttach the full arrays to each product row.
includeDescriptionHtmlKeep the original body_html alongside the plain-text description.
requestDelaySecsPause between catalog pages.
proxyConfigurationApify Proxy, on by default.

Minimal input:

{
"storeUrls": ["https://gymshark.com"],
"maxProductsPerStore": 200
}

Price monitoring on one collection:

{
"storeUrls": ["https://colourpop.com/collections/best-sellers"],
"outputMode": "variant",
"onlyAvailable": true
}

Output

One row per product:

{
"storeDomain": "gymshark.com",
"storeName": "Gymshark US",
"currency": "USD",
"myshopifyDomain": "gymsharkusa.myshopify.com",
"productId": 6806953590986,
"title": "Gymshark Training Regular Fleece Joggers - Haze Pink",
"handle": "gymshark-training-regular-fleece-joggers-pants-pink-aw26",
"url": "https://gymshark.com/products/gymshark-training-regular-fleece-joggers-pants-pink-aw26",
"vendor": "Gymshark",
"productType": "Womens Pants",
"tags": ["activewear", "joggers"],
"description": "Simple & versatile for however you're training...",
"price": 42.0,
"minPrice": 42.0,
"maxPrice": 42.0,
"compareAtPrice": null,
"onSale": false,
"available": true,
"variantsCount": 7,
"availableVariantsCount": 7,
"imagesCount": 5,
"featuredImage": "https://cdn.shopify.com/s/files/...jpg",
"options": ["Size"],
"publishedAt": "2026-07-17T01:00:00-07:00",
"updatedAt": "2026-07-18T23:12:10-07:00",
"variants": [{ "variantId": 39797, "sku": "B7A4D-KDNB-S", "price": 42.0, "available": true }],
"images": [{ "src": "https://cdn.shopify.com/...", "width": 1692, "height": 2018 }]
}

In variant mode each row is a single SKU with variantId, sku, option1, option2, option3, price, compareAtPrice, discountPercent and available, which is the shape you want for a price tracker.

Notes

  • Works on any store running Shopify. If a site is not Shopify, or the owner has switched the feed off, the run logs a warning for that store and moves on.
  • Busy stores sometimes throttle requests. The actor retries with a fresh proxy IP, so leave Apify Proxy on.
  • Prices come back in the store's own currency, reported in the currency field.
  • Collection handles are the slug in a collection URL: colourpop.com/collections/best-sellers has the handle best-sellers.

Pricing

Pay per event. You pay per product row returned, and nothing for platform usage.