Trustpilot API

Trustpilot Reviews API

Pull Trustpilot reviews for any company by brand name: star ratings, review text, dates, and reviewer details as clean JSON.

$0.80/1k req, pay per request, no subscription.

What the API returneditems[0]
{
"rating": 5,
"text": "Integration took an afternoon and the docs answered every question before I had to ask it. Support replied to a webhook question in under ten minutes.",
"title": "Best payments docs I have used",
"url": "https://www.trustpilot.com/reviews/68d9a2b1f0e2c4a1b3c5d7e9",
"verified": true,
"createdUtc": 1758672000,
"avatarUrl": "https://user-images.trustpilot.com/avatars/marcus-lindqvist.png",
"author": "Marcus Lindqvist",
... 5 more fields
}
Uptime
98.60%
30d · 2,149 calls
Requests
2,155
30d · weekly, last 12 wks
Response
6.6s
median · 30d

Call it

Get Trustpilot reviews in one request

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/trustpilot.reviews",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={
        "company": ""
    },
)
print(res.json())
Open in
Get a free key
Sample response

This sample shows 14 of 17 fields. See every field

{
  "found": true,
  "data": {
    "items": [
      {
        "rating": 5,
        "text": "Integration took an afternoon and the docs answered every question before I had to ask it. Support replied to a webhook question in under ten minutes.",
        "title": "Best payments docs I have used",
        "url": "https://www.trustpilot.com/reviews/68d9a2b1f0e2c4a1b3c5d7e9",
        "verified": true,
        "createdUtc": 1758672000,
        "avatarUrl": "https://user-images.trustpilot.com/avatars/marcus-lindqvist.png",
        "author": "Marcus Lindqvist",
        "authorCountry": "SE",
        "reviewerReviewsCount": 12,
        "language": "en"
      },
      {
        "rating": 4,
        "text": "Reliable and the dashboard is clean, but the dispute process took longer than I expected and the fee structure could be clearer up front.",
        "title": "Solid, a bit slow on disputes",
        "url": "https://www.trustpilot.com/reviews/68d8b1a0e3f1c5b2a4d6e8f0",
        "verified": true,
        "createdUtc": 1758499200,
        "avatarUrl": "https://user-images.trustpilot.com/avatars/renata-alves.png",
        "author": "Renata Alves",
        "authorCountry": "BR",
        "reviewerReviewsCount": 4,
        "language": "en"
      },
      {
        "rating": 2,
        "text": "Our account was flagged for review after a normal spike in volume and it took three days to get a person on the phone to sort it out.",
        "title": "Account reviews can drag on",
        "url": "https://www.trustpilot.com/reviews/68d7c0f9d2e0b4a1c3e5f7a9",
        "verified": false,
        "createdUtc": 1758067200,
        "author": "Tomasz Wieczorek",
        "authorCountry": "PL",
        "reviewerReviewsCount": 1,
        "language": "en"
      }
    ]
  }
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-10-31 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • companystring

    stripe.com

    Brand name or Trustpilot review-page URL to fetch reviews for (e.g. nike or https://www.trustpilot.com/review/nike.com).

  • countriesarray

    Only return reviews from reviewers in these ISO 3166-1 alpha-2 countries (e.g. ["US", "GB"]). Omit this field for all countries and to stay on the cheapest price; a country filter routes to the dearest source.

  • languagesarray

    Only return reviews in these ISO 639-1 languages (e.g. ["en", "de"]). Omit this field for all languages and to stay on the cheapest price; a language filter routes to the dearest source.

  • limitinteger

    3

    Maximum number of results to return (1-200, default 200). Trustpilot serves at most 200 reviews per company.

  • requireFieldsarray

    Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `avatarUrl`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a review whose reviewer has no photo.

  • sortByenum

    recent

    Review ordering: auto, relevancy, or recent (e.g. recent).

  • starsstring

    Limit reviews to a single star rating from 1 to 5 (e.g. 5).

  • startDatestring

    Only return reviews on or after this date, inclusive, in YYYY-MM-DD format (e.g. 2026-01-01). Omit this field to stay on the cheapest price; a date floor routes to the dearest source.

  • verifiedOnlyboolean

    Set true to return only verified reviews (e.g. true). Omit this field, or send false, to stay on the cheapest price; true routes to a dearer source.

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

each itemdata.items[]

Review records: star rating, review title and text, date, reviewer name and country, and company reply when present. Populated whenever the provider has data for the entity.

  • authorstring

    Marcus Lindqvist

    Display name of the reviewer.

  • authorCountrystring

    SE

    Two-letter country code of the reviewer.

  • avatarUrlstringcan require

    https://user-images.trustpilot.com/avatars/marcus-lindqvist.png

    URL of the reviewer's avatar image, or null when the reviewer has no photo.

  • createdUtcnumber

    1758672000

    UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity.

  • languagestring

    en

    Language code of the review text, e.g. en.

  • ownerResponseTextstring

    The company's public reply to the review. Absent when the company has not replied.

  • ownerResponseUtcnumber

    UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the company replied; absent when it has not.

  • ratingnumber

    5

    Star rating (1-5).

  • reviewerReviewsCountinteger

    12

    Number of reviews the reviewer has written on Trustpilot.

  • textstring

    Integration took an afternoon and the docs answered every question before I had to ask it. Support replied to a webhook question in under ten minutes.

    Review body text. Populated whenever the provider has data for the entity.

  • titlestring

    Best payments docs I have used

    Review title or headline. Populated whenever the provider has data for the entity.

  • urlstring

    https://www.trustpilot.com/reviews/68d9a2b1f0e2c4a1b3c5d7e9

    Canonical review URL. Populated whenever the provider has data for the entity.

  • verifiedboolean

    true

    Whether the reviewer is verified.

top level
  • foundboolean

    true

    Whether any reviews were found for the company.

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the Trustpilot Reviews API

The AnyAPI Trustpilot Reviews API returns Trustpilot reviews data as normalized JSON from one POST call to /v1/run/trustpilot.reviews. Pull Trustpilot reviews for any company by brand name: star ratings, review text, dates, and reviewer details as clean JSON. AnyAPI routes each request across 4 sources and falls back automatically when one fails. It costs from $0.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 98.6% of Trustpilot reviews calls through AnyAPI succeeded, with a median response time of 6.6 seconds across 2,149 measured calls.

It costs from $0.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

Pull Trustpilot reviews for any company by brand name: star ratings, review text, dates, and reviewer details as clean JSON. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 98.6% of Trustpilot reviews calls through AnyAPI succeeded, with a median response time of 6.6 seconds across 2,149 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required, which covers 125 Trustpilot Reviews calls at $0.0008 each.

AnyAPI asks the next of its 4 sources in the same request, cheapest first, so one source going down does not fail your call.

Send a POST request to https://api.getanyapi.com/v1/run/trustpilot.reviews with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.