Trusted Shops Reviews Scraper avatar

Trusted Shops Reviews Scraper

Pricing

from $1.50 / 1,000 reviews

Go to Apify Store
Trusted Shops Reviews Scraper

Trusted Shops Reviews Scraper

Scrape Trusted Shops reviews and shop ratings — review text, stars, review and order dates, verified-purchase status and merchant replies, plus certification, star distribution, per-criteria marks and lifetime review totals. Enter a shop domain, any locale profile URL, or a TSID.

Pricing

from $1.50 / 1,000 reviews

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Share

Trusted Shops Reviews Scraper — Reviews, Ratings & Shop Info

Extract customer reviews and shop rating data from Trusted Shops — full review texts, titles, star ratings, review + order dates, shop replies, verified-purchase status, and per-shop rating summaries with star distributions and per-criteria marks (delivery, goods, service). Works with profile URLs from any Trusted Shops locale (trustedshops.de, .com, .fr, .nl, .pl, .it, .es, .at, .ch) or with just the shop's own website domain. Export as JSON, CSV, or Excel.

How the Trusted Shops Reviews Scraper works

Why use this scraper?

  • Every Trusted Shops locale, one actor — paste a profile URL from any trustedshops.* domain (or a bare TSID); the actor auto-routes to the shop's home locale. Europe's largest shop-review pool, covered end to end.
  • Complete review records — stable review UUID, star rating, title, full text, publication date AND order date (both ISO-formatted), verified-purchase status, the shop's official reply with its date, attachments, the reviewer's platform review count, and — for reviewers with a public profile — their name, city and consumer profile URL.
  • Automatic shop lookup — skip the URL hunt entirely: list shop website domains (e.g. outdoor-renner.de) and each is resolved to its Trusted Shops profile via the platform's official public API.
  • Server-side star filter you don't pay for — pull only 1–2★ complaints (or only 5★ praise) before scraping. You're never charged for filtered-out reviews.
  • Shop-info mode — one row per shop with average rating, active + all-time review counts, full star distribution, per-criteria marks (DELIVERY / GOODS / SERVICE), organization name, and membership date. Ideal for monitoring hundreds of shops cheaply.
  • Fast — reviews come from the platform's own bulk endpoint at 500 per request, not 20 per page load. A 4,500-review merchant is about ten calls; runs finish in seconds, not minutes.
  • Fair charging — shops not on the platform are skipped and never charged. Exact maxItems accounting: you get precisely the number of rows you asked for.

Overview

Trusted Shops is the trustmark behind the certification seal on a large share of German and EU online retail, and the review site where those merchants' customers rate them. This actor reads both halves of a shop's public profile: the certification and rating summary, and the individual customer reviews behind it.

EntitiesShops (certified merchants) and their customer reviews
CoverageEvery Trusted Shops locale — .de, .com, .fr, .nl, .pl, .it, .es, .at, .ch
LookupShop website domain, profile URL on any locale, or a bare TSID
FiltersStar rating (1–5), applied server-side before you are charged
ProxyNot required
OutputOne row per review, plus an optional summary row per shop

How it works

Give the actor a shop domain and it resolves the rest for you:

  1. Domain → shop via the official Trusted Shops public API, which returns every market variant of the merchant (a single domain can have separate German, Belgian-Dutch and Belgian-French shops, each with its own TSID and rating).
  2. Shop → quality data, also from the official API: the overall mark, the rolling-12-month review count, the all-time total, and separate marks for delivery, goods and service.
  3. Profile page for the certification status, star distribution, organization name and website.
  4. Reviews in bulk from the platform's own reviews endpoint, 500 per request, so a shop with thousands of reviews costs a handful of calls rather than hundreds of page loads.

Skip step 1 by passing profile URLs or TSIDs directly.

What you can scrape

InputExample
German profile URLhttps://www.trustedshops.de/bewertung/info_X8B4BF6371C245F95B3BD70755FE286F2.html
English profile URLhttps://www.trustedshops.com/buyerrating/info_X8B4BF6371C245F95B3BD70755FE286F2.html
Any other locale URLtrustedshops.fr/evaluation/…, .nl, .pl, .it, .es, .at, .ch
Bare TSIDX8B4BF6371C245F95B3BD70755FE286F2
Shop website domainoutdoor-renner.de — resolved automatically via the official lookup API

Use cases

  • Reputation monitoring — track your own (or competitors') average rating, star distribution, and fresh complaints over time.
  • Complaint mining — pull only 1–2★ reviews to find operational weak spots, and read how the shop responded (replies included).
  • Market research — compare rating distributions and per-criteria marks (delivery vs goods vs service) across all shops in a category.
  • E-commerce due diligence — verified-purchase flags, order-to-review time (orderDate vs reviewDate), and reply behaviour reveal how a shop actually operates.
  • AI / NLP pipelines — clean, deduplicated review texts with titles, dates, and ratings, ready for sentiment analysis.

Input configuration

Example — all 1–2 star reviews for one shop, with the shop summary row included:

{
"mode": "reviews",
"shopDomains": ["outdoor-renner.de"],
"starRatings": ["1", "2"],
"includeShopInfo": true,
"maxItems": 500
}

Example — rating summaries for a portfolio of shops:

{
"mode": "shop",
"startUrls": [
{ "url": "https://www.trustedshops.de/bewertung/info_X8B4BF6371C245F95B3BD70755FE286F2.html" }
],
"shopDomains": ["shop-two.de", "shop-three.com"]
}
FieldTypeDescription
modestringreviews (default) — full review data. shop — one rating-summary row per shop.
startUrlsarrayProfile URLs on any trustedshops.* locale, or bare TSIDs.
shopDomainsarrayShop website domains to look up (alternative to URLs).
starRatingsarrayOnly reviews with these ratings (1–5). Server-side.
includeShopInfobooleanReviews mode: also push one shop-info row per shop.
maxItemsintegerMaximum rows returned (default 1000).
maxConcurrencyintegerParallel page fetches per shop (1–10, default 5).

Output overview

The dataset holds two row types, told apart by rowType:

rowTypeOne perCarries
reviewCustomer reviewRating, title, text, review + order dates, verified-purchase status, merchant reply, attachments, reviewer details
shopShopCertification, average rating, star distribution, 12-month and all-time review counts, per-criteria marks, organization, website

Review rows always carry shopName, tsId and profileUrl, so a multi-shop run stays joinable after export.

Output samples

Review row:

{
"rowType": "review",
"reviewId": "rev-72999306-bdee-4f19-81be-dec9bb636bee",
"rating": 5,
"title": "Sehr schöne Regenjacke",
"text": "Sehr schöne Regenjacke. Zum Glück eine Nummer größer bestellt da sie etwas klein ausfällt...",
"authorName": "Judith W.",
"reviewDate": "2026-05-04T16:54:48.000Z",
"updatedDate": "2026-05-04T16:54:48.000Z",
"orderDate": "2026-04-24T20:17:16.000Z",
"verificationStatus": "MEMBER_VERIFIED",
"isVerified": true,
"reply": {
"text": "Danke für dein ausführliches Feedback - und gut, dass du gleich eine Nummer größer bestellt hast...",
"date": "2026-05-05T09:12:00.000Z"
},
"attachmentUrls": [],
"reviewerTotalReviews": 5,
"reviewerCity": null,
"reviewerProfileUrl": "https://www.trstd.com/user/5338d91d-7fc7-4a64-8a25-80e8f9807fc2",
"inModeration": false,
"tsId": "X8B4BF6371C245F95B3BD70755FE286F2",
"shopName": "RennerXXL - Outdoor- und Sportbekleidung in Übergrößen",
"shopWebsiteUrl": "www.outdoor-renner.de/",
"profileUrl": "https://www.trustedshops.de/bewertung/info_X8B4BF6371C245F95B3BD70755FE286F2.html",
"page": 1
}

Shop row:

{
"rowType": "shop",
"tsId": "X8B4BF6371C245F95B3BD70755FE286F2",
"shopName": "RennerXXL - Outdoor- und Sportbekleidung in Übergrößen",
"websiteUrl": "www.outdoor-renner.de/",
"organizationName": "RennerXXL GmbH & Co. KG",
"memberSince": "2010-04-12",
"language": "de",
"targetMarket": "DEU",
"averageRating": 4.8,
"activeReviewCount": 2022,
"ratingDistribution": { "1": 17, "2": 11, "3": 37, "4": 225, "5": 1732 },
"totalReviewCount": 44301,
"reviewsCountedSince": "2010-04-12",
"overallMarkDescription": "EXCELLENT",
"criteriaRatings": { "DELIVERY": 4.8, "GOODS": 4.8, "SERVICE": 4.8 }
}

Key output fields

  • reviewId — the platform's stable UUID for the review (deduplication-safe across runs).
  • reviewDate / orderDate — publication datetime vs the datetime of the underlying purchase, both ISO 8601. The gap between them tells you order-to-review time.
  • isVerified / verificationStatus — whether Trusted Shops verified the reviewer (e.g. MEMBER_VERIFIED), straight from the platform.
  • reply — the shop's official response (text + date), null when the shop hasn't replied.
  • authorName / reviewerCity / reviewerProfileUrl — present for reviewers who made their Trusted Shops profile public (roughly a quarter of them in sampling); null for the rest, who post without a public identity.
  • ratingDistribution — absolute review counts per star band over the active 12-month window.
  • criteriaRatings — the platform's per-criteria marks (DELIVERY, GOODS, SERVICE) from the official API.
  • activeReviewCount vs totalReviewCount — reviews in the browsable 12-month window vs all-time total since the shop joined.

FAQ

Which Trusted Shops sites are covered? All of them — a shop's profile is the same everywhere, and any locale URL (.de/bewertung, .com/buyerrating, .fr/evaluation, .nl, .pl, .it, .es, .at, .ch) auto-routes to the shop's home locale. You can even paste just the TSID.

How far back do reviews go? Trusted Shops only publishes the active 12-month review window — the same limit as on the website itself. Older reviews are counted in totalReviewCount but are not browsable anywhere, including this scraper. Run the actor periodically (e.g. monthly) to build a complete archive over time.

Are shop replies included? Yes — the shop's official reply text and date ship with every review that has one.

Why is authorName empty on many reviews? Trusted Shops only exposes a reviewer's name when that person has made their consumer profile public — about a quarter of reviews in sampling. The website shows "Community Member" for everyone else; this actor returns null instead, so you can filter on the field directly rather than string-matching a placeholder. Public reviewers also carry reviewerCity and a reviewerProfileUrl.

What about product reviews? This actor scrapes shop-level reviews (the merchant's overall profile). Product-level review widgets embedded on merchant sites are a different system and out of scope.

What happens with shops that aren't on the platform? They're logged as skipped and you are not charged anything for them.

How fast is a large shop? Reviews are pulled 500 per request from the platform's own endpoint, so a shop with 4,500 reviews takes about ten calls plus one page load. Runs of a few thousand reviews finish in well under a minute.

Do I need a proxy? No. Trusted Shops works without one. A proxy option exists for very large pulls if you ever hit rate limits.

Support & feature requests

Found an issue or need an extra field? Open an issue on the actor's Issues tab in the Apify Console — issues are typically answered within 24 hours.

Additional services

Need this on a schedule, delivered somewhere specific, or joined with review data from another platform? Apify schedules runs, pushes results to webhooks, S3, Google Sheets or your own API, and keeps every run's dataset addressable over the API. For a custom variant — extra fields, a different row shape, or a bundle across several review platforms — open an issue on the actor and describe the output you want.

Explore more scrapers

🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/trusted-shops-reviews-scraper).

Purpose: Scrape customer reviews and shop rating summaries from Trusted Shops — review text, star rating, review and order dates, verified-purchase status, merchant replies, plus per-shop certification, star distribution, 12-month and all-time review counts, and per-criteria marks.

Minimal input:

{ "mode": "reviews", "shopDomains": ["otto-office.com"], "maxItems": 200 }

Instead of shopDomains, pass startUrls with a profile URL on any Trusted Shops locale (https://www.trustedshops.de/bewertung/info_<TSID>.html) or a bare TSID. Other fields: starRatings (1–5, server-side), includeShopInfo, maxItems, maxConcurrency, proxy.

Output: two row types keyed by rowType. A review row carries reviewId, rating, title, text, authorName, reviewDate, updatedDate, orderDate, verificationStatus, isVerified, reply, attachmentUrls, reviewerTotalReviews, reviewerCity, reviewerProfileUrl, inModeration, plus tsId, shopName, shopWebsiteUrl and profileUrl. A shop row carries tsId, shopName, websiteUrl, organizationName, description, memberSince, language, targetMarket, averageRating, activeReviewCount, ratingDistribution, totalReviewCount, reviewsCountedSince, overallMarkDescription and criteriaRatings.

Behaviors an agent should know:

  • Always set maxItems; a large merchant can hold thousands of reviews in the browsable window.
  • Only the rolling 12-month review window is browsable on the platform, so that is the ceiling for review rows. totalReviewCount reports the all-time figure and is frequently much larger — OTTO Office shows 4,539 browsable against 105,570 lifetime. Do not present activeReviewCount as a shop's total.
  • One domain can resolve to several shops, one per market (German, Belgian-Dutch, Belgian-French). The first match is used; pass a TSID to pin a specific market.
  • starRatings filters server-side, so filtered-out reviews are never fetched or charged.
  • authorName, reviewerCity and reviewerProfileUrl are null unless the reviewer made their profile public — roughly a quarter of reviews.
  • Domains that are not Trusted Shops members return nothing and are not charged. A small number of domains resolve to internal test records with zero reviews.
  • No proxy is required.
  • Pay-per-event billing — see the Pricing tab on the actor page.

⚠️ Disclaimer

This actor only collects publicly available data that anyone can see by visiting the Trusted Shops review pages. It does not access private data, bypass authentication, or collect personal information beyond what reviewers chose to publish. You are responsible for how you use the data — ensure your use complies with applicable laws (GDPR, CCPA) and the target website's terms of service. This actor is not affiliated with or endorsed by Trusted Shops AG or eTrusted.

SEO Keywords

trusted shops scraper, trusted shops reviews scraper, trustedshops.de scraper, scrape trusted shops reviews, trusted shops API, trusted shops bewertungen scraper, shop review scraper, e-commerce review scraper, German review platform scraper, trusted shops rating export, verified purchase reviews, shop reputation data, review monitoring tool, customer feedback scraper, star rating scraper, trustmark shop reviews