Trustpilot Product Rating API
Get a product's Trustpilot star rating, review count and GTIN from the business's Trustpilot ID and the product's SKU, with the product details Trustpilot publishes for it.
- 1 credit per call
- Failed calls are free
- Updated
- trustpilot.product.rating.get
{ "name": "Irrésistible Givenchy", "gtin": "3274872512634", "has_rating": true, "rating_count": 2, "rating_stars": 4.5, "raw": { "name": "Irrésistible Givenchy", "@context": "http://schema.org", "@type": "Product", "brand": "Givenchy", "gtin13": "3274872512634", "mpn": "Givenchy", "sku": "41013C42", "url": "https://www.my-origines.com/fr/irresistible-givenchy-41013C42.html", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.5", "reviewCount": "2" }, "offers": { "price": "108.80", "@type": "Offer", "priceCurrency": "EUR", "url": "https://www.my-origines.com/fr/irresistible-givenchy-41013C42.html" } }}
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| business_unit_id | string | yes | The business's Trustpilot ID, the one its product review widgets use. | 605071d79427c2000147bff9 |
| sku | string | yes | The product's SKU, as the business lists it on Trustpilot. | 41013C42 |
| language | string | no | The language of the product details, such as en or fr. English by default. | fr |
| product_name | string | no | The product's name, if you have it. Without it the SKU is used. | Irrésistible Givenchy |
| template_id | string | no | The Trustpilot widget to read the rating from. The standard product review widget is used by default. | |
| url | string | no | The product's page on the business's own site, if you have it. | https://www.my-origines.com/fr/irresistible-giv… |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| name | string | The product's name. | Irrésistible Givenchy |
| rating_stars | number | The product's average star rating. | 4.5 |
| rating_count | integer | How many ratings the product has. | 2 |
| has_rating | boolean | Whether the product has any rating yet. | true |
| gtin | string | The product's barcode number. | 3274872512634 |
| raw | object | 10 fields | |
| raw.brand | string | The product's brand. | Givenchy |
| raw.offers.price | string | The product's price on the shop's page. | 108.80 |
| raw.offers.priceCurrency | string | The currency of that price. | EUR |
| raw.@context | string | http://schema.org | |
| raw.@type | string | Product | |
| raw.aggregateRating | object | The rating summary in the shop's product data. | 3 fields |
| raw.aggregateRating.@type | string | AggregateRating | |
| raw.aggregateRating.ratingValue | string | The average rating in the shop's product data. | 4.5 |
| raw.aggregateRating.reviewCount | string | The review count in the shop's product data. | 2 |
| raw.gtin13 | string | The product's 13-digit barcode number. | 3274872512634 |
| raw.mpn | string | The manufacturer's part number as the shop gives it. | Givenchy |
| raw.name | string | The product's name. | Irrésistible Givenchy |
| raw.offers | object | The offer in the shop's product data: price, currency and availability. | 4 fields |
| raw.offers.@type | string | Offer | |
| raw.offers.url | string | The product's page on the shop's site. | https://www.my-origines.com/fr/irresistible-givenchy-41013C42.h… |
| raw.sku | string | The shop's own product code. | 41013C42 |
| raw.url | string | The product's page on the shop's site. | https://www.my-origines.com/fr/irresistible-givenchy-41013C42.h… |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "trustpilot.product.rating.get", "input": { "business_unit_id": "605071d79427c2000147bff9", "language": "fr", "product_name": "Irrésistible Givenchy", "sku": "41013C42", "url": "https://www.my-origines.com/fr/irresistible-givenchy-41013C42.html" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "trustpilot.product.rating.get", "input": { "business_unit_id": "605071d79427c2000147bff9", "language": "fr", "product_name": "Irrésistible Givenchy", "sku": "41013C42", "url": "https://www.my-origines.com/fr/irresistible-givenchy-41013C42.html" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "trustpilot.product.rating.get", "input": { "business_unit_id": "605071d79427c2000147bff9", "language": "fr", "product_name": "Irrésistible Givenchy", "sku": "41013C42", "url": "https://www.my-origines.com/fr/irresistible-givenchy-41013C42.html" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
Using Upscrape, look up the Trustpilot rating of SKU 41013C42 (Irrésistible Givenchy) for business 605071d79427c2000147bff9, in French. Tell me the stars, how many reviews it has and its GTIN.
The same data from other platforms
Trustpilot Product Rating API FAQ
The short answers. The docs have the long ones.
How much does the Trustpilot Product Rating API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send business_unit_id and sku. The input fields below list every option with its type and limits.
Do I need a Trustpilot login?
No. It reads public Trustpilot data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds trustpilot.product.rating.get, checks its price and runs it with the same credits as the REST API.
Your first Trustpilot call is free.
Up to 100 free credits to start, no card needed.