String docs
Site integrations

Trustpilot

Trustpilot company profiles and reviews: TrustScore, star breakdown, review text, ratings, dates and company replies.

Call these actions with your String API key; see Authentication. Every call answers with the envelope described in Responses & errors, whose data holds the rows below.

  • Site: trustpilot
  • Version: 1.0.0
  • Reads from: trustpilot.com
ActionDescriptionListed price
businessRead Trustpilot company profiles by domain: TrustScore, stars, review count, the count at each star rating and in each language, categories, website and country.Billed per request at your plan's rates
reviewsRead a company's Trustpilot reviews, newest first, optionally one language, star rating, period or search text: rating, title, text, language, dates, reviewer name and country, verification and the company's reply. One set of filters reaches 200 reviews; coverage max reads every language and star rating and returns the deduplicated union.Billed per request at your plan's rates

business

Read Trustpilot company profiles by domain: TrustScore, stars, review count, the count at each star rating and in each language, categories, website and country.

POST https://request.usestring.ai/v1/integrations/trustpilot/business

Input

Unknown fields are rejected.

FieldTypeDescription
businessesstring[] | nullRequired. Company domains such as zappos.com, or trustpilot.com/review/ URLs. At least 1 entry.

Output

data is an array of rows, one per result. Each row has:

FieldTypeDescription
idstring—
domainstring—
namestring | null—
urlstring—
trustScorenumber | null—
starsnumber | null—
reviewCountinteger | null—
reviewsLast12Monthsinteger | null—
ratingsobject | null—
ratings.totalinteger—
ratings.oneinteger—
ratings.twointeger—
ratings.threeinteger—
ratings.fourinteger—
ratings.fiveinteger—
languagesobject[]—
languages[].languagestringAn ISO code such as sv.
languages[].countinteger—
categoriesstring[]—
websitestring | null—
countryCodestring | null—
isClaimedboolean | null—
isClosedboolean | null—

Example

curl https://request.usestring.ai/v1/integrations/trustpilot/business \
  -H "Authorization: Bearer $STRING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "businesses": ["zappos.com"]
  }'

data starts with these rows:

[
  {
    "id": "46dae88f0000640005010f49",
    "domain": "www.zappos.com",
    "name": "Zappos",
    "url": "https://www.trustpilot.com/review/www.zappos.com",
    "trustScore": 1.5,
    "stars": 1.5,
    "reviewCount": 693,
    "reviewsLast12Months": 105,
    "ratings": {
      "total": 693,
      "one": 340,
      "two": 34,
      "three": 24,
      "four": 47,
      "five": 248
    },
    "languages": [
      {
        "language": "en",
        "count": 682
      },
      {
        "language": "es",
        "count": 2
      },
      {
        "language": "fr",
        "count": 1
      },
      {
        "language": "it",
        "count": 1
      },
      {
        "language": "pl",
        "count": 1
      }
    ],
    "categories": ["Clothing Store", "Handbags Shop", "Activewear Store", "Fashion Accessories Store", "Shoe Store"],
    "website": "https://www.zappos.com",
    "countryCode": "US",
    "isClaimed": true,
    "isClosed": false
  }
]

Requests and billing

  • Requests: 1–2 Web Access requests per entry in items.
  • Billing: passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.

reviews

Read a company's Trustpilot reviews, newest first, optionally one language, star rating, period or search text: rating, title, text, language, dates, reviewer name and country, verification and the company's reply. One set of filters reaches 200 reviews; coverage max reads every language and star rating and returns the deduplicated union.

POST https://request.usestring.ai/v1/integrations/trustpilot/reviews

Input

Unknown fields are rejected.

FieldTypeDescription
businessstringRequired. A company domain such as zappos.com, or a trustpilot.com/review/ URL. At least 1 character.
languagestringOnly reviews in this ISO language, such as sv. Omitted, every language.
starsintegerOnly reviews with this star rating, 1 to 5. Omitted, every rating. From 1 to 5.
datelast30days last3months last6months last12monthsOnly reviews from this period. Omitted, all time.
searchstringOnly reviews containing this text.
pagesintegerHow many pages of 20 reviews to read, newest first, from 1. Trustpilot serves at most 10 for one set of filters. From 1 to 10.
coveragepage maxpage (the default) reads one set of filters. max reads every language and star rating to the limit of each, up to 200 reviews a set, and returns the deduplicated union, the most reviews available without search terms.

Output

data is an array of rows, one per result. Each row has:

FieldTypeDescription
idstring—
businessstringThe company's domain.
urlstring—
ratinginteger | null—
titlestring | null—
textstring | null—
languagestring | null—
publishedAtstring | null—
experiencedAtstring | nullThe date of the experience the reviewer gave.
updatedAtstring | null—
authorstring | null—
authorCountrystring | null—
authorReviewCountinteger | null—
verifiedboolean | null—
verificationLevelstring | null—
sourcestring | null—
likesinteger | null—
replyTextstring | nullThe company's reply.
replyAtstring | null—

Example

curl https://request.usestring.ai/v1/integrations/trustpilot/reviews \
  -H "Authorization: Bearer $STRING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "business": "zappos.com"
  }'

data starts with these rows:

[
  {
    "id": "6ae587c63e049e607bd8373b",
    "business": "www.zappos.com",
    "url": "https://www.trustpilot.com/reviews/6ae587c63e049e607bd8373b",
    "rating": 1,
    "title": "Horrible experience",
    "text": "Horrible experience. Ordered shoes 11 days ago and it’s still in “processing”. What kind of company is this? When I spoke to a customer service agent they had no explanation as to why my shoes haven’t shipped. What is going on?? ",
    "language": "en",
    "publishedAt": "2026-10-31T08:16:38.000Z",
    "experiencedAt": "2026-10-30T00:00:00.000Z",
    "updatedAt": null,
    "author": null,
    "authorCountry": "US",
    "authorReviewCount": 1,
    "verified": false,
    "verificationLevel": "not-verified",
    "source": "Organic",
    "likes": 0,
    "replyText": null,
    "replyAt": null
  },
  {
    "id": "6ae28b49c9da56c6a7187c51",
    "business": "www.zappos.com",
    "url": "https://www.trustpilot.com/reviews/6ae28b49c9da56c6a7187c51",
    "rating": 1,
    "title": "Ordered a pair of boots",
    "text": "Ordered a pair of boots. Got email that delivery will be delayed. Did not receive the item on new provided delivery date. Called customer service and they said they can only cancel the order. I asked not to I will wait for my order. Few days later I received another email that my order is lost during delivery and order has been canceled. And will have to wait another 10’days for my refunds. &@%# Zappos. ",
    "language": "en",
    "publishedAt": "2026-10-29T01:54:49.000Z",
    "experiencedAt": "2026-10-24T00:00:00.000Z",
    "updatedAt": null,
    "author": null,
    "authorCountry": "US",
    "authorReviewCount": 1,
    "verified": false,
    "verificationLevel": "not-verified",
    "source": "Organic",
    "likes": 0,
    "replyText": null,
    "replyAt": null
  }
]

Requests and billing

  • Requests: 1–2 Web Access requests per result page.
  • Billing: passthrough. Each request the action makes bills at its own rate on your plan; there is no separate charge for the action. See Pricing.