# Fruugoschweiz Product Search Scraper (`stealth_mode/fruugoschweiz-product-search-scraper`) Actor

Scrape product listings from Fruugo Switzerland search results. Collect titles, prices, discounts, images, brands, and seller information across 17 fields — perfect for price monitoring, market research, and competitive analysis.

- **URL**: https://apify.com/stealth\_mode/fruugoschweiz-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (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

from $2.00 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 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

## Fruugo Switzerland Product Search Scraper: Extract E-Commerce Data

---

### What Is Fruugo Switzerland?

Fruugo Switzerland (fruugoschweiz.com) is a major Swiss e-commerce marketplace aggregating products from multiple sellers across fashion, beauty, electronics, and home categories. The platform features thousands of listings with dynamic pricing, seller comparisons, and promotional discounts. Manually extracting product data from search results is tedious and error-prone — the **Fruugo Switzerland Product Search Scraper** automates this, capturing structured product information at scale.

---

### Overview

The **Fruugo Switzerland Product Scraper** extracts product listings from search result pages, transforming unstructured marketplace data into clean, queryable records. It is designed for:

- **Price monitoring services** tracking competitor pricing and discounts
- **Market researchers** analyzing product availability and pricing trends
- **E-commerce aggregators** feeding product data into comparison tools
- **Business intelligence teams** benchmarking market conditions
- **Dropshippers and resellers** identifying products and supplier options

Key features include multi-page crawling, configurable item limits, robust error handling, and comprehensive product metadata including seller information and discount calculations.

---

### Input Format

The scraper accepts a JSON configuration object specifying which search pages and how many products to collect:

```json
{
  "urls": [
    "https://www.fruugoschweiz.com/cosmetiques-parfums-et-eaux-de-cologne/c-WS88371544?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

#### Input Parameters Explained

| Field | Type | Description |
|---|---|---|
| `urls` | Array of strings | Direct links to Fruugo Switzerland product search result pages (category or search query pages). Include pagination parameters (e.g., `?page=2`) if needed. |
| `max_items_per_url` | Integer | Maximum number of products to extract per URL. Range: typically 1–200+. Use `200` to capture full pagination or lower values for quick samples. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues if a URL fails to load; if `false`, the entire run stops. Set to `true` for reliability in bulk operations. |

**Input Tips:**

- URLs should be search result pages showing multiple products (e.g., category pages, filtered searches)
- The `page` parameter controls pagination within Fruugo's interface
- Mix URLs from different categories for diverse product types
- Test with `max_items_per_url: 20` first to verify output quality before scaling

***

### Output Format

#### Example Output Record

```json
{
  "image_url": "https://img.fruugo.com/product/3/26/2424911263_0340_0340.jpg",
  "title": "Parfum pour femme LABOMBA Butterfly 80ml Moyen-Orient Dubaï Arabe Longue tenue",
  "price": "16.95 CHF",
  "normal_price": "30.95 CHF",
  "price_discount": "14.00 CHF",
  "product_page_link": {
    "text": "Parfum pour femme LABOMBA Butterfly 80ml Moyen-Orient Dubaï Arabe Longue tenue",
    "href": "/parfum-pour-femme-labomba-butterfly-80ml-moyen-orient-dubai-arabe-longue-tenue/p-482547973"
  },
  "branded": false,
  "product_id": 482547973,
  "category": "WS88371544",
  "brand": "Unbranded",
  "numeric_total_discount": 14,
  "numeric_total_for_analytics": 15.68,
  "eur_numeric_total_for_analytics": 17.95,
  "english_categories": [
    "Health & Beauty",
    "Personal Care",
    "Cosmetics",
    "Perfume & Cologne"
  ],
  "unique_seller_count": 1,
  "original_title": "LABOMBA Butterfly Women's Perfume 80ml Middle East Dubai Arab Long Lasting Fragrance",
  "other_sellers_link_enabled": false,
  "from_url": "https://www.fruugoschweiz.com/cosmetiques-parfums-et-eaux-de-cologne/c-WS88371544?page=2"
}
```

Each product extracted returns a record with 17 fields covering pricing, identifiers, categorization, and seller data:

#### Product Identification

| Field | Meaning | Example |
|---|---|---|
| `Product ID` | Unique Fruugo identifier for the product | `"FG-SKU-123456"` |
| `Title` | Product name as listed on Fruugo | `"Premium Face Moisturizer 50ml"` |
| `Original Title` | Unmodified title from the seller | `"Original Premium Face Moisturizer 50ml"` |
| `Product Page Link` | Direct URL to the product detail page | `"https://www.fruugoschweiz.com/product/..."` |

#### Pricing & Discounts

| Field | Meaning | Example |
|---|---|---|
| `Price` | Current selling price in CHF | `"29.99"` |
| `Normal Price` | Regular/list price before discount | `"49.99"` |
| `Price Discount` | Discount amount displayed to customers | `"-20.00 CHF"` or `"-40%"` |
| `Numeric Total Discount` | Calculated discount as a number (for analysis) | `20.00` |
| `Numeric Total For Analytics` | Price value formatted for analytics (CHF) | `29.99` |
| `EUR Numeric Total For Analytics` | Price converted to EUR for cross-market comparison | `28.50` |

#### Visuals

| Field | Meaning | Example |
|---|---|---|
| `Image URL` | Primary product image URL | `"https://cdn.fruugo.com/images/..."` |

#### Categorization

| Field | Meaning | Example |
|---|---|---|
| `Category` | Fruugo category path | `"Beauty > Skincare > Face Care"` |
| `English Categories` | Categories in English (standardized) | `"["Beauty", "Skincare", "Moisturizers"]"` |
| `Brand` | Product brand name | `"Dermatica"` |
| `Branded` | Boolean flag: product is branded (true) or generic (false) | `true` |

#### Seller Information

| Field | Meaning | Example |
|---|---|---|
| `Unique Seller Count` | Number of different sellers offering this product | `3` |
| `Other Sellers Link Enabled` | Whether comparison view is available | `true` |

***

### How to Use

1. **Identify search URLs** — Navigate to fruugoschweiz.com, apply filters or search for products, and copy the result page URL. Include pagination if scraping multiple pages.

2. **Build your input** — Create a JSON config:

```json
   {
     "urls": ["https://www.fruugoschweiz.com/search?q=makeup&page=1"],
     "max_items_per_url": 100,
     "ignore_url_failures": true
   }
```

3. **Configure limits** — Set `max_items_per_url` based on your needs:
   - `20–50` for quick samples
   - `100–200` for comprehensive category snapshots

4. **Run the scraper** — Execute and monitor the progress log.

5. **Export and analyze** — Download results as JSON, CSV, or Excel. Use the `Numeric Total For Analytics` fields for price comparisons.

**Best Practices:**

- Use `ignore_url_failures: true` to prevent interruptions on unstable connections
- Test URLs individually first to confirm they return product listings
- For large-scale operations, scrape during off-peak hours
- Monitor `Unique Seller Count` to identify products with competitive pricing options

***

### Use Cases & Business Value

- **Price monitoring:** Track competitor pricing on bestsellers; alert on discount changes
- **Market intelligence:** Analyze pricing trends across product categories and seasons
- **Competitive benchmarking:** Compare your offerings against marketplace averages
- **Inventory sourcing:** Identify dropship-friendly products with multiple sellers
- **Data enrichment:** Append market pricing data to internal product catalogs

The Fruugo Switzerland Product Scraper reduces hours of manual data collection to minutes, enabling real-time market insights and data-driven decision-making.

***

### Conclusion

The **Fruugo Switzerland Product Search Scraper** is an efficient solution for e-commerce professionals needing structured product and pricing data. With 17 comprehensive output fields and flexible configuration, it scales from quick spot checks to large-scale market research. Extract, analyze, and act on marketplace data with confidence.

# Actor input Schema

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

Add the URLs of the product search list 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.fruugoschweiz.com/cosmetiques-parfums-et-eaux-de-cologne/c-WS88371544?page=2"
  ],
  "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.fruugoschweiz.com/cosmetiques-parfums-et-eaux-de-cologne/c-WS88371544?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/fruugoschweiz-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.fruugoschweiz.com/cosmetiques-parfums-et-eaux-de-cologne/c-WS88371544?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/fruugoschweiz-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.fruugoschweiz.com/cosmetiques-parfums-et-eaux-de-cologne/c-WS88371544?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/fruugoschweiz-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Fruugoschweiz Product Search Scraper",
        "description": "Scrape product listings from Fruugo Switzerland search results. Collect titles, prices, discounts, images, brands, and seller information across 17 fields — perfect for price monitoring, market research, and competitive analysis.",
        "version": "0.0",
        "x-build-id": "63JttchPvgXa7yXtS"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~fruugoschweiz-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-fruugoschweiz-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/stealth_mode~fruugoschweiz-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-fruugoschweiz-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/stealth_mode~fruugoschweiz-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-fruugoschweiz-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 product search list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the product search list 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
