Extract Trustpilot customer reviews, 5-star histogram & sentiment polarity
GET/v1/trustpilot/reviews2 Credits / review (0 Credits on empty)($0.0002 / review ($0.08–$0.20 / 1K reviews))· Updated 2026-11-15
Direct Answer · Engineering Summary
GET /v1/trustpilot/reviews extracts paginated public Trustpilot customer reviews for any company domain (e.g. printful.com) with a computed 5-star histogram, aspect sentiment polarity tags, verification badges, reviewer profiles, and merchant replies. Pricing is deterministic at 2 Credits per returned review ($0.08–$0.20 per 1,000 reviews, 0 Credits on empty/error) using a single x-api-key header—no annual enterprise Trustpilot API contract required.
Honest Trade-Offs & Scope Boundaries
- →Reads publicly visible Trustpilot reviews and company replies only; private invitation-link management and review-generation emails are not supported.
- →Default 15-minute warm cache serves repeat queries in <30ms; paid accounts can pass ?fresh=true for real-time upstream refresh.
- →High-volume domains with 10,000+ reviews paginate sequentially at 20 reviews per page via the page query parameter.
Returns verified Trustpilot customer reviews for any company domain with 5-star distribution histogram, aspect sentiment polarity tags (+Customer Support, -Billing UI, etc.), verification badges, reviewer history, and official company replies.
Parameters
domainstringrequiredCompany domain on Trustpilot (e.g. printful.com, stripe.com, porkbun.com).
Example:
printful.compageinteger1-based page index (20 reviews per page).
Example:
1limitinteger (1 to 50)Maximum reviews to return (1–50).
Example:
20freshbooleanBypass 15-minute warm cache for live pull (paid/subscribed accounts).
Example:
false
Example Request (cURL / Python / JavaScript)
curl "https://api.reviewsdataapi.com/v1/trustpilot/reviews?domain=printful.com" \
-H "x-api-key: rv_live_your_api_key"import requests
res = requests.get(
"https://api.reviewsdataapi.com/v1/trustpilot/reviews?domain=printful.com",
headers={"x-api-key": "rv_live_your_api_key"},
timeout=30,
)
print(res.json())const res = await fetch("https://api.reviewsdataapi.com/v1/trustpilot/reviews?domain=printful.com", {
headers: { "x-api-key": "rv_live_your_api_key" },
});
const data = await res.json();
console.log(data);Live Response Preview
{
"code": 0,
"provider": "https://reviewsdataapi.com",
"status": "ok",
"msg": "success",
"data": {
"platform": "trustpilot",
"domain": "printful.com",
"sentiment_summary": {
"sampled_reviews": 20,
"average_rating": 3.35,
"star_distribution": {
"1": 6,
"2": 2,
"3": 1,
"4": 1,
"5": 10
},
"star_percentages": {
"1": 30,
"2": 10,
"3": 5,
"4": 5,
"5": 50
},
"sentiment_breakdown": {
"positive_pct": 55,
"neutral_pct": 5,
"negative_pct": 40,
"net_polarity_score": 0.2
},
"aspect_polarities": [
{
"aspect": "Speed & Delivery",
"polarity": "negative",
"positive_pct": 20,
"mentions": 5
},
{
"aspect": "Customer Support",
"polarity": "negative",
"positive_pct": 40,
"mentions": 5
}
]
},
"reviews": [
{
"review_id": "6af7acc1fd941bbb375cca9a",
"platform": "trustpilot",
"domain": "printful.com",
"review_url": "https://www.trustpilot.com/reviews/6af7acc1fd941bbb375cca9a",
"rating": 5,
"title": "so easy to integrate",
"review_text": "so easy to integrate",
"verified": false,
"verification_level": "BasicLink",
"language": "en",
"likes_count": 0,
"published_at": "2026-11-14T02:35:13.000Z",
"experienced_at": "2026-10-01T00:00:00.000Z",
"sentiment": "positive",
"polarity_score": 0.93,
"author": {
"id": "6a83542117a86039c7aa75e4",
"name": "Enith Dali Morales Rios",
"country_code": "US",
"total_reviews": 2,
"is_verified_reviewer": false,
"avatar_url": null
},
"company_reply": null
},
{
"review_id": "6af79a6aa0d2df3fa4d087e9",
"platform": "trustpilot",
"domain": "printful.com",
"review_url": "https://www.trustpilot.com/reviews/6af79a6aa0d2df3fa4d087e9",
"rating": 5,
"title": "Very easy and simple to create my store.",
"review_text": "Very easy and simple to create my store.",
"verified": false,
"verification_level": "BasicLink",
"language": "en",
"likes_count": 0,
"published_at": "2026-11-14T01:16:58.000Z",
"experienced_at": "2026-11-13T00:00:00.000Z",
"sentiment": "positive",
"polarity_score": 0.93,
"author": {
"id": "6af79a6474f74d31f6caa5c4",
"name": "Katherine Elizabeth Jackson",
"country_code": "US",
"total_reviews": 1,
"is_verified_reviewer": false,
"avatar_url": "https://user-images.trustpilot.com/6af79a6474f74d31f6caa5c4/73x73.png"
},
"company_reply": null
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total_reviews": 7453,
"total_pages": 373,
"has_more": true,
"rating_distribution": {
"1": 890,
"2": 186,
"3": 186,
"4": 481,
"5": 6255
}
}
},
"meta": {
"request_id": "9989985f-997a-48e7-a66f-4e8231b0b8ea",
"endpoint": "/v1/trustpilot/reviews",
"items_returned": 20,
"credits_charged": 40,
"cached": false,
"took_ms": 1256
}
}Response Fields
Normalized cross-platform reputation, star distribution, and sentiment JSON payload.
| Field | Type | Sample / Notes |
|---|---|---|
code | integer | Example: 0 |
provider | string | Example: https://reviewsdataapi.com |
status | string | Example: ok |
msg | string | Example: success |
data | object | |
platform | string | Example: trustpilot |
domain | string | Example: printful.com |
sentiment_summary | object | |
sampled_reviews | integer | Example: 20 |
average_rating | number | Example: 3.35 |
star_distribution | object | |
star_percentages | object | |
sentiment_breakdown | object | |
aspect_polarities | array of object | |
reviews | array of object | |
review_id | string | Example: 6af7acc1fd941bbb375cca9a |
platform | string | Example: trustpilot |
domain | string | Example: printful.com |
review_url | string | Example: https://www.trustpilot.com/reviews/6af7acc1fd941bbb375cca9a |
rating | integer | Example: 5 |
title | string | Example: so easy to integrate |
review_text | string | Example: so easy to integrate |
verified | boolean | Example: false |
verification_level | string | Example: BasicLink |
language | string | Example: en |
likes_count | integer | Example: 0 |
published_at | string | Example: 2026-11-14T02:35:13.000Z |
experienced_at | string | Example: 2026-10-01T00:00:00.000Z |
sentiment | string | Example: positive |
polarity_score | number | Example: 0.93 |
author | object | |
company_reply | string | Optional field (nullable) |
pagination | object | |
page | integer | Example: 1 |
per_page | integer | Example: 20 |
total_reviews | integer | Example: 7453 |
total_pages | integer | Example: 373 |
has_more | boolean | Example: true |
rating_distribution | object | |
meta | object | |
request_id | string | Example: 9989985f-997a-48e7-a66f-4e8231b0b8ea |
endpoint | string | Example: /v1/trustpilot/reviews |
items_returned | integer | Example: 20 |
credits_charged | integer | Example: 40 |
cached | boolean | Example: false |
took_ms | integer | Example: 1256 |
Status Codes
- 200
- Normalized cross-platform reputation, star distribution, and sentiment JSON payload.
- 400
- Missing or invalid query parameter (0 credits charged).
- 401
- Missing or invalid rv_live_ API key.
- 402
- Insufficient credit balance.