Reputation & Reviews

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.

Trustpilot engineLive JSON4 steps1,000 free credits

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.

Use case

Review monitoring, competitor research, reputation dashboards and customer voice analysis.

Step by step

Call the live endpoint

  1. 1

    Choose the company domain

    Use the domain that Trustpilot associates with the company profile.

  2. 2

    Call trustpilot/v1/company/reviews

    Send company and review-count parameters through ReefAPI.

  3. 3

    Split company and review data

    Store company summary fields separately from individual review rows so both can be tracked over time.

  4. 4

    Analyze new reviews

    Dedupe by review id or URL, then classify rating, topic and sentiment in your own workflow.

Code

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}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.trustpilot.company/reviews with {"company":"amazon.com","maxReviews":40}.
Real response

Captured output from ReefAPI

Captured on UTC. The response below is the committed snapshot, including the API envelope and metadata.

Captured request
{
  "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
  }
}
Captured response
{
  "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
    }
  }
}
Manual way

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.

ReefAPI way

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.

FAQ

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.