# Skroutz Product Scraper (`scraping_crew/skroutz-scraper`) Actor

Scrape Skroutz product data including prices, old prices, brands, EANs, categories, images, specifications, ratings, reviews and sellers. Monitor Greek e-commerce products, track prices, analyze competitors and build structured product datasets for AI and automation.

- **URL**: https://apify.com/scraping\_crew/skroutz-scraper.md
- **Developed by:** [Scraping Crew](https://apify.com/scraping_crew) (community)
- **Categories:** E-commerce, Automation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 result items

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

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

### What does Skroutz Product Scraper do?

**Skroutz Product Scraper** extracts **full product data from [Skroutz.gr](https://www.skroutz.gr)** — Greece's largest price-comparison marketplace. Give it one or more category URLs and it returns clean, structured records for every product: **current price, old/base price, specifications, brand, EAN barcodes, category path, and image galleries**. Run it on demand or on a schedule through the Apify platform, with API access, proxy rotation, integrations, and monitoring built in.

It is fast and lightweight, returning clean results even across large categories. Repeat runs are cheaper too — already-seen products are refreshed for the latest prices instead of being collected from scratch.

### Features

- 💶 Current price **and** old/base price for discount tracking
- 📄 Full technical specifications (key/value pairs)
- 🏷️ Brand and EAN barcode extraction (if available)
- 🖼️ Complete product image galleries
- 🗂️ Category breadcrumb path per product
- 🔄 Persistent product cache — repeat runs price-update instead of re-scraping
- 🎯 Exact `maxItems` cap for predictable, cost-controlled runs
- 📊 Export as JSON, CSV, Excel, or via API
- 🤖 Ready for AI, n8n, Zapier, and RAG workflows
- 🌐 Optional Apify Proxy support

### Why use Skroutz Product Scraper?

- **Price monitoring & repricing** — track competitor prices and discounts across whole categories.
- **Market research** — analyse brands, assortments, and specifications at scale.
- **Catalog enrichment** — pull structured specs, images, and barcodes to enrich your own product feeds.
- **AI & analytics** — feed clean JSON into dashboards, RAG pipelines, or LLM workflows.

### How to use Skroutz Product Scraper

1. Open the Actor in Apify Console.
2. Paste one or more Skroutz category URLs into **Start URLs** (e.g. `https://www.skroutz.gr/c/663/Gamepads.html`).
3. Optionally enable **Extract product descriptions** and set **Max items**.
4. Optionally configure a proxy (a Greek/EU proxy is recommended).
5. Click **Start** and download the results from the **Output** tab.

### Input

| Field | Type | Description |
| --- | --- | --- |
| `startUrls` | array | Skroutz category / listing URLs to scrape. |
| `getDescription` | boolean | Also extract the product summary and full description text. Default `false`. |
| `maxItems` | integer | Stop after this many products. `0` = unlimited. Default `10`. |
| `proxyConfiguration` | object | Proxy settings used to hide the scraper's origin. |

### Output

Each scraped product is stored as one dataset item. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
  "sku": 12345678,
  "name": "Sony DualSense Wireless Controller",
  "brand": "Sony",
  "productUrl": "https://www.skroutz.gr/s/12345678/Sony-DualSense.html",
  "listingUrl": "https://www.skroutz.gr/c/663/Gamepads.html",
  "category": ["Gaming", "Gamepads"],
  "price": "59.9",
  "oldPrice": "74.9",
  "eans": ["1234567890123"],
  "images": [
    "https://a.scdn.gr/images/sku_main_images/012345/12345678/large.jpg"
  ],
  "specsTable": [
    { "key": "Connection", "value": "Wireless" },
    { "key": "Platform", "value": "PlayStation 5" }
  ]
}
````

### Data table

| Field | Description                                          |
| --- |------------------------------------------------------|
| `sku` | Skroutz internal product id.                         |
| `name` | Product title.                                       |
| `brand` | Manufacturer / brand.                                |
| `productUrl` | Canonical product page URL.                          |
| `listingUrl` | Category URL the product was found on.               |
| `category` | Category breadcrumb path.                            |
| `price` | Current selling price.                               |
| `oldPrice` | Previous / base price when discounted.               |
| `eans` | EAN barcode(s). (If set by skroutz)                  |
| `images` | Product image URLs.                                  |
| `specsTable` | Technical specifications (key/value pairs).          |
| `description` | Summary + full description text (only when enabled). |

### Pricing / Cost estimation

The Actor runs on the Apify platform and consumes compute units based on run time and memory. Runs are efficient, and repeat runs cost less because already-seen products are refreshed for the latest prices rather than collected again. Use **Max items** to cap the scope — and cost — of any run.

### Free User Limitations

**No restrictions for free users.** The full dataset — including prices, specifications, images, EANs, and product descriptions — is available on every plan. `maxItems` is a normal control available to everyone.

### Tips and advanced options

- Provide **narrow category URLs** rather than the whole site to keep runs fast and focused.
- Leave **Extract product descriptions** off unless you need the long text — it fetches the same page but returns lighter records.
- Use a **Greek/EU proxy** for the most reliable results, since Skroutz serves localized content.
- Schedule the Actor to run periodically; the product cache makes subsequent runs cheaper by updating prices only.

### FAQ, disclaimers, and support

**Why are some fields empty?** Not every product lists every field (e.g. some products have no EAN, brand, or specs); those fields are returned empty for that item.

**Support & feedback:** Use the **Issues** tab to report problems or request features. Custom scraping solutions are available on request.

### SEO Keywords

Skroutz scraper, Skroutz.gr scraper, Skroutz product scraper, Skroutz price scraper, scrape Skroutz, Greek marketplace scraper, Greece price comparison scraper, product data extraction Greece, price monitoring Greece, ecommerce scraper Greece, Skroutz specifications scraper, Skroutz EAN scraper, Skroutz images scraper, competitor price tracking, repricing data, Apify Skroutz, product catalog scraper, retail price scraping, Skroutz category scraper

# Actor input Schema

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

Skroutz category / listing URLs to scrape (e.g. https://www.skroutz.gr/c/663/Gamepads.html).

## `getDescription` (type: `boolean`):

If enabled, the scraper also extracts the product summary and full description text from each product page.

## `maxItems` (type: `integer`):

Stop the run after this many products have been scraped. Set to 0 for unlimited.

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

Proxy servers used by the scraper to hide its origin. Skroutz is a Greek store, so a Greek/EU proxy is recommended.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.skroutz.gr/c/663/Gamepads.html"
    },
    {
      "url": "https://www.skroutz.gr/c/1270/thermansi-klimatismos.html"
    },
    {
      "url": "https://www.skroutz.gr/c/1800/tileoraseis-kai-aksesouar.html"
    },
    {
      "url": "https://www.skroutz.gr/c/5532/tools-garden.html"
    }
  ],
  "getDescription": false,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Structured product records (prices, specs, images, EANs) collected during the run.

# 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://www.skroutz.gr/c/663/Gamepads.html"
        },
        {
            "url": "https://www.skroutz.gr/c/1270/thermansi-klimatismos.html"
        },
        {
            "url": "https://www.skroutz.gr/c/1800/tileoraseis-kai-aksesouar.html"
        },
        {
            "url": "https://www.skroutz.gr/c/5532/tools-garden.html"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraping_crew/skroutz-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://www.skroutz.gr/c/663/Gamepads.html" },
        { "url": "https://www.skroutz.gr/c/1270/thermansi-klimatismos.html" },
        { "url": "https://www.skroutz.gr/c/1800/tileoraseis-kai-aksesouar.html" },
        { "url": "https://www.skroutz.gr/c/5532/tools-garden.html" },
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scraping_crew/skroutz-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 '{
  "startUrls": [
    {
      "url": "https://www.skroutz.gr/c/663/Gamepads.html"
    },
    {
      "url": "https://www.skroutz.gr/c/1270/thermansi-klimatismos.html"
    },
    {
      "url": "https://www.skroutz.gr/c/1800/tileoraseis-kai-aksesouar.html"
    },
    {
      "url": "https://www.skroutz.gr/c/5532/tools-garden.html"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scraping_crew/skroutz-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Skroutz Product Scraper",
        "description": "Scrape Skroutz product data including prices, old prices, brands, EANs, categories, images, specifications, ratings, reviews and sellers. Monitor Greek e-commerce products, track prices, analyze competitors and build structured product datasets for AI and automation.",
        "version": "0.1",
        "x-build-id": "WYrw4qwkO5GgtQrDz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraping_crew~skroutz-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraping_crew-skroutz-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/scraping_crew~skroutz-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraping_crew-skroutz-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/scraping_crew~skroutz-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraping_crew-skroutz-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": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Skroutz category / listing URLs to scrape (e.g. https://www.skroutz.gr/c/663/Gamepads.html).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "getDescription": {
                        "title": "Extract product descriptions",
                        "type": "boolean",
                        "description": "If enabled, the scraper also extracts the product summary and full description text from each product page.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop the run after this many products have been scraped. Set to 0 for unlimited.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy servers used by the scraper to hide its origin. Skroutz is a Greek store, so a Greek/EU proxy is recommended.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
