ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Quick StartAPI & SDKsEcosystem

Trustpilot

Trustpilot Reviews API

One page of 20 Trustpilot reviews for a business, filtered by stars, language, date range, topics, text search, verified-only and with-replies, sorted by recency or relevance. Each review carries its rating, title, full text, dates, verification, the reviewer's public summary and the business reply. Up to 10 pages (200 reviews) per filter combination. Costs 2 credits per request.

POST/api/v1/trustpilot/reviews

Authorizations

Authorizationstringheaderrequired

Bearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).

Body

application/json
domainstring

The business's website domain as listed on Trustpilot. Pass exactly one of domain or url.

Example: nordvpn.com

urlstring

A trustpilot.com/review/<domain> page URL, from any Trustpilot country site. Alternative to domain.

Example: https://www.trustpilot.com/review/nordvpn.com

pageintegerdefault:1

Reviews page, 1-10, 20 reviews per page. Trustpilot serves at most 10 pages per filter combination; see Notes for reaching more.

Example: 2

starsinteger[]

Only reviews with these star ratings, 1-5. One or more values.

Example: [1, 2]

languagestringdefault:all

2-letter review language code, or all.

Example: en

date_rangeenum<string>

Only reviews published in this window, counted back from today.

Example: last30days

  • last30days — The last 30 days.
  • last3months — The last 3 months.
  • last6months — The last 6 months.
  • last12months — The last 12 months.
sortenum<string>default:recency

Review order.

Example: relevance

  • recency — Newest first.
  • relevance — Trustpilot's relevance order.
verified_onlybooleandefault:false

Only verified reviews.

Example: true

with_repliesbooleandefault:false

Only reviews the business replied to.

Example: true

topicsstring[]

Up to 10 topic ids, taken from the topics array of the Business endpoint.

Example: ["customer_service"]

searchstring

Only reviews containing this text, 1-100 characters.

Example: refund

Notes

200 reviews per filter combination. Trustpilot serves at most 10 pages of 20 reviews for any one combination of filters, so a single query reaches at most 200 reviews. The response tells you where you stand: max_page is the last page you can request for this combination, and total_filtered counts every review that matches, including the ones past page 10. In the captured example, NordVPN has 6,294 English 1- and 2-star reviews, of which one query can read 200.

Reaching more: slice the filters. Each different combination is its own set of up to 200, so splitting one large set into several smaller ones reads more of it:

  • stars: query each rating on its own ([1], [2] ... [5]). The five slices do not overlap.
  • language: query each language the business has reviews in. The Business endpoint's languages array lists them with counts. Languages do not overlap either.
  • date_range: the windows all count back from today and nest inside each other (last30days sits inside last3months), so a date range narrows a slice rather than partitioning it. Use it to read the newest reviews of a busy slice, and read total_filtered for review velocity: the count of new reviews in the last 30 days, 3, 6 or 12 months.
  • topics, search, verified_only, with_replies and sort: "relevance" each return a different subset, which overlaps with the others. Deduplicate on review_id when you combine slices.

What slicing cannot do. A stars x language grid reads up to 200 reviews per cell. When a single cell holds more than 200 reviews (5-star English reviews of a large brand, for example), you get the newest 200 of that cell, or the 200 most relevant with sort: "relevance", not its full history. For most small and mid-size businesses every cell is under 200 and the grid covers every review.

Cost. Every page is 2 credits. One full slice is 10 pages, so 20 credits for 200 reviews; a 5-star x 2-language grid at full depth is at most 200 credits for up to 2,000 reviews. Stop at max_page, which is lower than 10 for small slices.

Request

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# Slice by stars x language: each cell is its own set of up to 200 reviews.
seen = {}
for language in ["en", "de"]:
    for star in [1, 2, 3, 4, 5]:
        page = 1
        while True:
            res = client.trustpilot.reviews(
                domain="nordvpn.com", stars=[star], language=language, page=page
            )
            data = res["data"]
            for r in data["reviews"]:
                seen[r["review_id"]] = r
            if page >= data["max_page"]:
                break
            page += 1

print(len(seen), "unique reviews")

Response

"business_unit_id": "51abc000000064000538d348",
"name": "NordVPN",
"domain": "nordvpn.com",
"profile_url": "https://www.trustpilot.com/review/nordvpn.com",
"page": 1,
"per_page": 20,
"max_page": 10,
"total_filtered": 6294,
"total_pages": 100,
"total_reviews": 50991,
"count": 20,
},
"response_time": 4644
}
PreviousTrustpilot Business ProfileNextTrustpilot Categories
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy