Shopify Inventory Scraper - SKUs, Variants & In-Stock Status avatar

Shopify Inventory Scraper - SKUs, Variants & In-Stock Status

Pricing

from $1.00 / 1,000 products

Go to Apify Store
Shopify Inventory Scraper - SKUs, Variants & In-Stock Status

Shopify Inventory Scraper - SKUs, Variants & In-Stock Status

Scrape all products and inventory from a Shopify store or collection: title, prices, compare-at price, discount %, variants with SKU and stock, options, images, tags, vendor, description and currency. Works on headless stores too. $1.00 per 1,000 products; failed or non-Shopify stores are free.

Pricing

from $1.00 / 1,000 products

Rating

0.0

(0)

Developer

Tenfold Fleet

Tenfold Fleet

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

11 hours ago

Last modified

Share

What does Shopify Inventory Scraper do?

Shopify Inventory Scraper extracts every product from any Shopify store through the store's public product feed (/products.json) and returns clean, structured data: title, prices, compare-at price, discount %, variants with SKU and stock, options, images, tags, vendor, product type, description, dates and store currency.

Shopify is a trademark of Shopify Inc. Not affiliated with, endorsed by or sponsored by Shopify.

Paste a store URL to get the whole catalogue, a collection URL to get one category, a product URL to get a single product, or a store search URL (/search?q=runner) to get the matching products. It also works on many headless Shopify stores (Hydrogen / Next.js frontends such as Gymshark or Fashion Nova): when the storefront hides the feed, the actor finds the store's *.myshopify.com address and reads the products from there.

It works like a Shopify product API without an API key: plain HTTP requests, no browser, so it is fast (250 products per request) and cheap: $1.00 per 1,000 products.

Why use a Shopify scraper?

  • 💸 Competitor price monitoring: track prices, discounts and stock of competing Shopify stores every day.
  • 🛍️ Dropshipping and product research: find what a store sells, its best price points, vendors and new launches (createdAt, publishedAt).
  • 📦 Catalogue migration and backup: export a full product catalogue with variants, SKUs, options and image URLs to CSV or Excel.
  • 🏷️ Sale and discount tracking: compareAtPrice and discountPercent show what is on sale and by how much.
  • 📈 Market and brand intelligence: compare assortments, product types and tags across many brands at once.
  • 🤖 AI agents and data pipelines: call it from the Apify API, MCP server, Make, Zapier or n8n and get clean JSON.

What data can it extract?

FieldExample
store, storeNameallbirds.com, Allbirds
productId, handle, url7340901859408, womens-tree-runner, product page link
title, vendor, productTypeWomen's Tree Runner, Allbirds, Shoes
tags["womens", "sale"]
currencyUSD (store currency)
priceMin, priceMax25, 120
compareAtPrice, discountPercent50, 50
availabletrue if any variant is in stock
variantCount, variantsid, SKU, title, price, compare-at price, availability, option1-3 per variant
options[{ "name": "Size", "values": ["5", "6", "7"] }]
imageUrl, imagesimage URLs on the Shopify CDN
descriptionTextdescription with HTML stripped
createdAt, updatedAt, publishedAtISO 8601 timestamps

How to scrape products from a Shopify store

  1. Click Try for free.
  2. Add one or more store, collection or product URLs, e.g. allbirds.com or https://www.allbirds.com/collections/mens.
  3. Optionally set a keyword filter, a max products per store, or switch on one row per variant.
  4. Click Start and download the products as JSON, CSV, Excel or HTML, or fetch them through the API.

How much does it cost to scrape Shopify?

You pay $0.001 per product, which is $1.00 per 1,000 products, plus a tiny $0.00005 start fee per run. With One row per variant on, each variant row counts as one result. Stores that fail (not Shopify, password-protected, blocked, empty collection, no keyword matches) and unsupported URLs (blog posts, about pages, filtered collections) are reported in the dataset with an error field and are never charged, so a typo never turns into a whole-store scrape. The same store pasted twice (allbirds.com and www.allbirds.com) is scraped and charged once. Set a maximum cost per run in the run options and the actor stops cleanly when it is reached. Apify's free monthly credit covers thousands of products.

Input

{
"urls": [
"https://www.allbirds.com/collections/mens",
"kyliecosmetics.com",
"gymshark.com",
"https://www.allbirds.com/products/womens-tree-runners"
],
"keyword": "runner, hoodie",
"maxProductsPerStore": 0,
"oneRowPerVariant": false,
"includeDescription": true
}

Output

{
"store": "allbirds.com",
"storeName": "Allbirds",
"productId": 7340901859408,
"title": "Women's Allbirds Flip Flop - Dusty Pink",
"handle": "womens-allbirds-flip-flop-dusty-pink",
"url": "https://www.allbirds.com/products/womens-allbirds-flip-flop-dusty-pink",
"vendor": "Allbirds",
"productType": "Shoes",
"tags": ["allbirds::gender => womens", "shoprunner"],
"currency": "USD",
"priceMin": 25,
"priceMax": 25,
"compareAtPrice": 50,
"discountPercent": 50,
"available": true,
"variantCount": 7,
"variants": [
{ "id": 42146889039952, "sku": "A12513W050", "title": "5", "price": 25, "compareAtPrice": 50, "available": false, "option1": "5", "option2": null, "option3": null }
],
"options": [{ "name": "Size", "values": ["5", "6", "7", "8", "9", "10", "11"] }],
"imageUrl": "https://cdn.shopify.com/s/files/1/1104/4168/files/A12513_PDP_LEFT.png",
"images": ["https://cdn.shopify.com/s/files/1/1104/4168/files/A12513_PDP_LEFT.png"],
"descriptionText": "Sun on your feet. Comfort underneath...",
"createdAt": "2026-03-27T21:03:50.000Z",
"updatedAt": "2026-10-01T02:35:59.000Z",
"publishedAt": "2026-09-25T23:58:13.000Z",
"collection": null,
"input": "allbirds.com",
"scrapedAt": "2026-10-01T09:00:00.000Z"
}

With One row per variant, each row also has variantId, variantTitle, sku, price, option1-option3, and compareAtPrice, discountPercent and available refer to that variant. The full images list and descriptionText are on the first variant row of each product (every row keeps imageUrl); the Variants view in the Output tab shows SKU, variant and price columns. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Failed inputs appear as { "input": "...", "error": "..." } rows.

Tips

  • Collection URLs are cheaper than whole stores when you only need one category.
  • Product-level compareAtPrice and discountPercent come from the cheapest in-stock variant; switch on one row per variant to see every variant's discount.
  • Shopify serves at most 25,000 products per listing. When a listing hits that limit you get a notice row; add collection URLs to get the rest.
  • Max products per store counts products. With one row per variant on, 100 products can mean thousands of rows, so set a maximum cost per run as well.
  • Schedule the actor daily on the same stores to build a price history or catch new products.
  • Prices are in the store's base currency (currency), as published in its product feed.

Use it with AI agents (MCP)

Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through Apify's MCP server: add https://mcp.apify.com?tools=tenfoldfleet/shopify-products-scraper as a remote MCP server and sign in with your Apify account. The agent fills in the input, runs the Actor and reads the results itself; you pay the same per-event price as a normal run.

FAQ

Does it work on any Shopify store?

On any store that has a public storefront. Password-protected stores and stores that block automated traffic return a free error row. Headless stores work when their *.myshopify.com domain is discoverable; you can also paste that domain directly.

How do I know if a website is a Shopify store?

Just add it. Non-Shopify sites return a free Not a Shopify store error row, so testing a list of domains costs only the $0.00005 run start fee.

Do I need a Shopify API key or login?

No. The actor only reads public product data that the store publishes to every visitor.

Is inventory quantity included?

Shopify's public feed shows whether each variant is available (in stock), not exact stock counts. If a store hides stock entirely, available is null (unknown) rather than a wrong false.

Which URLs can I paste?

The store home page, /collections/<handle>, /products/<handle> and /search?q=<term> URLs, with or without a language prefix like /en-gb/. Anything else returns a free error row that tells you which URL to use instead.

What happens if the run stops or restarts?

The actor saves its progress, so if Apify restarts the run on another server it continues where it left off instead of charging again. If your maximum cost per run is reached, inputs that were not started get a free Not processed row.

Can I use it from code or AI agents?

Yes, through the Apify API, the JavaScript or Python client, or the Apify MCP server.

Support

Found a Shopify store that does not parse? Open an issue in the Issues tab.

This actor only reads publicly available product information from Shopify storefronts. It does not log in, bypass password pages or access controls, or collect personal data.

More tools from Tenfold Fleet

ActorOutput
ALDI Australia Scraper - AU Products, Unit Prices & Catalogueproduct
Alibaba Image Search - Reverse Lookup of Suppliers by Photomatched product
Alibaba Products Scraper: Wholesale Suppliers, MOQ, Price Tiersproduct
AliExpress Keyword Scraper - Exact Sold Counts by Search Termproduct
Amazon Product Scraper - Details, Prices & Search by ASINproduct
Applicant Tracking Jobs Scraper - Greenhouse, Lever & 6 Morejob posting
Backlinks Checker - Referring Domains, Anchors & Domain Rankbacklink
Bilibili Scraper - Videos, Comments, Danmaku & Searchvideo or comment
Businesses Without Websites - Local Leads with Phone & Ratinglead
Contact Details Scraper - One Lead Record per Company Websitewebsite with contacts
Facebook Ads Library Scraper for Marketersad
Facebook Page Contact Finder - Business Leads from Page Linkspage with contact details
Google Ads Transparency Center Scraper - Competitor Ads by Sitead
Google AI Overviews Checker - Citations & Domain Trackerkeyword checked
Google Flights Scraper - All Fares per Route & Date (API)route search
Google Hotels Scraper - Nightly Prices, Stars & Booking Siteshotel
Google for Jobs Scraper - Openings by City, Pay & Job Boardjob listing
Google Keyword Planner Alternative - Ideas, Bids & Volumekeyword idea
Google Maps Extractor - Business Leads, Phones & Websitesplace
Google News Scraper - Articles, Real URLs & Full Textarticle
Google Travel Hotel Rate Tracker - OTA Prices for Every Nightoffer
Search Trends by Region & Time - Google Trends Data Scraperkeyword
Instagram Reels Search - Keyword to Top Reels, Plays & Creatorsreel
Instagram Reels Transcript - Speech to Text for Public Reelsreel transcript
Keyword Ideas & Related Keywords - Difficulty, Volume & CPCkeyword idea
Keyword Search Volume, CPC & Difficulty Checker (Bulk)keyword with data
Likee Scraper - Creators by Country, Video Views & Likesvideo
LinkedIn Ads Library Scraper - Competitor Ad Copy & Targetingad
Reddit Brand Monitoring - Keyword Alerts for Posts & Commentsmention
Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sitesunique remote job
SEEK Jobs Scraper - Salaries & Hiring Across 8 APAC Job Boardsjob listing
SEO Agent - AI Keyword Research & Competitor Reportsresearch report
SEO Crawler - Technical SEO Audit Tool & On-Page Checkerpage audit
SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gapkeyword
Shopify App & Theme Detector - Store Analyzer & Contactsshopify store
Sitemap URL Extractor - All URLs from sitemap.xml & robots.txturl
Website Built With Checker - Find Any Site's CMS & Tech Stackwebsite
Threads Search - Keyword & Profile Posts Scraper (No Login)post
TikTok Transcripts - Captions or Speech to Text for Any Videovideo transcript
HTML to Text & URL to Markdown - LLM Ready Web Contentpage
Website Traffic Checker - Bulk Domain Traffic Estimatedomain with traffic data
WeChat Official Account Articles - Keyword Search to Markdownarticle found
Weibo Scraper - Comment Threads, Hot Search Ranks & User Statscomment
Woolworths Product Scraper - AU Shelf Prices, Specials & GTINsproduct
Workday Jobs Scraper - myworkdayjobs.com API with Salaryjob posting
YouTube Channel Email Scraper - Creator Contact Extractorchannel with email
YouTube Livestream & Channel Scraper - Videos, Likes & Statsvideo
YouTube Comments Scraper - Replies, Likes & Sort by Newestcomment
YouTube Shorts Analytics Scraper - Views, Likes & Hashtagsshort
YouTube Captions Downloader - Transcript & Subtitles Scrapertranscript