# German Price Tracker (`m3web/german-price-tracker`) Actor

EAN-Based Price Scraper for Germany – Get real-time product prices from multiple retailers for smart pricing  decisions.

- **URL**: https://apify.com/m3web/german-price-tracker.md
- **Developed by:** [M3Web](https://apify.com/m3web) (community)
- **Categories:** E-commerce, Automation, Lead generation
- **Features:** Full permissions
- **Stats:** 41 total users, 0 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.30 / 1,000 results

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

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### German Price Tracker

**Smart Pricing Insights with EAN-Based Scraping** - Ideal for sellers in the German market, this scraper eliminates the need for website URLs. Instead, it works with EAN (GTIN) numbers, retrieving real-time pricing data from numerous retailers - empowering businesses with accurate market analysis for smarter pricing decisions.

### How it works

This scraper simplifies price comparison for sellers in the German market.

✅ **Input EAN (GTIN) Numbers** instead of manually collecting website links.\
✅ **Automated Price Retrieval** gathers real-time seller prices from multiple sources.\
✅ **Comprehensive Market Insights** help businesses optimize pricing strategies efficiently.

### Getting Started

#### Entering EAN Numbers

In the **"EAN Numbers for Categories"** section, paste **EAN (GTIN) numbers**, separated by:

- A **space** (`8806084530097 8806095398655 8806095474939 8806084497697`)
- A **comma** (`8806084530097,8806095398655,8806095474939,8806084497697`)
- A **comma and space** (`8806084530097, 8806095398655, 8806095474939, 8806084497697`)

⚠ **Important:** Don't put a comma after the last EAN number.

#### Defining Categories

In the **"Category Names"** section, enter the names of product categories (e.g., **TVs, Smartphones, etc.**). Each category name matches the EAN numbers entered in the respective field above.

##### Grouping EAN Numbers

- Creating multiple category fields is **optional** - you can group EANs by category if needed.
- If you don't want to name categories, just enter **at least one character** in a single **"Category Names"** input field (e.g., `" "` or `"/"`).

#### Navigating the Input Fields

The **EAN Numbers** input field is just a **single line**, so when you paste a long list of numbers, you may not see them all. Don't worry - every EAN is there. Click **"Bulk Edit"** or **"JSON"** to review the full list.

#### Starting the Scraper

Once your product list is ready:\
✅ Click **"Save"** to store the input.\
✅ Click **"Start"** to begin price scraping.

This setup lets you efficiently retrieve real-time pricing data. 🚀

### Results

#### Sample Output

Below is a sample output you can expect from the **German Price Tracker:**

##### **Single Product EAN (GTIN) Number**

```json
{
  "ean": "8806095474939",
  "lowestPrice": 699,
  "category": "tv",
  "offers": [
    {
      "productTitle": "Samsung U75DU7179 Crystal UHD 4K DU7179 Fernseher 75 Zoll",
      "price": 699,
      "currency": "€",
      "shipment": "0,00 €*",
      "seller": "golden-media",
      "marketplace": "ebay.de"
    },
    {
      "productTitle": "SAMSUNG LED-Fernseher, F (A-G), schwarz, 75, Fernseher, Crystal UHD, Q-Symphony, Dolby Surround Sound, Triple Tuner, Smart-Hub, Topseller",
      "price": 745,
      "currency": "€",
      "shipment": "39,95 €*",
      "seller": "baur versand",
      "marketplace": "/"
    },
    {
      "productTitle": "Samsung Crystal UHD 4K DU7179 Fernseher 75 Zoll, TV mit PurColor, 4K Upscaling, Crystal Prozessor, Smart TV, GU75DU7179UXZG, Deutsches Modell [2024]",
      "price": 749,
      "currency": "€",
      "shipment": "siehe Website",
      "seller": "amazon.de",
      "marketplace": "/"
    },
    {
      "productTitle": "Samsung GU75DU7179U LED-Fernseher (189 cm/75 Zoll, 4K Ultra HD, Smart-TV, Crystal UHD, Q-Symphony, Dolby Surround Sound, Triple Tuner, Smart-Hub) schwarz",
      "price": 749,
      "currency": "€",
      "shipment": "39,95 €*",
      "seller": "otto",
      "marketplace": "/"
    },
    {
      "productTitle": "SAMSUNG GU75DU7179U LED TV (Flat, 75 Zoll / 189 cm, UHD 4K, SMART TV, Tizen)",
      "price": 749,
      "currency": "€",
      "shipment": "59,90 €*",
      "seller": "saturn online shop",
      "marketplace": "/"
    },
    {
      "productTitle": "SAMSUNG GU75DU7179U LED TV (Flat, 75 Zoll / 189 cm, UHD 4K, SMART TV, Tizen)",
      "price": 749,
      "currency": "€",
      "shipment": "59,90 €*",
      "seller": "saturn",
      "marketplace": "ebay.de"
    },
    {
      "productTitle": "SAMSUNG GU75DU7179U LED TV (Flat, 75 Zoll / 189 cm, UHD 4K, SMART TV, Tizen)",
      "price": 749,
      "currency": "€",
      "shipment": "59,90 €*",
      "seller": "media markt online shop",
      "marketplace": "/"
    },
    {
      "productTitle": "SAMSUNG TV GU75DU7179, 190 cm (75\") Crystal 4K Ultra HD Smart TV (2024), schwarz",
      "price": 749.69,
      "currency": "€",
      "shipment": "49,99 €*",
      "seller": "metro.de",
      "marketplace": "/"
    },
    {
      "productTitle": "Samsung 75 Zoll Crystal UHD 4K DU7179 Tizen OS™ Smart TV (2024)",
      "price": 769,
      "currency": "€",
      "shipment": "0,00 €*",
      "seller": "samsung-deutschland",
      "marketplace": "ebay.de"
    },
    {
      "productTitle": "Samsung GU75DU7179 (2024)",
      "price": 770.9,
      "currency": "€",
      "shipment": "25,00 €*",
      "seller": "coolblue",
      "marketplace": "/"
    },
    {
      "productTitle": "Samsung 75DU7179 Crystal UHD Smart TV 189 cm 75 Zoll",
      "price": 788.42,
      "currency": "€",
      "shipment": "siehe Website",
      "seller": "office-partner.de",
      "marketplace": "/"
    },
    {
      "productTitle": "Samsung GU75DU7179 189cm 75\" 4K LED Smart TV Fernseher",
      "price": 849,
      "currency": "€",
      "shipment": "0,00 €*",
      "seller": "computeruniverse.net",
      "marketplace": "/"
    },
    {
      "productTitle": "Samsung GU75DU7179 189cm 75\" 4K LED Smart TV Fernseher",
      "price": 849,
      "currency": "€",
      "shipment": "0,00 €*",
      "seller": "cyberport.de",
      "marketplace": "/"
    },
    {
      "productTitle": "Samsung LED-TV 189cm (75 Zoll) Crystal UHD 4K",
      "price": 1265.98,
      "currency": "€",
      "shipment": "0,00 €*",
      "seller": "mcbuero.de",
      "marketplace": "/"
    }
  ]
}
```

### Data Source: Preispiraten.de

This scraper gathers price data from [**Preispiraten.de**](https://www.preispiraten.de/), a powerful platform designed for **EAN-based price comparison** in the German market. While its **user interface may seem outdated**, its **backend is highly optimized**, making it an invaluable tool for sellers tracking product prices.

✅ **Comprehensive Price Monitoring** - Preispiraten.de scans prices from **over 55,000 online shops**, including major retailers like **Amazon.de, OTTO, eBay.de, MediaMarkt...**.\
✅ **EAN-Based Search** - Unlike traditional price comparison sites, it specializes in **EAN (GTIN) numbers**, allowing sellers to track product-specific pricing efficiently.\
✅ **Constantly Updated Data** - Price listings are refreshed frequently, ensuring that sellers always have **access to the most current market data**.\
✅ **Fast & Reliable** - Despite its UI limitations, Preispiraten.de delivers **quick, structured price data**, making it a must-have resource for competitive analysis.

#### **Why Use This Scraper?**

While anyone can manually check prices by entering EANs on Preispiraten.de, this scraper **takes it to the next level**:\
🚀 **Bulk Price Retrieval** - Instead of searching manually, you can extract **pricing data for hundreds or thousands of products** in one go.\
⚡ **Speed & Efficiency** - In just minutes, get structured price comparisons from **multiple retailers**, ready for analysis.\
📊 **Data-Driven Market Insights** - Use large-scale price tracking to **optimize product positioning and pricing strategies**.

This scraper transforms the power of **Preispiraten.de** into a **high-speed, scalable solution**, giving businesses and sellers the **competitive edge they need** in Germany's e-commerce landscape.

### Is it legal to scrape preispiraten.de website?

This scraper was designed to comply with the directives specified in the [preispiraten.de robots.txt](https://preispiraten.de/robots.txt) file as of 12.06.2025.

```
## ===================================
## 02.07.2024, preispiraten.de
## ===================================

Sitemap: https://www.preispiraten.de/sitemaps/sitemap-index.xml

## ===================================
## Allows
## ===================================

User-agent: *
Allow:/preisvergleich/
Allow:/details/

## ===================================
## Ausschluss
## ===================================

User-agent: *
Disallow: /go/
Disallow: /cgi-bin/wtr/

User-agent: WebReaper
User-agent: WebCopier
User-agent: Offline Explorer
User-agent: HTTrack
User-agent: Microsoft.URL.Control
User-agent: EmailCollector
User-agent: penthesilea
Disallow: /
```

# Actor input Schema

## `categoryEans` (type: `array`):

Enter EAN numbers, grouped by category. Each input field corresponds to a category name below.

## `categoryNames` (type: `array`):

Enter names of product categories (e.g., tv, smartphone, etc.). Each input field corresponds to the EAN numbers above.

## Actor input object example

```json
{
  "categoryEans": [
    "8806084530097, 8806095474885",
    "0195949821967, 8806097113157"
  ],
  "categoryNames": [
    "tv",
    "smartphone"
  ]
}
```

# 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 = {
    "categoryEans": [
        "8806084530097, 8806095474885",
        "0195949821967, 8806097113157"
    ],
    "categoryNames": [
        "tv",
        "smartphone"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("m3web/german-price-tracker").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 = {
    "categoryEans": [
        "8806084530097, 8806095474885",
        "0195949821967, 8806097113157",
    ],
    "categoryNames": [
        "tv",
        "smartphone",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("m3web/german-price-tracker").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "categoryEans": [
    "8806084530097, 8806095474885",
    "0195949821967, 8806097113157"
  ],
  "categoryNames": [
    "tv",
    "smartphone"
  ]
}' |
apify call m3web/german-price-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,m3web/german-price-tracker"
        }
    }
}
```

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

## OpenAPI specification

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