Trustpilot API — Get Company Reviews as JSON
Documentation menu
FetchLayer FetchLayer API

Get a company’s reviews

Return a company’s public Trustpilot reviews — rating, title, text, language, date of experience, reviewer, verification status, and the company’s reply where it answered. Filter by star rating, review language, date window, verified reviewers, a keyword, or replied-to only, and sort by recency or relevance. Trustpilot serves at most 200 reviews per filter combination to an anonymous reader, whatever the company’s total: a company with 97,539 reviews still returns 200 and nothing on the page explains why. The way past it is to partition — one request per star rating, one per language, or one per date window — and merge the results. When the request hits that ceiling the response says so in notes, so read notes rather than assuming a 200-review answer is complete.

POST /company-reviews Reviews
https://api.fetchlayer.dev/trustpilot/company-reviews
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

company string required

Company domain (for example hellofresh.com), or a Trustpilot company URL.

stars number[] optional

Only reviews with these star ratings, for example [1, 2]. The primary axis for partitioning past the 200-review ceiling.

language string optional

Two-letter review language code, or "all" for every language. (default: all)

dateWindow string optional

all, last30days, last3months, or last6months. (default: all)

sort string optional

recency (newest first) or relevance. (default: recency)

verifiedOnly boolean optional

Only reviews whose reviewer was verified by Trustpilot.

repliedOnly boolean optional

Only reviews the company has replied to.

search string optional

Only reviews whose text matches this keyword (max 200 characters).

limit number optional

Maximum reviews returned (max 200), or -1 for everything available. (default: 20)

pages number optional

Pages of reviews to collect in one request (max 10), or -1 for the maximum allowed.

cursor string optional

Resume from a previous response's nextCursor.

delayMs number optional

Milliseconds to wait between pages (max 30000).

format string optional

json or markdown. (default: json)

timeoutMs number optional

Per-request time limit in milliseconds (max 600000).

Response Fields

company-reviews

Get a company’s reviews

blocked boolean

Always false on a successful response.

requestedUrl string

The Trustpilot URL this result corresponds to.

scrapedAt string

ISO 8601 timestamp of when the data was collected.

transport string

The upstream source this data came from. Always "trustpilot".

notes string[]

Caveats about this particular result — a list that hit a cap, a filter that narrowed it, a walk that stopped early. Read it: it is where a truncated or incomplete answer announces itself.

resultType string

Which shape this response is: company-search, company-profile, company-reviews, or review-detail.

domain string

The resolved company domain.

companyId string

Trustpilot’s internal company id.

displayName string

Company name as shown on the profile.

trustScore number

The company’s TrustScore at the time of the request.

totalReviewCount number

Every review the company has, before this request’s filters.

filteredReviewCount number

Reviews matching this request’s filters. Compare it with reviewCount to see how much of the filtered set the 200-review ceiling left behind.

filters object

The filters this request actually ran with, after defaults were applied.

reviews object[]

The matching reviews.

reviews[].reviewId string

Review id — the handle for the review endpoint.

reviews[].reviewUrl string

Public Trustpilot permalink for this review.

reviews[].rating number

Star rating, 1 to 5.

reviews[].title string

Review headline.

reviews[].text string

Review body.

reviews[].language string

Two-letter code of the review text’s language.

reviews[].experiencedAt string

When the reviewer says the experience happened.

reviews[].publishedAt string

When the review was published.

reviews[].likes number

"Useful" votes from other readers.

reviews[].author object

Reviewer display name, country, total reviews written, reviews written about this company, and whether they are verified.

reviews[].verification object

How the review was collected and whether Trustpilot verified it — for example "invited" or "not-verified".

reviews[].reply object

The company’s published answer, with its message and dates. Null when the company has not replied.

reviews[].isFiltered boolean

True when Trustpilot is currently hiding this review from the company’s list.

reviews[].productNames string[]

Products the reviewer rated alongside the company, where any.

reviewCount number

Number of reviews in this response.

pagesScraped number

Pages actually collected. Each page counts as one request against your plan.

pagesRequested number

Pages this request asked for. Lower than pagesScraped means the walk stopped early — notes says why.

nextCursor string

Pass back as cursor to continue, or null when there is nothing further to collect.

hasNextPage boolean

Whether more results are available beyond this response.

Request

curl -X POST "https://api.fetchlayer.dev/trustpilot/company-reviews" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"company":"hellofresh.com","stars":[1,2],"language":"en","dateWindow":"last3months","limit":200,"pages":10}'

Response

{
  "resultType": "company-reviews",
  "domain": "hellofresh.com",
  "displayName": "HelloFresh",
  "trustScore": 4.2,
  "totalReviewCount": 97539,
  "filteredReviewCount": 1842,
  "filters": {
    "stars": [
      1,
      2
    ],
    "language": "en",
    "dateWindow": "last3months",
    "sort": "recency",
    "verifiedOnly": false,
    "repliedOnly": false,
    "search": null
  },
  "reviewCount": 200,
  "pagesScraped": 10,
  "hasNextPage": false,
  "notes": [
    "Trustpilot served the maximum 200 reviews for this filter combination. Narrow the filters (star rating, language, or date window) and run several requests to read more."
  ],
  "reviews": [
    {
      "reviewId": "a1b2c3d4e5f60718293a4b5c",
      "rating": 1,
      "title": "Box never arrived",
      "text": "Ordered for Tuesday, nothing turned up…",
      "language": "en",
      "experiencedAt": "2026-08-30",
      "reply": {
        "message": "We are sorry to hear this…",
        "publishedDate": "2026-09-01"
      }
    }
  ]
}