Shopify Scraper — Products, Variants & Prices to CSV/Excel avatar

Shopify Scraper — Products, Variants & Prices to CSV/Excel

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Shopify Scraper — Products, Variants & Prices to CSV/Excel

Shopify Scraper — Products, Variants & Prices to CSV/Excel

Shopify scraper that extracts any store's full product catalog — products, variants, prices, stock — into clean CSV/Excel/JSON rows. Automated variant flattening, numeric pricing, currency auto-detection, and deep variant linking. No API key. Built for dropshippers and price analysts.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Matrix Crawl

Matrix Crawl

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

🛍️ Shopify Scraper — Products, Variants & Prices to CSV/Excel

The fastest Shopify product scraper on Apify. Pull any Shopify store's entire product catalog — every product, every variant, every price — into clean, spreadsheet-ready rows in one run. No API key, no app install, no Shopify login required.

shopify scraper · shopify product scraper · shopify price scraper · ecommerce data extraction · product catalog export · shopify inventory scraper

Built for dropshippers, price monitors, and competitive-intelligence teams who need Shopify catalog data that's actually usable — not a wall of nested JSON you have to clean by hand before it touches Excel, Google Sheets, Power BI, or your ERP.


👥 Who Is This For?

  • Dropshippers & E-commerce Operators: Quickly extract competitor catalogs, monitor vendor shifts, and bulk-import clean variant data straight into your own store apps.
  • Price Analysts & Retail Aggregators: Track real-time markdowns, historical pricing adjustments, and stock variations across multiple domains concurrently.
  • Competitive Intelligence Teams: Maintain a fully updated, structured database of total active stock profiles without dealing with messy JSON transformations.

⚡ Why This Scraper Is Different: The Variant Flattening Engine

Most Shopify scrapers hand you the raw API shape: one product object with all its variants trapped in a nested array. A T-shirt in 5 sizes becomes a single row with a sub-table buried inside one cell. Open that in Excel and you get [object Object] — useless for sorting by price, filtering in-stock SKUs, or importing anywhere.

This actor's Variant Flattening Engine explodes that into one clean row per variant — the grain that pricing analysis, inventory tracking, and CSV imports actually need.

Before (Standard scrapers — nested layout):

titlevariants
Wool Runner[{size:"S",price:"95.00",sku:"WR-S"}, {size:"M",price:"95.00",sku:"WR-M"}, ...]

After (This actor — clean flattened columns):

titlevariantTitleskupriceavailable
Wool RunnerSWR-S95.00
Wool RunnerMWR-M95.00
Wool RunnerLWR-L95.00

Sort by price. Filter to in-stock. Pivot by vendor. Import straight into anything — zero cleanup.

💡 Prefer the nested shape? Simply flip the flattenOutput toggle to false and you will receive one rich row per product with the raw variants array entirely intact.


💎 Premium Features Out-of-the-Box

  • Numeric Prices: price and compareAtPrice come out as real numbers (not text), so spreadsheets can calculate sums, filters, and compute discount markdowns natively.
  • Currency Auto-Detection: The scraper executes a single pre-flight check to resolve the storefront's native currency code and attaches it to every single data row.
  • One-Click Deep Links: Generates distinct productUrl and variant-specific variantUrl links (?variant={id}) for immediate add-to-cart automation pipelines.
  • Discount Detection: Automatically extracts compareAtPrice to flag the retailer's original retail strike-through price.
  • Multi-Store Concurrent Routing: Paste multiple target domains at once; every output row explicitly tags its source hostname so aggregate data sets stay cleanly filterable.
  • Wallet Protection Cost Controls: A hard user-defined maxItems cap automatically forces the loop to terminate if a massive catalog risks running away with your platform bill.
  • Advanced Anti-Block Hardening: Deploys Apify Proxies by default, paired with native Crawlee session pools to automatically rotate IPs the second a 403 or 429 block is detected.

💰 Transparent, Value-Driven Pricing

This scraper charges strictly by delivery value at $1.00 per 1,000 written dataset rows. Because our Variant Flattening Engine safely outputs one unique row per distinct variant (e.g., separating a T-shirt into individual rows for sizes S, M, and L), your final item count will reflect total variation stock rather than the base product count.

  • Example: A collection containing 100 base products that average 5 variants each will output 500 total clean spreadsheet rows, costing just $0.50!

🚀 How to Use

  1. Paste one or more Shopify store root URLs into Target Storefront URLs (Any sub-page works; the scraper automatically strips paths back to the clean root domain).
  2. Leave Flatten Output Data Grid enabled for immediate spreadsheet-ready integration (or toggle off for standard nested JSON extraction).
  3. Configure your safe Maximum Items cost ceiling threshold and click Start.
  4. Export your resulting data pool seamlessly as a CSV, Excel, JSON, or HTML grid directly from the platform interface.

Sample Input Configuration (JSON)

{
"startUrls": [
{ "url": "https://www.allbirds.com" },
{ "url": "https://www.gymshark.com" }
],
"flattenOutput": true,
"maxPagesPerStore": 100,
"maxItems": 10000,
"debugLog": false,
"proxyConfiguration": { "useApifyProxy": true }
}

📊 Output Data Dictionary

Each row in flattened mode (flattenOutput: true):

FieldTypeExample
productIdnumber1234567890
titlestring"Wool Runner"
handlestring"wool-runner"
storestring"www.allbirds.com"
productUrlstring"https://www.allbirds.com/products/wool-runner"
vendorstring"Allbirds"
productTypestring"Shoes"
tagsstring[]["mens","wool"]
createdAtstring (ISO)"2023-01-04T12:00:00-05:00"
updatedAtstring (ISO)"2024-06-01T09:30:00-04:00"
publishedAtstring (ISO)"2023-01-05T00:00:00-05:00"
imageUrlstring"https://cdn.shopify.com/.../p.jpg"
currencystring | null"USD"
variantIdnumber | null987654321
variantTitlestring | null"US 9 / Grey"
skustring | null"WR-9-GRY"
pricenumber | null95
compareAtPricenumber | null120
availableboolean | nulltrue
variantImageUrlstring | null"https://cdn.shopify.com/.../v.jpg"
variantUrlstring | null"https://.../products/wool-runner?variant=987654321"
option1 / option2 / option3string | null"US 9" / "Grey" / null
gramsnumber | null350
scrapedAtstring (ISO)"2026-06-27T10:00:00.000Z"

In nested mode (flattenOutput: false) each row holds the product metadata above plus a raw variants array (the full unmodified variant objects) instead of the flattened variant fields.


🔀 Output Modes At a Glance

Flattened (default)Nested
Rowsone per variantone per product
Best forExcel / CSV / BI / price monitoringprogrammatic use, full fidelity
Variant fieldstop-level columnsinside variants[]

📝 Notes & Limits

  • Only published products are returned, with clean camelCase field names.
  • Prices carry the store's default currency (auto-detected). Multi-currency markets may differ from a specific buyer's locale.
  • Pagination caps at Shopify's 25,000-item ceiling per store. Larger-catalog and blocked-store fallbacks are on the roadmap.
  • A product with zero variants still emits one row (with null variant fields) so nothing is silently dropped.

⚖️ Compliance & Responsible Use

This actor reads publicly available catalog data. You are responsible for using it lawfully: respect each target site's Terms of Service and robots.txt, applicable data-protection and intellectual-property laws, and reasonable request rates. Do not use it to infringe rights or for any unlawful purpose.