How do you get Trustpilot company reviews via API?
To get Trustpilot reviews via API, call ReefAPI's company/reviews action with a company domain; it returns company rating data and review records as JSON.
This guide demonstrates the real Trustpilot API engine with a captured response from . The example is only published because the engine passed the SEO snapshot gate.
Review monitoring, competitor research, reputation dashboards and customer voice analysis.
Call the live endpoint
- 1
Choose the company domain
Use the domain that Trustpilot associates with the company profile.
- 2
Call trustpilot/v1/company/reviews
Send company and review-count parameters through ReefAPI.
- 3
Split company and review data
Store company summary fields separately from individual review rows so both can be tracked over time.
- 4
Analyze new reviews
Dedupe by review id or URL, then classify rating, topic and sentiment in your own workflow.
Copy the request
These snippets use the captured request params for trustpilot/v1/company/reviews.
curl -X POST https://api.reefapi.com/trustpilot/v1/company/reviews \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"company":"amazon.com","maxReviews":40}'import requests
r = requests.post(
"https://api.reefapi.com/trustpilot/v1/company/reviews",
headers={"x-api-key": REEF_KEY},
json={
"company": "amazon.com",
"maxReviews": 40
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/trustpilot/v1/company/reviews", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"company": "amazon.com",
"maxReviews": 40
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.trustpilot.company/reviews with {"company":"amazon.com","maxReviews":40}.Captured output from ReefAPI
Captured on UTC. The response below is the committed snapshot, including the API envelope and metadata.
{
"method": "POST",
"url": "https://api.reefapi.com/trustpilot/v1/company/reviews",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"company": "amazon.com",
"maxReviews": 40
}
}{
"ok": true,
"meta": {
"api": "trustpilot",
"endpoint": "company/reviews",
"mode": "live",
"latency_ms": 12149.2,
"record_count": 40,
"bytes": 57803,
"cache_hit": false,
"summary": {
"companies": 1,
"succeeded": 1,
"not_found": 0,
"blocked": 0,
"failed": 0,
"success_rate_pct": 100,
"total_reviews": 40,
"avg_completeness_pct": 0.1,
"error_breakdown": {},
"retries_used": 0
},
"attempts": 1
},
"data": {
"results": [
{
"company": {
"domain": "www.amazon.com",
"business_unit_id": "46ad[redacted-phone]d0",
"name": "Amazon",
"trust_score": 1.7,
"stars": 1.5,
"number_of_reviews": 46839,
"number_of_reviews_last_12_months": 8417,
"rating_distribution": {
"one": "[trimmed-depth]",
"two": "[trimmed-depth]",
"three": "[trimmed-depth]",
"four": "[trimmed-depth]",
"five": "[trimmed-depth]",
"total": "[trimmed-depth]"
},
"categories": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
],
"is_claimed": true,
"is_closed": false,
"is_temporarily_closed": false,
"is_collecting_reviews": false,
"claimed_date": "[redacted-phone]T19:08:43.000Z",
"reply_behavior": {
"reply_percentage": "[trimmed-depth]",
"average_days_to_reply": "[trimmed-depth]",
"negative_reviews_with_replies": "[trimmed-depth]",
"total_negative_reviews": "[trimmed-depth]",
"last_reply_to_negative": "[trimmed-depth]"
},
"verification": {
"verified_payment_method": "[trimmed-depth]",
"verified_user_identity": "[trimmed-depth]",
"verified_by_google": "[trimmed-depth]"
},
"locations_count": 0,
"website_url": "https://www.amazon.com",
"website_title": "www.amazon.com",
"profile_image_url": "//s3-eu-west-1.amazonaws.com/tpd/screenshots/46ad[redacted-phone]d0/198x149.png",
"contact_email": null,
"contact_phone": null,
"contact_address": null,
"contact_city": null,
"contact_country": "GB",
"contact_zip": null,
"rankings": [],
"breadcrumb": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
],
"topics": [
"[trimmed-depth]",
"[trimmed-depth]",
"[trimmed-depth]"
],
"description": null,
"ai_summary": null
},
"reviews": [
{
"review_id": "[trimmed-depth]",
"review_url": "[trimmed-depth]",
"company_domain": "[trimmed-depth]",
"company_name": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"title": "[trimmed-depth]",
"text": "[trimmed-depth]",
"language": "[trimmed-depth]",
"published_date": "[trimmed-depth]",
"experience_date": "[trimmed-depth]",
"updated_date": "[trimmed-depth]",
"is_verified": "[trimmed-depth]",
"verification_level": "[trimmed-depth]",
"likes": "[trimmed-depth]",
"source": "[trimmed-depth]",
"reviewer_name": "[trimmed-depth]",
"reviewer_country": "[trimmed-depth]",
"reviewer_id": "[trimmed-depth]",
"reviewer_review_count": "[trimmed-depth]",
"reply_text": "[trimmed-depth]",
"reply_published_date": "[trimmed-depth]",
"scraped_via_filter": "[trimmed-depth]",
"scraped_at_page": "[trimmed-depth]",
"is_pending": "[trimmed-depth]",
"is_flagged": "[trimmed-depth]",
"reviewer_local_review_count": "[trimmed-depth]"
},
{
"review_id": "[trimmed-depth]",
"review_url": "[trimmed-depth]",
"company_domain": "[trimmed-depth]",
"company_name": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"title": "[trimmed-depth]",
"text": "[trimmed-depth]",
"language": "[trimmed-depth]",
"published_date": "[trimmed-depth]",
"experience_date": "[trimmed-depth]",
"updated_date": "[trimmed-depth]",
"is_verified": "[trimmed-depth]",
"verification_level": "[trimmed-depth]",
"likes": "[trimmed-depth]",
"source": "[trimmed-depth]",
"reviewer_name": "[trimmed-depth]",
"reviewer_country": "[trimmed-depth]",
"reviewer_id": "[trimmed-depth]",
"reviewer_review_count": "[trimmed-depth]",
"reply_text": "[trimmed-depth]",
"reply_published_date": "[trimmed-depth]",
"scraped_via_filter": "[trimmed-depth]",
"scraped_at_page": "[trimmed-depth]",
"is_pending": "[trimmed-depth]",
"is_flagged": "[trimmed-depth]",
"reviewer_local_review_count": "[trimmed-depth]"
},
{
"review_id": "[trimmed-depth]",
"review_url": "[trimmed-depth]",
"company_domain": "[trimmed-depth]",
"company_name": "[trimmed-depth]",
"rating": "[trimmed-depth]",
"title": "[trimmed-depth]",
"text": "[trimmed-depth]",
"language": "[trimmed-depth]",
"published_date": "[trimmed-depth]",
"experience_date": "[trimmed-depth]",
"updated_date": "[trimmed-depth]",
"is_verified": "[trimmed-depth]",
"verification_level": "[trimmed-depth]",
"likes": "[trimmed-depth]",
"source": "[trimmed-depth]",
"reviewer_name": "[trimmed-depth]",
"reviewer_country": "[trimmed-depth]",
"reviewer_id": "[trimmed-depth]",
"reviewer_review_count": "[trimmed-depth]",
"reply_text": "[trimmed-depth]",
"reply_published_date": "[trimmed-depth]",
"scraped_via_filter": "[trimmed-depth]",
"scraped_at_page": "[trimmed-depth]",
"is_pending": "[trimmed-depth]",
"is_flagged": "[trimmed-depth]",
"reviewer_local_review_count": "[trimmed-depth]"
}
],
"scraped_count": 40,
"total_reviews": 46839,
"completeness_pct": 0.1,
"status": "PARTIAL",
"attempts": 1,
"notes": "Limited by maxReviews=40; 46839 reviews exist. Raise maxReviews (up to 200) for more."
}
],
"summary": {
"companies": 1,
"succeeded": 1,
"not_found": 0,
"blocked": 0,
"failed": 0,
"success_rate_pct": 100,
"total_reviews": 40,
"avg_completeness_pct": 0.1,
"error_breakdown": {},
"retries_used": 0
}
}
}Why this is hard manually
Review pages are difficult to scrape consistently because sort order, pagination, star filters and company identifiers all affect the visible data. HTML-only extraction also tends to lose rating distribution and company-level context.
Reputation tools need both individual reviews and summary signals, otherwise teams cannot tell whether a new review changed the overall profile or just appeared in a feed.
Why ReefAPI solves it
The captured Trustpilot response in this guide calls company/reviews for a real domain and returns company-level fields such as name, trust score, star rating, review counts and review records. The snapshot is rendered as-is from the committed data file.
Use it to monitor your own brand, compare competitors or feed review text into classification and support-prioritization workflows.
Questions developers ask
Does the API need a Trustpilot account?
No. This guide uses a ReefAPI key and the public company domain input.
Can I filter by stars?
The Trustpilot catalog includes optional star-related parameters; check the docs page for the current contract.
Does the sample include real reviews?
Yes. The page renders the committed live snapshot that passed the quality gate, with safety redaction where needed.
What should a monitoring job store?
Store company domain, trust score, stars, review count, review ids, ratings, dates and capture time.