Trustpilot Scraper - Reviews, Ratings & Company Profiles
Pricing
from $11.54 / 1,000 results
Trustpilot Scraper - Reviews, Ratings & Company Profiles
Scrape Trustpilot reviews and company profiles by domain, URL, keyword search or category. Trust score, star distribution, verification, contacts, review text, author, photos and replies. Filter by stars, language, date, verified. Export JSON, CSV, Excel.
Pricing
from $11.54 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
Trustpilot Scraper - Reviews, Ratings & Company Profiles
Here is one real result, a company profile record, with every field the actor returns (the similarCompanies array is trimmed to 2 of 8 real entries for readability; all other values are exactly as returned):
{"imageUrl": "https://s3-eu-west-1.amazonaws.com/tpd/screenshots/46d46ce6000064000500c2ad/198x149.png","recordType": "company","companyId": "46d46ce6000064000500c2ad","businessUnitId": "46d46ce6000064000500c2ad","companyName": "Nike","domain": "www.nike.com","trustpilotUrl": "https://www.trustpilot.com/review/www.nike.com","websiteUrl": "https://www.nike.com","websiteTitle": "www.nike.com","countryCode": "US","trustScore": 1.5,"rating": 1.5,"reviewsCount": 12979,"reviewsLast12Months": 2084,"ratingDistribution": { "total": 12979, "oneStar": 9858, "twoStar": 488, "threeStar": 362, "fourStar": 468, "fiveStar": 1803 },"categories": ["Activewear Store", "Shoe Store", "Sportswear Store", "Clothing Store"],"categoryPath": "Shopping & Fashion > Clothing & Underwear > Activewear Store","isClaimed": false,"claimedDate": "2023-11-20","verifiedByGoogle": false,"verifiedBusiness": null,"verifiedPaymentMethod": false,"verifiedUserIdentity": false,"isClosed": false,"isTemporarilyClosed": false,"isCollectingReviews": false,"hasCollectedIncentivisedReviews": false,"isUsingPaidFeatures": false,"isUsingAIResponses": false,"replyPercentage": 0,"averageDaysToReply": 0,"negativeReviewsWithRepliesCount": 0,"totalNegativeReviewsCount": 1802,"lastReplyToNegativeReview": null,"locationsCount": 0,"consumerAlerts": [],"reviewSummary": "Considering 992 reviews, most reviewers were let down by their experience overall. Many consumers encountered significant issues with the execution of their orders, such as receiving items that did not match the description or sizing problems...","similarCompanies": [{ "companyName": "Netflix", "domain": "www.netflix.com", "trustpilotUrl": "https://www.trustpilot.com/review/www.netflix.com", "trustScore": 1.5, "rating": 1.5, "reviewsCount": 14377 },{ "companyName": "Obelink", "domain": "www.obelink.nl", "trustpilotUrl": "https://www.trustpilot.com/review/www.obelink.nl", "trustScore": 4.2, "rating": 4, "reviewsCount": 4912 }],"email": null,"phone": "86406388","address": "Niels Brocks Gade 8 , 4. sal.","city": "Randers C","zipCode": "8900","country": "US","observedAt": "2026-08-25T22:59:35.475Z","error": null}
The most complete Trustpilot scraper available. It returns every field the company profile exposes (trust score, star distribution, verification and reply stats, categories, contact email, phone and address, a review summary and similar companies), plus the full text of individual reviews with author, reviewer profile, rating, dates, verification, photos and company replies. You can target companies four ways (domain, direct URL, keyword search, or category browse) and filter reviews by star, language, date, verified status, reply presence and keyword.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- How we compare
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
Give the actor companies four ways: by website domain (companyDomains), by direct Trustpilot review URL (trustpilotUrls), by keyword search (searchQueries), or by category browse (categories, with optional country). For each company it writes one company record with the full profile and rating summary, and, when withReviews is on, one review record per collected customer review.
Company records carry the trust score, star rating, review counts, star distribution, categories, verification and reply statistics, consumer alerts, contact details when shown (email, phone, address), a review summary and similar companies. Review records carry the author, reviewer profile URL, country, rating, title, full text, language, verification status and source, likes, photos, experience and published dates, and any company reply with its own text and dates.
Trustpilot is fronted by a managed challenge; the actor clears it internally and parses the page's embedded data, so one fetch returns the full profile plus a page of reviews. Missing source values are returned as null; nothing is invented. Use stars, language, dateFilter, sort, verifiedReviewsOnly, repliesOnly and reviewKeyword to target exactly the reviews you need.
Quickstart
Open the actor, paste this into the input, and press Run. It returns Amazon's company profile plus up to 10 recent reviews.
{"companyDomains": ["amazon.com"],"withReviews": true,"maxReviews": 10,"sort": "recency"}
Provide at least one of companyDomains, trustpilotUrls, searchQueries or categories. Turn withReviews off for company profiles and rating summaries only.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
companyDomains | string[] | conditional | ["amazon.com"] | Company website domains to look up, for example amazon.com, booking.com. One per entry. |
trustpilotUrls | string[] | conditional | (empty) | Direct Trustpilot review page URLs, for example https://www.trustpilot.com/review/www.booking.com. |
searchQueries | string[] | conditional | (empty) | Find companies by name or keyword, for example nike, hosting, insurance. Returns matching companies up to maxCompanies. |
categories | string[] | conditional | (empty) | Browse companies under a Trustpilot category slug, for example electronics_technology, bank. |
country | string | no | (all) | ISO 3166-1 alpha-2 code to localize searchQueries and categories, for example US, GB, DE. |
maxCompanies | integer | no | 10 | Maximum companies to process across all inputs. Free plans are capped at 10. |
withReviews | boolean | no | true | Collect individual reviews per company. Off returns company profile and rating summary only. |
maxReviews | integer | no | 100 | Maximum reviews per company (20 per page). Only used with withReviews. Free plans are capped at 10. |
sort | enum | no | (default) | Review order: recency or relevance. |
stars | string[] | no | (all) | Only collect reviews with these star ratings. One or more of 1 to 5. |
dateFilter | enum | no | (all) | Only reviews within last30days, last3months, last6months or last12months. |
language | string | no | (all) | Restrict reviews to one language by ISO code, for example en, es, de. |
languages | string[] | no | (all) | Restrict reviews to multiple languages by ISO code. |
verifiedReviewsOnly | boolean | no | false | Collect only verified reviews. |
repliesOnly | boolean | no | false | Keep only reviews that have a company reply. |
reviewKeyword | string | no | (none) | Only reviews whose text contains this keyword, for example delivery, refund. |
Output reference
The dataset mixes two record types, distinguished by recordType. Types: string, number, integer, boolean, string[], object, object[], or null when absent.
Company record (recordType: "company"):
| Field | Type | Description |
|---|---|---|
companyId / businessUnitId | string | Trustpilot business unit identifier. |
companyName | string | Company name. |
domain | string | Company domain on Trustpilot. |
websiteUrl / websiteTitle | string | Company website and its listed title. |
trustpilotUrl | string | Trustpilot review page URL. |
imageUrl | string | Company image/screenshot URL. |
countryCode | string | Trustpilot profile country code. |
trustScore | number | Trustpilot trust score. |
rating | number | Star rating. |
reviewsCount / reviewsLast12Months | integer | Total reviews and reviews in the last 12 months. |
ratingDistribution | object | Star breakdown: total, oneStar to fiveStar. |
categories | string[] | Company categories. |
categoryPath | string | Full category path. |
isClaimed / claimedDate | boolean / string | Whether the profile is claimed, and when. |
verifiedByGoogle / verifiedBusiness / verifiedPaymentMethod / verifiedUserIdentity | boolean | Verification flags. |
isClosed / isTemporarilyClosed | boolean | Closure status. |
isCollectingReviews / hasCollectedIncentivisedReviews / isUsingPaidFeatures / isUsingAIResponses | boolean | Review-program and paid-feature flags. |
replyPercentage / averageDaysToReply | number | Company reply statistics. |
negativeReviewsWithRepliesCount / totalNegativeReviewsCount | integer | Negative-review reply stats. |
lastReplyToNegativeReview | string | Date of last reply to a negative review, or null. |
locationsCount | integer | Number of listed locations. |
consumerAlerts | array | Consumer alerts on the profile. |
reviewSummary | string | Trustpilot's aggregated review summary. |
similarCompanies | object[] | Similar companies with name, domain, url, trustScore, rating, reviewsCount. |
email / phone / address / city / zipCode / country | string | Company contact details when shown, else null. |
Review record (recordType: "review"):
| Field | Type | Description |
|---|---|---|
companyName / domain | string | The company the review belongs to. |
reviewId | string | Unique review id. |
author / authorId | string | Review author name and id. |
authorProfileUrl | string | Reviewer profile URL. |
authorCountry | string | Author country code. |
authorReviewsCount | integer | Number of reviews the author has written. |
authorHasImage / authorIsVerified | boolean | Reviewer avatar and verification flags. |
rating | integer | Review star rating (1 to 5). |
title / text | string | Review title and full text. |
language | string | Review language code. |
location | string | Reviewer location when shown. |
isVerified / verificationLevel / verificationSource | boolean / string | Verification status, level and source. |
verifiedDate | string | When the review was verified. |
mergedLabel | string | Merged-review label, or null. |
source | string | Review source, for example Organic. |
likes | integer | Number of likes. |
photos | string[] | Review photo URLs when present. |
consumerReviewsOnSameDomain / consumerReviewsOnSameLocation | integer | Author review counts for this domain/location. |
productReviews | array | Product-level reviews attached to the review. |
experienceDate / publishedDate / updatedDate / submittedDate | string | Review dates. |
hasReply | boolean | Whether the review has a company reply. |
reply | object | Company reply with message, publishedDate, updatedDate, or null. |
reviewUrl | string | Direct review URL. |
Both record types also include observedAt (ISO 8601 collection timestamp) and error (null on success; populated on a failed run, which is not charged).
Example output record
Real review record from a live run, a one-star review with a company reply:
{"recordType": "review","companyName": "IONOS | ionos.de","domain": "ionos.de","reviewId": "6a848195879727d7b9dd19a1","author": "Alexander Minev","authorId": "62f4ee211d08f400128b5321","authorProfileUrl": "https://www.trustpilot.com/users/62f4ee211d08f400128b5321","authorCountry": "BG","authorReviewsCount": 6,"authorHasImage": false,"authorIsVerified": false,"rating": 1,"title": "Predatory Auto-Renewal Tactics, Arbitrary Add-On Fees, and Zero Customer Goodwill","text": "IONOS employs predatory auto-renewal practices by locking accounts into full-year commitments without flexibility, tacking on a 15.13 EUR charge for an internal proprietary feature and an immediate reminder fee...","language": "en","isVerified": false,"verificationLevel": "not-verified","verificationSource": "invitation","verifiedDate": "2026-08-18T18:00:21.000Z","source": "Organic","likes": 0,"photos": [],"consumerReviewsOnSameDomain": 1,"experienceDate": "2026-08-15","publishedDate": "2026-08-18T18:00:21.000Z","updatedDate": null,"hasReply": true,"reply": {"message": "Hello Alexander Minev, thank you for your feedback. I assume your main complaint concerns the domain renewal fees...","publishedDate": "2026-08-19T08:14:43.000Z","updatedDate": null},"reviewUrl": "https://www.trustpilot.com/reviews/6a848195879727d7b9dd19a1","observedAt": "2026-08-25T22:59:54.845Z","error": null}
How we compare
An objective look at the direct Trustpilot scrapers on the Apify Store. We built this actor to be a superset on input filters, valid output fields and company-metadata depth. Where a competitor is genuinely cheaper or more adopted, we say so.
| Capability | This actor | casper11515 | automation-lab | agents | memo23 | getwally.net |
|---|---|---|---|---|---|---|
| Input by domain | Yes | Yes | Yes | URL only | Yes | URL only |
| Input by direct URL | Yes | Yes | Yes | Yes | Yes | Yes |
| Company keyword search | Yes | No | No | No | No | No |
| Category browse | Yes | No | No | No | No | No |
| Star / language / date / verified filters | Yes | Yes | Yes | No | date only | date only |
| Keyword-in-reviews filter | Yes | No | No | No | No | No |
| Replies-only filter | Yes | No | Yes | No | No | No |
| Company profile depth (email, phone, address, verification, reply stats, distribution) | Full | Partial | Minimal | Partial | Full | None |
| Reviewer detail (profile URL, review count, verified, country) | Yes | Yes | Yes | Yes | Yes | Minimal |
| Company replies (text + dates) | Yes | Yes | Yes | Yes | Yes | No |
| Similar companies + AI review summary | Yes | No | No | No | No | No |
| Bypasses the ~200-review cap | Yes | Yes | Yes | Yes | Yes | Partial |
| Pricing model | Pay per result | $20/mo rental | Pay per review | Pay per review | $22/mo rental | Pay per result |
Where competitors still win, honestly:
- automation-lab is cheaper per review at high volume and has the most monthly-active users of the group; if you only need plain review text at the lowest volume price, it is a strong option.
- casper11515 has the most total installs and exposes review photo URLs as a first-class field; some reviews here return
photos, but that field is only populated when Trustpilot attaches images. - agents advertises the fastest raw review throughput (100 to 200 reviews per second). Our per-company page fetch clears an anti-bot challenge, so throughput is lower; we trade some speed for the deepest field set and the search/category discovery no one else has.
- getwally.net has the cheapest flat headline rate for bare review text.
What no competitor combines and this actor does: keyword search and category discovery, the full contact-enriched company profile (email, phone, address, all verification flags, star distribution and reply statistics), reviewer profile detail, keyword and replies-only review filters, similar companies and the AI review summary, all in one run.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~trustpilot-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companyDomains":["amazon.com"],"withReviews":true,"maxReviews":25,"stars":["1"],"sort":"recency"}'
Discover companies by search and collect reviews:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~trustpilot-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["hosting"],"maxCompanies":5,"maxReviews":50,"languages":["en"],"verifiedReviewsOnly":true}'
Apify CLI:
apify call scrapers_lat/trustpilot-scraper \--input '{"categories":["electronics_technology"],"country":"US","withReviews":false}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per record returned: one
resultevent per company profile and onedetailsevent per review. See the pricing tab for current per-record prices. - No charge on failure. If a company cannot be reached, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable records. - Free Apify plans are capped at 10 companies and 10 reviews per company per run. Upgrade for higher limits.
FAQ and troubleshooting
How do I find companies without knowing their domain?
Use searchQueries with a name or keyword, or categories with a Trustpilot category slug. Each discovered company returns a full profile, and reviews when withReviews is on.
A run returned only a company record and no reviews. Why?
withReviews was off, or a filter (star, language, date, verified, replies-only, keyword) excluded every review. Loosen the filters. Zero-result runs are not charged.
How do I get only negative reviews with a company reply?
Set stars to ["1","2"] and repliesOnly to true. Combine with language or dateFilter to narrow further.
Do I get company replies to reviews?
Yes. When a review has a company reply, hasReply is true and the reply object carries the reply text and its published and updated dates.
Can I look up a company by its Trustpilot page instead of a domain?
Yes. Pass the review page URL in trustpilotUrls.
Is this an official Trustpilot tool? No. This actor is independent and has no affiliation with Trustpilot. It reads only data that is publicly visible on company and review pages. All trademarks belong to their owners.
Related scrapers
- TrueLocal Australia Business Leads Scraper: Australian business directory leads.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Trustpilot. Accesses only publicly available company and review data. All trademarks belong to their owners.
