ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Trustpilot6 min readOct 27, 2026

How to Get Trustpilot Reviews Through an API, Filtered by Stars, Language and Date

Use Scavio's Trustpilot API: find the business, then pull 20 reviews a call filtered by stars, language, date and text, with the reply. 2 credits a call.

Scavio Team

Oct 27, 2026

Try the Trustpilot API free
scavio
Reviews / Scraping
Trustpilot

To get Trustpilot reviews programmatically, use Scavio's Trustpilot API. POST /api/v1/trustpilot/reviews with a business's domain returns its 20 newest reviews with rating, title, full text, language, publish and experience dates, verification and the business reply, and takes filters for star rating, language, date range, topic and text. total_filtered tells you how many reviews match before you page. Every call costs 2 credits, about $0.004 on the Growth plan billed yearly, and needs no Trustpilot account.

Trustpilot's own API module is an add-on for Trustpilot for Business users and returns your own business's reviews, so it is the wrong tool for a competitor, a client or a prospect. The steps below use PODS Moving & Storage, captured on October 27, 2026.

Step 1: Find the business's domain

Trustpilot keys every business by its website domain. If you do not know it, search:

Bash
curl -s https://api.scavio.dev/api/v1/trustpilot/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "pods moving", "page_size": 5}'

This returned 997 matches in 0.9 seconds. The first row, as captured (ids, categories, logo and part of the address trimmed):

JSON
{
  "name": "PODS Moving & Storage",
  "domain": "pods.com",
  "profile_url": "https://www.trustpilot.com/review/pods.com",
  "trust_score": 4.1,
  "stars": 4,
  "review_count": 14430,
  "website": "https://www.pods.com/",
  "email": "[email protected]",
  "phone": "(877) 770-7637",
  "address": {
    "city": "Clearwater",
    "postcode": "33762",
    "country_code": "US"
  },
  "verified": true
}

Search matches loosely: the other four rows for "pods moving" included a vape pod shop. When you already know the domain, skip this step.

Step 2: Pull the newest reviews

Bash
curl -s https://api.scavio.dev/api/v1/trustpilot/reviews \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "pods.com"}'

The response opens with the paging state (ids trimmed):

JSON
{
  "name": "PODS Moving & Storage",
  "domain": "pods.com",
  "page": 1,
  "per_page": 20,
  "max_page": 10,
  "total_filtered": 14342,
  "total_pages": 718,
  "count": 20
}

Then reviews[] holds 20 reviews, newest first. They ran from October 23 to October 26, 2026, and 15 of the 20 were 5-star. total_pages is 718 but max_page is 10: Trustpilot serves 10 pages per filter combination, which is why the next step matters.

Step 3: Filter to the reviews you need

Most jobs want a slice, not the newest 200 of everything. Ask for English 1- and 2-star reviews from the last 3 months:

Bash
curl -s https://api.scavio.dev/api/v1/trustpilot/reviews \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "pods.com", "stars": [1, 2], "language": "en", "date_range": "last3months"}'

total_filtered came back as 225, a little over the 200 that one filter combination serves, so to read all of it you would split it into a 1-star call and a 2-star call. The same call with last12months returned 790. One review from the page, as captured (reviewer details and the reply trimmed):

JSON
{
  "review_id": "6adabf3ad1962c8ab3e1863f",
  "url": "https://www.trustpilot.com/reviews/6adabf3ad1962c8ab3e1863f",
  "rating": 1,
  "title": "Completely mis leading contract",
  "text": "Completely mis leading contract,  terrible level  of communication. No visible invoices. Changing the pay based on fuel prices. ...",
  "language": "en",
  "source": "FileUploadInvitation",
  "verified": true,
  "verification_level": "invited",
  "published_at": "2026-10-23T03:58:18.000Z",
  "experienced_at": "2026-10-09T00:00:00.000Z",
  "consumer": { "country_code": "US", "review_count": 2 },
  "reply": {
    "text": "... We strive to be transparent with our pricing by outlining all charges in your order confirmation. ...",
    "published_at": "2026-10-23T14:53:14.000Z"
  }
}

PODS replied 11 hours after the review went up. Of the 20 reviews on this page, 19 had a reply; the one without had been posted the evening before we called. Other filters: search for reviews containing a word, topics with ids from the business profile, verified_only, with_replies and sort by relevance.

Step 4: Page through, and slice past 200

Send page from 2 up to max_page. When a slice holds more than 200 reviews, split it: one call per star rating, per language or per date range, then deduplicate on review_id. Exporting Trustpilot reviews past the 200 limit has the full script and how far slicing reaches on a large brand.

Step 5: Add the business context

Bash
curl -s https://api.scavio.dev/api/v1/trustpilot/business \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "pods.com"}'

The profile puts reviews in context in one call. For PODS, trimmed:

JSON
{
  "trust_score": 4.1,
  "review_count": 14430,
  "review_count_last_12_months": 4075,
  "rating_distribution": { "1": 2153, "2": 589, "3": 728, "4": 1142, "5": 9818 },
  "claimed": true,
  "reply_behavior": {
    "reply_rate": 99.7,
    "avg_days_to_reply": 0.03,
    "negative_reviews": 780,
    "negative_reviews_replied": 778,
    "last_reply_to_negative_at": "2026-10-23T14:53:14.000Z"
  }
}

It also returns review counts per language, Trustpilot's AI summary and its topics (delivery_service, service, staff, customer_service and user_experience for PODS), whose ids feed the reviews topics filter. To fetch one review you already have an id for, /api/v1/trustpilot/review returns it with the reply and the business it belongs to.

All six endpoints

EndpointWhat it returnsCredits
/api/v1/trustpilot/reviews20 reviews a page, filtered by stars, language, date, topic and text, with replies2
/api/v1/trustpilot/businessProfile with star distribution, reply rate, claimed status, contacts, AI summary and topics2
/api/v1/trustpilot/searchUp to 100 businesses per call with TrustScore, review count, website and published contacts2
/api/v1/trustpilot/categoryBusinesses in a category by country, sorted by relevance, review count or latest review2
/api/v1/trustpilot/categoriesThe category tree, or categories matching a name2
/api/v1/trustpilot/reviewOne review by id with its reply and business2

For a side-by-side with other Trustpilot APIs, see the best Trustpilot scraper APIs. To run the same pull across many businesses, see how to analyze Trustpilot reviews in bulk.

Getting started

  1. Sign up at dashboard.scavio.dev/sign-up: 50 free credits, enough for 25 Trustpilot calls, no card required.
  2. Copy your API key from the dashboard.
  3. Send a POST to /api/v1/trustpilot/reviews with a domain and your key in the Authorization header.

Try the Trustpilot API free in the playground first, or call it from Claude and other agents through the MCP server.

Reference: Trustpilot API overview · reviews · business · search · category · single review

Frequently asked questions

How do I get reviews data from Trustpilot with an API?

Trustpilot's own API module returns reviews for your own business once you have the add-on and OAuth credentials. For any other business, send its domain to Scavio's /api/v1/trustpilot/reviews: each call returns 20 reviews with rating, title, text, language, dates, verification and the business reply, plus total_filtered and max_page for paging.

Can I get more than 200 Trustpilot reviews for one business?

Trustpilot serves 10 pages of 20 reviews for any one combination of filters. Each star rating, language, date range and text search is a separate combination, so querying them one at a time and deduplicating on review_id reaches further; for most small and mid-size businesses that covers every review.

Can I see how a business replied to each review?

Yes. Each review carries a reply object with the reply text and its publish date, or null when there is none, and with_replies narrows a call to answered reviews only. The business endpoint adds the overall reply rate on negative reviews and the average days to reply.

How much does it cost to pull Trustpilot reviews?

Every Scavio Trustpilot call costs 2 credits and a reviews call returns 20 reviews, so 1,000 reviews take 50 calls and 100 credits: about $0.20 on the Growth plan billed yearly. A full 200-review slice is 20 credits. New accounts get 50 free credits with no card.

Trustpilot reviews as JSON

  • Filter by stars, language, date and text
  • Business replies and verification on each review
  • 2 credits a call, no Trustpilot account
Try the Trustpilot API free

50 free credits, no credit card

On this page

  1. Step 1: Find the business's domain
  2. Step 2: Pull the newest reviews
  3. Step 3: Filter to the reviews you need
  4. Step 4: Page through, and slice past 200

Related articles

View all
  • scavio
    Reviews / Scraping
    Trustpilot
    Can You Analyze Trustpilot Reviews in Bulk Across Many Businesses? Yes, Here Is How
  • scavio
    Comparison / Reviews
    Trustpilot
    6 Best Trustpilot Scraper APIs in 2026: Scavio Finds Who Ignores Bad Reviews
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