Trusted Shops Reviews Scraper
Pricing
from $1.50 / 1,000 reviews
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
7 days ago
Last modified
Categories
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.

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
maxItemsaccounting: 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.
| Entities | Shops (certified merchants) and their customer reviews |
| Coverage | Every Trusted Shops locale — .de, .com, .fr, .nl, .pl, .it, .es, .at, .ch |
| Lookup | Shop website domain, profile URL on any locale, or a bare TSID |
| Filters | Star rating (1–5), applied server-side before you are charged |
| Proxy | Not required |
| Output | One 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:
- 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).
- 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.
- Profile page for the certification status, star distribution, organization name and website.
- 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
| Input | Example |
|---|---|
| German profile URL | https://www.trustedshops.de/bewertung/info_X8B4BF6371C245F95B3BD70755FE286F2.html |
| English profile URL | https://www.trustedshops.com/buyerrating/info_X8B4BF6371C245F95B3BD70755FE286F2.html |
| Any other locale URL | trustedshops.fr/evaluation/…, .nl, .pl, .it, .es, .at, .ch |
| Bare TSID | X8B4BF6371C245F95B3BD70755FE286F2 |
| Shop website domain | outdoor-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"]}
| Field | Type | Description |
|---|---|---|
mode | string | reviews (default) — full review data. shop — one rating-summary row per shop. |
startUrls | array | Profile URLs on any trustedshops.* locale, or bare TSIDs. |
shopDomains | array | Shop website domains to look up (alternative to URLs). |
starRatings | array | Only reviews with these ratings (1–5). Server-side. |
includeShopInfo | boolean | Reviews mode: also push one shop-info row per shop. |
maxItems | integer | Maximum rows returned (default 1000). |
maxConcurrency | integer | Parallel page fetches per shop (1–10, default 5). |
Output overview
The dataset holds two row types, told apart by rowType:
rowType | One per | Carries |
|---|---|---|
review | Customer review | Rating, title, text, review + order dates, verified-purchase status, merchant reply, attachments, reviewer details |
shop | Shop | Certification, 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),nullwhen 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);nullfor 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.activeReviewCountvstotalReviewCount— 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
- Trustpilot Scraper — the same job on the English-language review platform.
- Google Maps Reviews Scraper — local business reviews and ratings.
- G2 Scraper — software product reviews.
- Judge.me Reviews Scraper — product reviews on Shopify storefronts.
- ReclameAQUI Scraper — Brazilian consumer complaints and company reputation.
🤖 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.
totalReviewCountreports the all-time figure and is frequently much larger — OTTO Office shows 4,539 browsable against 105,570 lifetime. Do not presentactiveReviewCountas 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.
starRatingsfilters server-side, so filtered-out reviews are never fetched or charged.authorName,reviewerCityandreviewerProfileUrlarenullunless 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