# Megekko Scraper (`unfenced-group/megekko-scraper`) Actor

Scrape Megekko.nl product data: name, brand, price, stock, EAN, MPN, full specifications and images. Category or product URL input.

- **URL**: https://apify.com/unfenced-group/megekko-scraper.md
- **Developed by:** [Unfenced Group](https://apify.com/unfenced-group) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.79 / 1,000 products

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.

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

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

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

# README

## Megekko Scraper

![Megekko Scraper](https://api.apify.com/v2/key-value-stores/lJlifu6C8YQfZMPKE/records/megekko-scraper)

Scrape product data from [Megekko.nl](https://www.megekko.nl), the Dutch electronics and computer hardware retailer. Get structured product listings — name, brand, price, stock, EAN/GTIN, manufacturer part number, specifications, and images — straight from any category or product page.

This is the most complete Megekko scraper available: every field the site exposes, from list-page essentials to the full grouped specification table on each product page.

### What it does

- **Scrape any category** — paste a category URL (e.g. graphics cards, laptops, processors) and the scraper paginates through every product.
- **Scrape specific products** — paste product URLs directly.
- **Optional deep detail** — turn on `fetchDetails` to pull the full specification table, product description, and complete image gallery from each product page.

### How to use

You can scrape in three ways — by keyword, by category URL, or by direct product URL. Combine them or use any one on its own.

1. **Search by keyword** — enter a term under **Search keyword** (e.g. `samsung 990 pro`, `rtx 4070`, `ddr5`). Megekko is searched across all categories and results are paginated automatically.
2. **Category or product URLs** — add one or more Megekko category or product URLs under **Category or product URLs**.
3. Set **Max results** (use 0 for unlimited).
4. Turn on **Fetch detail pages** if you want full specifications, descriptions, and image galleries.
5. Run.

Example category URL:
`https://www.megekko.nl/Computer/Componenten/Videokaarten/Nvidia-Videokaarten`

### Filtering & sorting

Narrow results without post-processing:

- **Sort order** — relevance, price low to high, price high to low, newest, or biggest discount. Applies to category listings; keyword search always uses relevance. Price sort plus a Max results limit is the cheapest way to grab the lowest- or highest-priced items.
- **Minimum / maximum price** — keep only products within a price band, in euros.
- **In stock only** — drop unavailable products.
- **Brands** — keep only the brands you list (e.g. Samsung, Corsair).
- **Minimum wishlist count** — a popularity floor, using how many shoppers saved the product.
- **Exclude keywords** — drop products whose name contains a term (e.g. refurbished, open box).

Brand and stock status come from the detail page, so turn on **Fetch detail pages** when filtering on those. Price, wishlist, and keyword filters work on listings alone.

### Output

Every product returns the fields below. List-page fields are always present. The detail fields are populated only when **Fetch detail pages** is enabled.

#### Always present

| Field | Type | Description |
|---|---|---|
| productId | string | Megekko internal product ID |
| sku | string | Stock keeping unit (same as product ID) |
| gtin13 | string | EAN/GTIN-13 barcode |
| mpn | string | Manufacturer part number |
| name | string | Full product name |
| brand | string | Brand or manufacturer |
| url | string | Product page URL |
| price | number | Current price in euros |
| priceText | string | Price as shown on site (e.g. "629,-") |
| currency | string | Currency code (EUR) |
| condition | string | Product condition (e.g. NewCondition) |
| availability | string | Stock state (e.g. InStock) |
| inStock | boolean | True when the product is in stock |
| priceValidUntil | string | Date the listed price is valid until |
| deliveryText | string | Delivery line shown on the card (e.g. stock and lead time) |
| wishlistCount | number | Number of customers who wishlisted the product |
| thumbnail | string | Product thumbnail image URL |
| categoryId | string | Megekko category ID from the product URL |
| keySpecs | object | Headline specifications shown on the list card |
| scrapedAt | string | Timestamp when the product was scraped (ISO 8601) |
| `descriptionMarkdown` | string | Description in Markdown/plain text. |

#### With `fetchDetails: true`

| Field | Type | Description |
|---|---|---|
| description | string | Full product description |
| specs | object | Complete specification table, grouped by section (Design, Performance, Ports, etc.) |
| specCount | number | Total number of specification rows extracted |
| images | array | All product gallery image URLs |
| breadcrumb | array | Category breadcrumb path |

### Notes

- Prices and stock are read live at run time and reflect what the site shows at that moment.
- The scraper reads publicly available product data only. It does not collect personal data.

### Pricing

$0.99 per 1,000 results. Volume discounts apply automatically based on your Apify subscription, down to $0.69 per 1,000 results. You only pay for results.

***

### Need a custom scraper?

**[Unfenced Group](https://www.unfencedgroup.nl)** builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

**Get in touch:** [www.unfencedgroup.nl](https://www.unfencedgroup.nl)

# Actor input Schema

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

Megekko category/listing URLs (e.g. https://www.megekko.nl/Computer/Componenten/Videokaarten/Nvidia-Videokaarten) or direct product URLs. Category URLs are paginated automatically.

## `searchKeyword` (type: `string`):

Search Megekko by keyword (e.g. "samsung 990 pro", "rtx 4070", "ddr5"). Returns matching products across all categories, paginated automatically. Use this instead of, or alongside, category/product URLs.

## `sort` (type: `string`):

Server-side sort for category/keyword listings. "Price ascending" with a Max results limit is the cheapest way to grab the lowest-priced items.

## `minPrice` (type: `integer`):

Only return products priced at or above this amount, in euros. Leave empty for no lower bound.

## `maxPrice` (type: `integer`):

Only return products priced at or below this amount, in euros. Leave empty for no upper bound.

## `inStockOnly` (type: `boolean`):

Keep only products that are currently available. Stock status is read from the detail page, so this works best with "Fetch detail pages" enabled.

## `brands` (type: `array`):

Only return products from these brands (case-insensitive, e.g. "Samsung", "Corsair"). Brand is read from the detail page. Leave empty for all brands.

## `minWishlistCount` (type: `integer`):

Only return products saved to at least this many wishlists — a popularity floor. Available on category listings; null on keyword search.

## `excludeKeywords` (type: `array`):

Drop products whose name contains any of these terms (case-insensitive, e.g. "refurbished", "open box").

## `maxResults` (type: `integer`):

Maximum number of products to return. Set 0 for unlimited.

## `fetchDetails` (type: `boolean`):

Fetch each product detail page for the full specification table, description, and image gallery. Slower but richer.

## `perPage` (type: `integer`):

How many products to request per category page (1-250). Higher is faster.

## Actor input object example

```json
{
  "startUrls": [],
  "searchKeyword": "",
  "sort": "relevance",
  "inStockOnly": false,
  "brands": [],
  "excludeKeywords": [],
  "maxResults": 100,
  "fetchDetails": false,
  "perPage": 100
}
```

# Actor output Schema

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

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("unfenced-group/megekko-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 = { "maxResults": 100 }

# Run the Actor and wait for it to finish
run = client.actor("unfenced-group/megekko-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 '{
  "maxResults": 100
}' |
apify call unfenced-group/megekko-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/n3083WBsMYkuB4hyK/builds/7Lbm0y5RpaYNFWtON/openapi.json
