# GPSR Product Page Checker (EU Product Safety Regulation) (`fast_data_asap/gpsr-product-page-checker`) Actor

Check product pages for EU GPSR compliance (General Product Safety Regulation): manufacturer name, postal and email address, EU responsible person, product identifier and safety warnings. Any shop, samples products automatically. For agencies and sellers. $5 per 1,000 pages.

- **URL**: https://apify.com/fast_data_asap/gpsr-product-page-checker.md
- **Developed by:** [Fast Data](https://apify.com/fast_data_asap) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 product page checkeds

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

## GPSR Product Page Checker – EU Product Safety Regulation Audit

Since 13 December 2024 the EU **General Product Safety Regulation (GPSR, 2023/988)** requires every online offer to show who the manufacturer is, how to contact them, an EU responsible person (for non-EU manufacturers), a product identifier and safety information. This Actor checks product pages of any online shop for these signals in bulk and gives each page a score.

### Who uses it

- **Agencies & consultants:** audit a client or prospect shop in 10 seconds and show exactly which GPSR details are missing.
- **Marketplace sellers & brands:** check your own catalog before a marketplace or authority does.
- **Lead generation:** find shops with GPSR gaps and offer them a fix.

### What you get

- Manufacturer name, **postal address** and **electronic contact** near the manufacturer info
- **EU responsible person** mentioned
- **Product identifier** (EAN/GTIN, SKU, model, batch)
- **Safety / warning information**
- JSON-LD brand, manufacturer, GTIN, SKU
- Evidence snippets so you can verify each finding
- `missingSignals` list and a `signalScore` (0–100) per page
- Works on any shop system; product pages are sampled automatically from the homepage

### How to use it

1. Click **Try for free** (or Start).
2. Paste your list into the input (see the example below).
3. Run it and download the results as JSON, CSV or Excel, or get them via API.

#### Example input

```json
{
  "shops": [
    "example-shop.de"
  ],
  "productsPerShop": 5
}
```

Or pass `productUrls` to check specific product pages.

#### Example output (shortened, illustrative values)

```json
{
  "url": "https://example-shop.de/products/olive-oil-500ml",
  "title": "Olive Oil 500 ml",
  "signalScore": 60,
  "manufacturerMentioned": true,
  "manufacturerAddressNearby": true,
  "manufacturerContactNearby": false,
  "responsiblePersonMentioned": true,
  "productIdentifierMentioned": true,
  "safetyInfoMentioned": true,
  "missingSignals": [
    "manufacturer_electronic_contact"
  ]
}
```

### Pricing

Pay only for results: **$5.00 per 1,000 pages** (pay per event, no monthly fee). Apify's free plan includes monthly credits, so you can test it for free.

| Volume | Price |
|---|---|
| 100 product pages | $0.50 |
| 1,000 product pages | $5.00 |

### Use it via API, n8n, Make or as an AI tool

- **API (one call, results back):**

```bash
curl -X POST "https://api.apify.com/v2/acts/fast_data_asap~gpsr-product-page-checker/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"shops": ["example-shop.de"], "productsPerShop": 5}'
```

- **n8n / Make / Zapier:** use the Apify integration (Run Actor → Get dataset items) or an HTTP request with the URL above.
- **Claude, ChatGPT, Cursor (MCP):** add `https://mcp.apify.com?tools=fast_data_asap/gpsr-product-page-checker` as an MCP server, then just ask in plain language.
- **RapidAPI:** also available as an endpoint of the [DACH E-Commerce Data API](https://rapidapi.com/fastdataapi-fastdataapi-default/api/dach-e-commerce-data-api).

### FAQ

**Is this legal advice?**\
No. It detects text signals on the page. Information shown only in images or loaded later via JavaScript can be missed, so treat results as a checklist, not a verdict.

**Which shops are supported?**\
Any shop with public product pages: Shopify, Shopware, WooCommerce, JTL, Magento and custom shops.

**How are products picked?**\
From links on the homepage, up to `productsPerShop` per shop. Use `productUrls` for full control.

### Related Fast Data Actors

- [German Shop Compliance Checker](https://apify.com/fast_data_asap/german-shop-compliance-checker)
- [DACH Shop Lead Profiler](https://apify.com/fast_data_asap/dach-shop-lead-profiler)
- [Impressum Contact Extractor](https://apify.com/fast_data_asap/impressum-contact-extractor)
- [All Fast Data Actors](https://apify.com/fast_data_asap)

### 🇩🇪 Auf Deutsch: GPSR-Check für Online-Shops

Prüft Produktseiten auf die Pflichtangaben der EU-Produktsicherheitsverordnung (GPSR): Hersteller mit Post- und E-Mail-Adresse, verantwortliche Person in der EU, Produktkennung (EAN/GTIN) und Sicherheits- bzw. Warnhinweise. Ideal für Agenturen, Händler und Marktplatz-Seller, die viele Produktseiten schnell prüfen wollen. Ergebnis als Tabelle mit Score und fehlenden Angaben je Seite.

*Stichworte: GPSR Pflichtangaben prüfen, Produktsicherheitsverordnung Checker, Herstellerangaben Online-Shop.*

***

Built and maintained by **Fast Data**. Questions or a missing feature? Open an issue on this page.

# Actor input Schema

## `productUrls` (type: `array`):

Specific product pages to check.

## `shops` (type: `array`):

Shop homepages; product pages are sampled automatically.

## `productsPerShop` (type: `integer`):

Products per shop.

## `useApifyProxy` (type: `boolean`):

Route requests through Apify Proxy (helps with blocking).

## `timeoutSecs` (type: `integer`):

Timeout per HTTP request.

## Actor input object example

```json
{
  "shops": [
    "ankerkraut.de"
  ],
  "productsPerShop": 5,
  "useApifyProxy": false,
  "timeoutSecs": 20
}
```

# 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 = {
    "shops": [
        "ankerkraut.de"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fast_data_asap/gpsr-product-page-checker").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 = { "shops": ["ankerkraut.de"] }

# Run the Actor and wait for it to finish
run = client.actor("fast_data_asap/gpsr-product-page-checker").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 '{
  "shops": [
    "ankerkraut.de"
  ]
}' |
apify call fast_data_asap/gpsr-product-page-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fast_data_asap/gpsr-product-page-checker"
        }
    }
}
```

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/ePzGmup0CV3ei9FBt/builds/VjLmQ56ldE7qhjZBp/openapi.json
