# Shopify Product Scraper \[$0.5/1K💰] | Catalog | Inventory (`ahmed_jasarevic/shopify-product-scraper`) Actor

Extract Shopify store product catalogs with prices, variants, and stock data for ecommerce intelligence

- **URL**: https://apify.com/ahmed\_jasarevic/shopify-product-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:** AI, E-commerce, Automation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Shopify Product Catalog & Inventory Scraper

Extract complete product catalogs, pricing, inventory levels, and variant-level data from any Shopify store. Track prices, monitor stock, and gather competitor intelligence at scale.

### What This Actor Does

Scrape any Shopify-powered store to extract structured product data including titles, descriptions, prices, images, variants, SKUs, and inventory availability. Ideal for ecommerce market research, price monitoring, and competitor analysis.

### Key Features

- **Full catalog extraction** — scrape all products from any Shopify store with pagination support
- **Variant-level data** — capture size, color, material, and every product variant with its own price and stock status
- **Price tracking** — monitor pricing across stores for competitor intelligence and market positioning
- **Stock monitoring** — detect inventory changes, restocks, and sold-out products in real time
- **Multi-store comparison** — scrape multiple Shopify stores side by side for benchmarking
- **New arrivals detection** — identify recently added products to stay ahead of trends
- **SKU extraction** — pull SKU codes for inventory management and database building
- **Proxy support** — rotate residential or datacenter proxies to avoid rate limiting and geo-blocking

### Use Cases

| Scenario | How It Helps |
|---|---|
| Competitor price monitoring | Track how competitor prices change over time |
| Product catalog backup | Build a complete database of another store's inventory |
| Restock alerts | Get notified when out-of-stock items become available again |
| Market research | Analyze pricing trends and product assortment across niches |
| Dropshipping research | Find winning products and supplier pricing |
| Brand monitoring | Track how your products are priced across different retailers |
| Inventory planning | Benchmark your catalog against top competitors |
| Trend analysis | Spot new product launches and trending items in your category |

### Input Parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `startUrls` | `array` | Yes | — | List of Shopify store URLs to scrape |
| `maxPages` | `int` | No | `10` | Maximum number of product pages to scrape per store |
| `proxyConfiguration` | `object` | No | — | Proxy settings for request rotation |

#### Example Input

```json
{
  "startUrls": [
    { "url": "https://kith.com" },
    { "url": "https://www.gymshark.com" }
  ],
  "maxPages": 15,
  "proxyConfiguration": {
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Output Schema

Each dataset item contains:

| Field | Type | Description |
|---|---|---|
| `title` | `string` | Product title |
| `handle` | `string` | Shopify product handle (URL slug) |
| `url` | `string` | Full product page URL |
| `description` | `string` | Product description (HTML stripped) |
| `price` | `number` | Current price |
| `compareAtPrice` | `number` | Original/list price before discount |
| `currency` | `string` | Currency code (e.g. USD) |
| `available` | `boolean` | Whether the product is in stock |
| `imageUrl` | `string` | Primary product image URL |
| `images` | `array` | All product image URLs |
| `vendor` | `string` | Brand/vendor name |
| `productType` | `string` | Product category |
| `tags` | `array` | Product tags |
| `createdAt` | `string` | Creation timestamp |
| `updatedAt` | `string` | Last update timestamp |
| `variants` | `array` | All variants with price, SKU, stock, options |
| `options` | `array` | Product option names (Size, Color, etc.) |

#### Variant Object

| Field | Type | Description |
|---|---|---|
| `id` | `number` | Variant ID |
| `title` | `string` | Variant title (e.g. "Blue / Large") |
| `price` | `number` | Variant price |
| `sku` | `string` | SKU code |
| `available` | `boolean` | Variant stock status |
| `option1` | `string` | First option value |
| `option2` | `string` | Second option value |
| `option3` | `string` | Third option value |
| `weight` | `number` | Variant weight |
| `inventoryQuantity` | `number` | Inventory count |

### Pricing

This is a pay-per-result Actor at **$0.0005 per product row**. You only pay for products successfully extracted.

### Tips & Best Practices

1. **Start with `maxPages: 5`** to test before scaling up
2. **Use residential proxies** for stores with aggressive rate limiting
3. **Check store structure first** — most Shopify stores expose `/products.json` for fast access
4. **Filter by `available: true`** in post-processing to focus on in-stock items
5. **Schedule runs** for price monitoring — use Actor tasks with hourly or daily intervals

### Related Actors

- [Web Scraper](https://apify.com/apify/web-scraper) — general-purpose scraper for non-Shopify sites
- [Google Shopping Scraper](https://apify.com/sauerpower/google-shopping-scraper) — scrape Google Shopping results

### Categories

AI, Ecommerce, Automation

### SEO Keywords

shopify scraper, shopify data, shopify API alternative, shopify extraction, shopify automation, shopify data scraping, web scraping shopify, shopify lead generation, shopify data mining, shopify crawler, scrape shopify, shopify dataset, shopify web data, shopify data extractor, shopify scraping tool, automated shopify, shopify data collection, shopify intelligence

### For AI Agents & LLM Apps

This Actor is callable via the Apify MCP server and Apify API.

**Purpose:** Shopify Product Scraper \[$0.5/1K💰] | Catalog | Inventory

**Minimal working input:**

```json
{
  "startUrls": "..."
}
```

**Output fields:** url, title, description, metadata (varies by Actor)

**Behaviors:**

- Returns structured data in JSON format
- Supports proxy rotation for reliable extraction
- Output saved to Apify dataset

**Billing:** Pay-per-result pricing applies.

### Legal & Compliance Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Shopify Product Scraper.

This Actor only accesses publicly available pages and does not bypass authentication, login requirements, or CAPTCHA challenges.

Users are solely responsible for ensuring their use of this Actor complies with Shopify Product Scraper's Terms of Service and all applicable data-protection laws and regulations.

The developer assumes no liability for misuse of this tool or for any consequences resulting from data extraction activities.

### FAQ

#### Why use this Actor instead of building my own scraper?

Building and maintaining a web scraper requires handling anti-bot detection, proxy rotation, data parsing, and ongoing maintenance as websites change. This Actor provides all of that out of the box with reliable, tested extraction.

#### What data format does this Actor return?

The Actor returns structured JSON data. Results are stored in an Apify dataset which can be exported as JSON, CSV, XML, or Excel.

#### Can I use this Actor with scheduling?

Yes. You can create a task from this Actor and schedule it to run automatically at regular intervals for monitoring or data collection purposes.

#### Is there a way to filter or limit results?

Yes. Check the input parameters for options like maxItems, maxPages, or similar limiting fields to control how much data is extracted per run.

#### What happens if the Actor encounters a blocked page?

The Actor uses proxy rotation and retry logic to handle blocks. If a page cannot be accessed, the Actor will skip it and continue with the remaining items.

# Actor input Schema

## `startUrls` (type: `array`):

Unesi početne URL-ove Shopify prodavnica (npr. https://kith.com)

## `maxPages` (type: `integer`):

Koliko stranica sa proizvodima želiš skrejpati (svaka strana ima 250 artikala)

## `proxyConfiguration` (type: `object`):

Preporučeno: Koristi Residential Proxy za velike shopove

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://kith.com"
    }
  ],
  "maxPages": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://kith.com"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/shopify-product-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://kith.com" }] }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/shopify-product-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://kith.com"
    }
  ]
}' |
apify call ahmed_jasarevic/shopify-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/shopify-product-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PN06PiXfCHPTlEsuy/builds/jKDATuq4ibZPRRLhL/openapi.json
