# Shopify Product Search Scraper (`soft_alexist/shopify-product-search-scraper`) Actor

Scrape product data from any Shopify store with precision. This scraper collects product titles, descriptions, prices, variants, images, tags, and 10+ additional fields—perfect for competitive analysis, price monitoring, inventory tracking, and market research.

- **URL**: https://apify.com/soft\_alexist/shopify-product-search-scraper.md
- **Developed by:** [Soft Alexist](https://apify.com/soft_alexist) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Search Scraper: Extract Store Data Effortlessly

---

### What Is Shopify?

Shopify is the world's leading e-commerce platform, powering millions of online stores across fashion, electronics, wellness, and countless other industries. Each Shopify store contains hundreds or thousands of products with rich metadata—descriptions, pricing, variants, images, and vendor information. Manually extracting this data is tedious and error-prone. The **Shopify Product Search Scraper** automates this process, turning product pages into structured, analyzable datasets.

---

### Overview

The **Shopify Product Search Scraper** extracts comprehensive product information from any Shopify-powered store, capturing everything from basic details to variant options and media. It is designed for:

- **Competitors & market researchers** tracking product catalogs and pricing strategies
- **Price monitoring services** building dynamic pricing databases
- **E-commerce aggregators** collecting products for comparison platforms
- **Inventory analysts** monitoring stock levels and product updates
- **Dropshippers** sourcing products and studying supplier catalogs

Key strengths include support for any Shopify store, configurable item limits, graceful error handling via `ignore_url_failures`, and extraction of variant-level data for multi-option products.

---

### Input Format

The scraper accepts a JSON configuration object:

```json
{
  "urls": [
    "https://www.potgang.co.uk/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | Array | Store URLs to scrape (e.g., `https://example-store.com/`). Accepts one or multiple store URLs. |
| `max_items_per_url` | Integer | Maximum products to extract per URL (default: `20`). Adjust based on store size and your needs. |
| `ignore_url_failures` | Boolean | If `true`, scraper continues even if some URLs fail; if `false`, stops on first error. Recommended: `true` for bulk runs. |

> **Tip:** Paste store home URLs or category pages. The scraper automatically discovers and extracts all accessible products.

***

### Output Format

Each scraped product returns a detailed record with 13+ fields:

#### Product Identity & Metadata

| Field | Meaning |
|---|---|
| `ID` | Unique Shopify product identifier (internal database key) |
| `Title` | Product name as displayed in the store |
| `Handle` | URL-friendly slug for the product (e.g., `blue-running-shoes` in URL paths) |
| `Published At` | Timestamp when the product was published to the store |
| `Created At` | Timestamp when the product was first created in Shopify |
| `Updated At` | Latest modification timestamp; indicates recent changes to price, inventory, or details |

#### Description & Classification

| Field | Meaning |
|---|---|
| `Body HTML` | Full HTML-formatted product description as entered by the merchant; includes formatting, links, and embedded media |
| `Vendor` | Manufacturer or supplier name; useful for identifying private labels or brands |
| `Product Type` | Category assigned by the merchant (e.g., "T-Shirt", "Skincare", "Coffee Maker"); aids in filtering and analysis |
| `Tags` | Comma-separated labels assigned by the merchant for internal organization and search (e.g., "summer", "sale", "bestseller") |

#### Variants & Options

| Field | Meaning |
|---|---|
| `Variants` | Array of product variants (size, color, material, etc.); each variant may have unique SKU, price, weight, or inventory. Example: `[{"id": 123, "title": "Red / Small", "price": "29.99", "sku": "RED-S"}]` |
| `Options` | Product customization choices available to customers (e.g., `[{"name": "Color", "values": ["Red", "Blue"]}]`, `[{"name": "Size", "values": ["S", "M", "L"]}]`); defines which variant combinations exist |

#### Media

| Field | Meaning |
|---|---|
| `Images` | Array of product image URLs and metadata; typically includes thumbnail, full-size, and alt-text for accessibility. Example: `[{"src": "https://...", "alt": "Product front view"}]` |

***

### Example Output Record

Here's a sample scraped product in JSON format with annotations:

```json
{
  "id": 15575803199862,
  "title": "Cucumbers, Aubergines, Mint",
  "handle": "chocolate-chillies-orange-peppers-rosemary",
  "body_html": "",
  "published_at": "2026-06-30T17:19:17+01:00",
  "created_at": "2026-01-31T11:19:52+00:00",
  "updated_at": "2026-07-02T09:28:58+01:00",
  "vendor": "POT GANG",
  "product_type": "Box C - ONEOFF",
  "tags": [
    "box_recurring"
  ],
  "variants": [
    {
      "id": 57181432021366,
      "title": "Seeds + Pots + Compost + Grow Guides / No Pot Saucers",
      "option1": "Seeds + Pots + Compost + Grow Guides",
      "option2": "No Pot Saucers",
      "option3": null,
      "sku": "SUBBOX01_MAY26",
      "requires_shipping": true,
      "taxable": true,
      "featured_image": {
        "id": 82867764035958,
        "product_id": 15575803199862,
        "position": 1,
        "created_at": "2026-04-01T12:00:43+01:00",
        "updated_at": "2026-04-01T12:02:26+01:00",
        "alt": null,
        "width": 978,
        "height": 978,
        "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_PG_Box_Front_May-26.jpg?v=1775041346",
        "variant_ids": [
          57181432021366,
          57181432054134
        ]
      },
      "available": true,
      "price": "27.37",
      "grams": 1900,
      "compare_at_price": null,
      "position": 1,
      "product_id": 15575803199862,
      "created_at": "2026-01-31T11:19:52+00:00",
      "updated_at": "2026-07-02T09:28:58+01:00"
    },
    {
      "id": 57181432054134,
      "title": "Seeds + Pots + Compost + Grow Guides / + Saucers",
      "option1": "Seeds + Pots + Compost + Grow Guides",
      "option2": "+ Saucers",
      "option3": null,
      "sku": "SUBBOX01_SAUCERS_MAY26",
      "requires_shipping": true,
      "taxable": true,
      "featured_image": {
        "id": 82867764035958,
        "product_id": 15575803199862,
        "position": 1,
        "created_at": "2026-04-01T12:00:43+01:00",
        "updated_at": "2026-04-01T12:02:26+01:00",
        "alt": null,
        "width": 978,
        "height": 978,
        "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_PG_Box_Front_May-26.jpg?v=1775041346",
        "variant_ids": [
          57181432021366,
          57181432054134
        ]
      },
      "available": true,
      "price": "32.12",
      "grams": 1900,
      "compare_at_price": null,
      "position": 2,
      "product_id": 15575803199862,
      "created_at": "2026-01-31T11:19:52+00:00",
      "updated_at": "2026-07-02T09:28:58+01:00"
    },
    {
      "id": 57181432086902,
      "title": "Seeds + Compost + Grow Guides (No Pots) / No Pot Saucers",
      "option1": "Seeds + Compost + Grow Guides (No Pots)",
      "option2": "No Pot Saucers",
      "option3": null,
      "sku": "SUBBOX01_NOPOTS_MAY26",
      "requires_shipping": true,
      "taxable": true,
      "featured_image": {
        "id": 82867763970422,
        "product_id": 15575803199862,
        "position": 15,
        "created_at": "2026-04-01T12:00:43+01:00",
        "updated_at": "2026-04-01T12:02:26+01:00",
        "alt": null,
        "width": 1200,
        "height": 1200,
        "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_PG_NPB_Box_Front_May-26.jpg?v=1775041346",
        "variant_ids": [
          57181432086902
        ]
      },
      "available": true,
      "price": "21.42",
      "grams": 1900,
      "compare_at_price": null,
      "position": 3,
      "product_id": 15575803199862,
      "created_at": "2026-01-31T11:19:52+00:00",
      "updated_at": "2026-07-02T09:28:58+01:00"
    },
    {
      "id": 57181432119670,
      "title": "Seeds + Grow Guides (No Pots or Compost) / No Pot Saucers",
      "option1": "Seeds + Grow Guides (No Pots or Compost)",
      "option2": "No Pot Saucers",
      "option3": null,
      "sku": "SUBBOX01_JUSTSEEDS_MAY26",
      "requires_shipping": true,
      "taxable": true,
      "featured_image": {
        "id": 82867764068726,
        "product_id": 15575803199862,
        "position": 8,
        "created_at": "2026-04-01T12:00:43+01:00",
        "updated_at": "2026-04-01T12:02:26+01:00",
        "alt": null,
        "width": 1200,
        "height": 1200,
        "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_Pot-Gang_MU_Seed-Packs_01-Trio-Sets_V2.0_May_26.jpg?v=1775041346",
        "variant_ids": [
          57181432119670
        ]
      },
      "available": true,
      "price": "13.08",
      "grams": 1900,
      "compare_at_price": null,
      "position": 4,
      "product_id": 15575803199862,
      "created_at": "2026-01-31T11:19:52+00:00",
      "updated_at": "2026-07-02T09:28:58+01:00"
    }
  ],
  "images": [
    {
      "id": 82867764035958,
      "created_at": "2026-04-01T12:00:43+01:00",
      "position": 1,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [
        57181432021366,
        57181432054134
      ],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_PG_Box_Front_May-26.jpg?v=1775041346",
      "width": 978,
      "height": 978
    },
    {
      "id": 82855989150070,
      "created_at": "2026-03-31T18:00:03+01:00",
      "position": 2,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/CUCUMBER.jpg?v=1775041346",
      "width": 3024,
      "height": 3024
    },
    {
      "id": 82855995408758,
      "created_at": "2026-03-31T18:01:33+01:00",
      "position": 3,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/AUBERGINE_d82b881d-8db2-45fb-a19f-fc73888648af.jpg?v=1775041346",
      "width": 1920,
      "height": 1920
    },
    {
      "id": 82855989117302,
      "created_at": "2026-03-31T18:00:03+01:00",
      "position": 4,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/MINT_99cc3f7a-6049-41b3-8f5f-7486a42fcd7d.jpg?v=1775041346",
      "width": 3024,
      "height": 3024
    },
    {
      "id": 77639414808950,
      "created_at": "2025-09-01T14:33:28+01:00",
      "position": 5,
      "updated_at": "2026-03-31T18:26:30+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/PG_Brand_Box-Subscription-Box-Contents-2-2048x2048_jpg_f4182d1f-f6cf-45b8-9c0c-535170e0a313.png?v=1774977990",
      "width": 2048,
      "height": 2048
    },
    {
      "id": 82558063870326,
      "created_at": "2026-03-03T12:13:08+00:00",
      "position": 6,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/PG_StudioShoot_1x1_0006_LOP-260113-0403.jpg?v=1775041346",
      "width": 1200,
      "height": 1200
    },
    {
      "id": 82867764003190,
      "created_at": "2026-04-01T12:00:43+01:00",
      "position": 7,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_Pot-Gang_MU_Grow-Guides_V2.0_May_26.jpg?v=1775041346",
      "width": 1200,
      "height": 1200
    },
    {
      "id": 82867764068726,
      "created_at": "2026-04-01T12:00:43+01:00",
      "position": 8,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [
        57181432119670
      ],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_Pot-Gang_MU_Seed-Packs_01-Trio-Sets_V2.0_May_26.jpg?v=1775041346",
      "width": 1200,
      "height": 1200
    },
    {
      "id": 82867764101494,
      "created_at": "2026-04-01T12:00:43+01:00",
      "position": 9,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_PG_Box_Multi_May-26.jpg?v=1775041346",
      "width": 1200,
      "height": 1200
    },
    {
      "id": 82867763937654,
      "created_at": "2026-04-01T12:00:43+01:00",
      "position": 10,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_PG_Pots-and-stickers_May_26.jpg?v=1775041346",
      "width": 1200,
      "height": 1200
    },
    {
      "id": 82558239965558,
      "created_at": "2026-03-03T12:19:36+00:00",
      "position": 11,
      "updated_at": "2026-03-31T18:26:37+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/PG_StudioShoot_1x1_0029_LOP-260113-0222_7530b0d1-fc48-41ca-9d21-db67383f1fa8.jpg?v=1774977997",
      "width": 1200,
      "height": 1200
    },
    {
      "id": 77636242964854,
      "created_at": "2025-09-01T10:58:24+01:00",
      "position": 12,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/Photo-23copy.jpg?v=1775041346",
      "width": 4672,
      "height": 4672
    },
    {
      "id": 77636243030390,
      "created_at": "2025-09-01T10:58:24+01:00",
      "position": 13,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/Photo.jpg?v=1775041346",
      "width": 2693,
      "height": 2693
    },
    {
      "id": 77636242932086,
      "created_at": "2025-09-01T10:58:24+01:00",
      "position": 14,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/Photo-10.jpg?v=1775041346",
      "width": 3072,
      "height": 3072
    },
    {
      "id": 82867763970422,
      "created_at": "2026-04-01T12:00:43+01:00",
      "position": 15,
      "updated_at": "2026-04-01T12:02:26+01:00",
      "product_id": 15575803199862,
      "variant_ids": [
        57181432086902
      ],
      "src": "https://cdn.shopify.com/s/files/1/0414/6295/6193/files/LOP_PG_NPB_Box_Front_May-26.jpg?v=1775041346",
      "width": 1200,
      "height": 1200
    }
  ],
  "options": [
    {
      "name": "Box Type",
      "position": 1,
      "values": [
        "Seeds + Pots + Compost + Grow Guides",
        "Seeds + Compost + Grow Guides (No Pots)",
        "Seeds + Grow Guides (No Pots or Compost)"
      ]
    },
    {
      "name": "Saucer",
      "position": 2,
      "values": [
        "No Pot Saucers",
        "+ Saucers"
      ]
    }
  ],
  "from_url": "https://www.potgang.co.uk/products.json?limit=50&page=1"
}
```

***

### How to Use

1. **Identify store URL(s)** — Navigate to the Shopify store homepage (e.g., `https://example-store.com/`). Copy the base domain or category page URL.

2. **Configure input** — Paste store URLs into the `urls` array. For multiple stores, add each on a separate line.

3. **Set limits** — Adjust `max_items_per_url` based on your needs:
   - Small sample: `10–20` items
   - Medium catalog: `50–100` items
   - Full inventory: `200+` items (may take longer)

4. **Enable error handling** — Keep `ignore_url_failures: true` to skip broken or inaccessible URLs without stopping the run.

5. **Run & export** — Start the scraper and download results as JSON, CSV, or Excel. Process the data in your tool of choice.

**Common tips:**

- For category-specific products, use the category page URL (e.g., `https://store.com/collections/shoes/`)
- The scraper respects `robots.txt` and server rate limits to avoid overload
- Large stores (1,000+ products) may require multiple runs or pagination

***

### Use Cases & Business Value

**Price Monitoring & Competitive Intelligence**\
Track competitor pricing in real time, identify market trends, and adjust your own strategy based on data-driven insights.

**Product Aggregation & Comparison**\
Feed Shopify product data into price comparison sites, deal aggregators, or internal marketplaces.

**Inventory & Supply Chain**\
Monitor stock levels, variants, and product updates across multiple supplier stores; trigger reordering or alerts.

**SEO & Content Analysis**\
Extract product titles, descriptions, and tags to analyze keyword strategies and inform your own content.

**Market Research**\
Build datasets of product catalogs, pricing, and vendor information for academic or commercial analysis.

The scraper transforms hours of manual browsing into seconds of automated extraction, enabling data-driven decisions at scale.

***

### Conclusion

The **Shopify Product Search Scraper** is the essential tool for anyone needing structured e-commerce data. Whether you're tracking competitors, building a price monitoring service, or conducting market research, this scraper delivers complete product records—titles, variants, images, pricing, and more—ready for analysis. Start scraping today and unlock insights hidden in your competitors' stores.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the any Shopify store urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.potgang.co.uk/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.potgang.co.uk/"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/shopify-product-search-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 = {
    "urls": ["https://www.potgang.co.uk/"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

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

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.potgang.co.uk/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call soft_alexist/shopify-product-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=soft_alexist/shopify-product-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Shopify Product Search Scraper",
        "description": "Scrape product data from any Shopify store with precision. This scraper collects product titles, descriptions, prices, variants, images, tags, and 10+ additional fields—perfect for competitive analysis, price monitoring, inventory tracking, and market research.",
        "version": "0.0",
        "x-build-id": "QqFGrxpZbvgH3Stug"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/soft_alexist~shopify-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-soft_alexist-shopify-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/soft_alexist~shopify-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-soft_alexist-shopify-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/soft_alexist~shopify-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-soft_alexist-shopify-product-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the any Shopify store urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the any Shopify store urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
