# DACH Reputation Scraper: Trust Badges + Kununu (`getascraper/dach-reputation-scraper`) Actor

Look up a company across Trusted Shops, ProvenExpert, eKomi and Kununu in one run. Get star ratings, full review text, and a cross-platform match score per domain. Export to Sheets, Excel, or your own pipeline via the API. Skip checking four sites by hand. From $0.0008 per review.

- **URL**: https://apify.com/getascraper/dach-reputation-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 data rows

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/actors/running/actors-in-store.md#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

## 🇩🇪 DACH Reputation Scraper: Trust Badges + Kununu

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#F0F5FA;border:1px solid #CFE0EE;border-top:4px solid #1B6FA8;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Every DACH trust badge and employer review, in one dataset</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Give it a profile link, get back verified ratings, full review text and a cross-platform match score, without opening four separate tabs.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFE0EE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#155A8A">🏅 Four platforms, one run</span><br>
<span style="font-size:12px;color:#57534E">Trusted Shops, ProvenExpert and eKomi trust badges, plus Kununu employer reviews, side by side.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFE0EE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#155A8A">📝 Full review text</span><br>
<span style="font-size:12px;color:#57534E">Real reviewer names, star ratings, dates and review body, not just an aggregate score.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFE0EE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#155A8A">🔗 Cross-platform matching</span><br>
<span style="font-size:12px;color:#57534E">Every company gets a match confidence score built from real signals, not a guess.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFE0EE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#155A8A">📅 Schedule it</span><br>
<span style="font-size:12px;color:#57534E">Run it weekly and watch your rating and review count move over time.</span>
</td>
</tr>
</table>

Look up a company's public [Trusted Shops](https://www.trustedshops.com), [ProvenExpert](https://www.provenexpert.com), [eKomi](https://www.ekomi.de) and [Kununu](https://www.kununu.com) profiles and pull them into one dataset. Export to JSON, CSV or Excel, or connect straight into Google Sheets and your own pipeline via the API. Run it on demand or on a schedule. No coding required.

### ✨ Why use this Actor

**Built for anyone who checks reputation across more than one site.**

- 🎯 **Reputation and marketing managers** at DACH e-commerce or service businesses: stop copying star ratings by hand from four different sites into a report.
- 👥 **HR and employer-branding teams**: pull Kununu employer reviews alongside customer trust badges to see the full picture of how a company is seen, by buyers and by candidates.
- 🏢 **Agencies managing several client reputations**: schedule one run per client instead of checking each platform manually every week.

**Full review text, not just a number.** This Actor pulls real reviewer names, star ratings, dates and full review text from ProvenExpert, and adds Kununu employer reviews on top, so you see how a company is seen by buyers and by candidates in the same dataset.

### ⚙️ How it works

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F0F5FA;border:1px solid #CFE0EE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1B6FA8;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add your companies</span><br>
<span style="font-size:12px;color:#57534E">Paste the profile link for each platform you want checked, plus a name and domain for labeling.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0F5FA;border:1px solid #CFE0EE;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1B6FA8;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run the Actor</span><br>
<span style="font-size:12px;color:#57534E">It visits each platform, reads the live rating and reviews, and scores how confidently the profiles match.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F0F5FA;border:1px solid #CFE0EE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1B6FA8;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Get your data</span><br>
<span style="font-size:12px;color:#57534E">Download as JSON, CSV or Excel, or connect straight into Google Sheets or your own pipeline via the API.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `companies` | array | Yes | One entry per company: a name, an optional domain, and a profile link for any platform you want checked. |
| `platforms` | enum | No | Which platforms to check: Trusted Shops, ProvenExpert, eKomi, Kununu. Defaults to all four. |
| `includeReviews` | boolean | No | Pull individual review rows, not just aggregate rating data. Defaults to on. |
| `maxReviewsPerCompany` | integer | No | Stop collecting reviews for a company once this many are gathered. 0 means no limit. |
| `maxItems` | integer | No | Stop the whole run after this many dataset rows. 0 means no limit. |
| `proxyConfiguration` | object | No | Proxy settings. Defaults to Apify's own proxy. |

A company with no link for a given platform is simply skipped for that platform. None of these four sites offer a reliable public company-name search, so a direct profile link is the only way to guarantee the right company gets matched, not a lookalike.

### 📤 Output

Every result is one row in the dataset. A business match looks like this:

```json
{
  "rowType": "business",
  "companyName": "ikrush.com",
  "domain": "ikrush.com",
  "matchConfidence": 0.4,
  "matchSignals": ["trustedShops:profile-found", "trustedShops:domain-confirmed"],
  "scrapedAt": "2026-08-30T00:48:23.349Z"
}
```

A review row looks like this:

```json
{
  "rowType": "review",
  "companyName": "ProvenExpert.com",
  "platform": "provenExpert",
  "reviewerName": "Chris Hill",
  "rating": 4,
  "reviewText": "Great support, quick to respond.",
  "reviewDate": "2026-07-28",
  "scrapedAt": "2026-08-30T00:48:23.349Z"
}
```

Download the dataset in JSON, CSV, Excel, HTML or XML from the Apify Console, or pull it through the API.

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `rowType` | string | `business`, `profile` or `review`. |
| `platform` | string | `trustedShops`, `provenExpert`, `eKomi` or `kununu`. |
| `companyName` / `domain` | string | The company this row belongs to. |
| `matchConfidence` / `matchSignals` | number/array | Business rows only. How confidently the profiles found belong to the same company, and why. |
| `profileUrl` / `overallRating` / `reviewCount` | string/number | Profile rows. The platform's aggregate rating and review count. |
| `trustBadgeStatus` / `verified` | string/boolean | Profile rows, where the platform exposes them. |
| `reviewerName` / `rating` / `reviewText` / `reviewDate` / `companyReply` | string/number | Review rows. Individual review detail, richest on ProvenExpert. |

The Output tab also ships four pre-built views: overview, businesses, profiles, and an unwound reviews table.

### 💰 Pricing

This Actor is pay per result: you only pay for the data you actually collect, and a run that returns nothing costs nothing. There is no subscription and no minimum spend.

### ⭐ Enjoying DACH Reputation Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#F0F5FA;border:1px solid #CFE0EE;border-left:5px solid #1B6FA8;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Saved you from checking four different sites by hand?</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other reputation managers and agencies find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#1B6FA8;border:1px solid #CFE0EE;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/dach-reputation-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 🛠️ Tips for better runs

- Provide as many platform links as you have for each company. More platforms per company means a higher match confidence score and a fuller picture.
- Turn `includeReviews` off if you only need the aggregate rating and review count, for a faster, cheaper run.
- Kununu is currently protected by an active security check on its own site that can block automated access. Treat Kununu results as best effort for now, and check the Output tab if a company shows no Kununu row.

### ❓ FAQ

**Why do I need to provide a link instead of just a company name?**
None of these four platforms expose a public search that reliably finds one exact company by name. A direct profile link is the only way to guarantee this Actor matches the right business, not a similarly named one.

**Is it legal to scrape these review platforms?**
This Actor only collects data that is already publicly visible on each platform's own review pages. You are responsible for how you use the data and for complying with each platform's terms of service. It also respects eKomi's published crawling restrictions and does not fetch any page path that site has marked off-limits.

**Why don't Trusted Shops or eKomi reviews include full review text?**
Trusted Shops shows its rating and review count once its page fully loads, but the individual review list wasn't reliably extractable in this version. Only the aggregate numbers are included for now.

**Can I get notified of new reviews automatically?**
Yes. Schedule this Actor to run weekly from the Apify Console and pipe new results into Google Sheets, Slack, or your own database with no code.

Found a bug or need a custom version of this Actor? Open an issue from the Actor's Issues tab and it'll be looked at directly.

### 🔗 Other actors

- [a16z Scraper: Portfolio + Speedrun Companies](https://apify.com/getascraper/a16z-portfolio-scraper) ↗ - every a16z-backed company and who's hiring right now.
- [Startup investor contact database](https://apify.com/getascraper/startup-investor-contact-database) ↗ - publicly listed investor and firm contact data for fundraising outreach.
- [US licensed contractor directory](https://apify.com/getascraper/us-licensed-contractor-directory) ↗ - licensed contractor business records by state.
- [Ashby Jobs Scraper: Hiring Change Monitor](https://apify.com/getascraper/ashby-jobs-monitor) ↗ - tracks new and closed job postings on startup career pages.

# Actor input Schema

## `companies` (type: `array`):

One object per company to look up. "name" is required and is used to label the output. Add a direct profile URL for any platform you already know, e.g. { "name": "Zalando", "domain": "zalando.de", "trustedShopsUrl": "https://www.trustedshops.com/buyerrating/zalando-de" }. A platform with no URL given is skipped for that company, since none of these four sites expose a reliable public company-name search (confirmed live, see the Tips section of the README).

## `platforms` (type: `array`):

Which reputation platforms to check for each company.

## `includeReviews` (type: `boolean`):

Pull individual review rows for each matched profile, not just the aggregate rating and match data.

## `maxReviewsPerCompany` (type: `integer`):

Stop collecting reviews for a company once this many are gathered across all platforms combined. 0 means no limit.

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

Stop the run after this many total dataset rows have been collected. 0 means no limit.

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

Proxy settings. Datacenter proxy is enough for Trusted Shops, ProvenExpert and eKomi. Kununu needs residential proxy regardless of this setting.

## Actor input object example

```json
{
  "companies": [
    {
      "name": "Zalando",
      "domain": "zalando.de"
    }
  ],
  "platforms": [
    "trustedShops",
    "provenExpert",
    "eKomi",
    "kununu"
  ],
  "includeReviews": true,
  "maxReviewsPerCompany": 100,
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "companies": [
        {
            "name": "Zalando",
            "domain": "zalando.de"
        }
    ],
    "platforms": [
        "trustedShops",
        "provenExpert",
        "eKomi",
        "kununu"
    ],
    "includeReviews": true,
    "maxReviewsPerCompany": 100,
    "maxItems": 0,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/dach-reputation-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 = {
    "companies": [{
            "name": "Zalando",
            "domain": "zalando.de",
        }],
    "platforms": [
        "trustedShops",
        "provenExpert",
        "eKomi",
        "kununu",
    ],
    "includeReviews": True,
    "maxReviewsPerCompany": 100,
    "maxItems": 0,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/dach-reputation-scraper").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 '{
  "companies": [
    {
      "name": "Zalando",
      "domain": "zalando.de"
    }
  ],
  "platforms": [
    "trustedShops",
    "provenExpert",
    "eKomi",
    "kununu"
  ],
  "includeReviews": true,
  "maxReviewsPerCompany": 100,
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/dach-reputation-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/dach-reputation-scraper"
        }
    }
}

```

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/rcGP8YPC59JYLQjkR/builds/NzKl2KfH4aRsTbQNw/openapi.json
