nvNeuralVerge
Company intelligence

Trustpilot Reviews API — Customer Ratings, Text & Author

Send a business domain, Trustpilot review URL, or company website URL and this source returns customer reviews for that business: rating, text and author, per reviewer.

Example response
{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "kind": "trustpilot_business_reviews",
  "business": "hubspot.com",
  "max_items": 2,
  "business_found": true,
  "partial": false,
  "human": "# Trustpilot business reviews\n\n- **Business:** hubspot.com\n- **Max items:** 2\n- **Records returned:** 2\n- **Proxy traffic:** 1.08 MB",
  "machine": {
    "total_items": 2,
    "reviews": [
      {
        "id": "6aab93ec9c591d1f56ba1c6e",
        "url": "https://www.trustpilot.com/reviews/6aab93ec9c591d1f56ba1c6e",
        "title": "HubSpot - Expensive, Clunky and No Longer Fit for Purpose",
        "text": "Our experience with HubSpot has been appalling.\n\nThey are incredibly quick to sell and upsell, make promises about functionality, encourage you to spend even more money customising the platform to suit your business, and then make unilateral changes that interfere with those very customisations and workflows.\n\nA CRM is supposed to make a business more efficient. HubSpot's changes have done the opp",
        "rating": 1,
        "written_date": "2026-09-17T09:17:00.000Z",
        "experienced_date": "2026-09-17T00:00:00.000Z",
        "is_unprompted": true,
        "is_verified": false,
        "useful_count": 0,
        "language": "en",
        "author": {
          "id": "67caafa0c7a2ca2a17330776",
          "name": "Scott McPhillips",
          "country": "AU",
          "review_count": 2,
          "image": "https://user-images.trustpilot.com/67caafa0c7a2ca2a17330776/73x73.png",
          "url": "https://www.trustpilot.com/users/67caafa0c7a2ca2a17330776"
        },
        "business_reply": null
      },
      {
        "id": "6aa976bc521222c71dff1b6d",
        "url": "https://www.trustpilot.com/reviews/6aa976bc521222c71dff1b6d",
        "title": "Fire HubSpot.",
        "text": "I missed cancelling components of my contract by a week, and it auto-renewed, and the customer service rep refused to adjust my contract and is forcing me to pay hundreds of dollars a month for things I don't use or want.\n\nI didn't ask for auto-renewal, I miss a deadline by a week and suddenly they decide I owe them several thousand dollars?\n\nLets be honest, nobody reads automated reminder emails ",
        "rating": 1,
        "written_date": "2026-09-15T18:47:56.000Z",
        "experienced_date": "2026-09-14T00:00:00.000Z",
        "is_unprompted": true,
        "is_verified": false,
        "useful_count": 0,
        "language": "en",
        "author": {
          "id": "66fda755084cca311f24a95d",
          "name": "Charles Dejager",
          "country": "US",
          "review_count": 2,
          "image": null,
          "url": "https://www.trustpilot.com/users/66fda755084cca311f24a95d"
        },
        "business_reply": null
      }
    ],
    "proxy_traffic_bytes": 1129643
  },
  "total_points": 2
}
You send
A business domain, Trustpilot URL, or company website URL
You get back
Reviews with rating, text and author
Coverage
Trustpilot businesses with a public review listing.
Price
1 point per returned result, up to 300 per request — $1 per 1,000
Billed per record actually returned, capped by max_items. A business with no reviews costs nothing.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Reading reviews by handOpen the page, click through pages of reviewsFree, and very slow past a handfulNobody reads hundreds of reviews this way
Building a scraperWrite it, host it, repair it when the layout movesEngineering timeA maintenance commitment for something that isn't your product
NeuralVergeOne request per business$1 per 1,000, misses not billedReviews are self-selected — strong opinions in both directions are over-represented
Response

What you get back

Every field in the response shown above.

FieldTypeDescription
partialbooleanTrue if the scrape hit its time budget and stopped early — re-run with a smaller max_items for a complete result.
business_foundbooleanWhether the business resolved on Trustpilot at all.
total_itemsnumberHow many reviews came back.
reviewsarrayThe reviews, as Trustpilot orders them.
reviews[].idstringTrustpilot's internal review ID.
reviews[].urlstringDirect URL to this review.
reviews[].titlestringReview headline, when the reviewer gave one.
reviews[].textstringFull review text.
reviews[].ratingnumberRating given by the reviewer.
reviews[].written_datestringWhen the review was written.
reviews[].experienced_datestringWhen the reviewer says the experience happened.
reviews[].is_unpromptedbooleanWhether the review was left without an invitation from the business.
reviews[].is_verifiedbooleanWhether Trustpilot marks the review as a verified order/experience.
reviews[].useful_countnumberHow many people marked the review as useful.
reviews[].languagestringLanguage code of the review text.
reviews[].authorobjectReviewer details: id, name, country, review_count, image and profile url.
reviews[].business_replyobject | nullThe business's reply to this review, when there is one.
proxy_traffic_bytesnumberSize of the raw page data collected to build this result.
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

This endpoint is synchronous: the call blocks until the scrape completes and returns the reviews directly. business is required; max_items is optional (1-300, default 25). If a scrape hits its time budget before finishing, the response comes back with partial: true and whatever it collected so far — re-run with a smaller max_items for a complete result.

curl -X POST https://api.neuralverge.ai/functions/v1/run-trustpilot-reviews \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "business": "hubspot.com", "max_items": 25 }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Voice-of-customer research

Mine the exact language customers use about a company's service.

Reputation monitoring

Track how a competitor's review sentiment shifts over time.

Customer service benchmarking

See how companies in your space handle complaints in public.

Sentiment analysis at scale

Pull enough reviews to run real analysis instead of reading the first page.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Trustpilot businesses with a public review listing.

Freshness

Read at request time.

Handling

This source returns publicly visible review information, stamped with the domain/URL it was read from and a session id you can trace.

What it will not do
  • —Reviews are self-selected and skew towards strong opinions in both directions.
  • —Businesses can influence how many reviews they collect, so volume isn't a neutral signal.
  • —Businesses with few reviews return a thin, less representative sample.
FAQ

Questions, answered

Yes — every Data Source endpoint, including this one, is synchronous: the scrape runs inside the request and the result comes back in the same response, no polling. If a scrape hits its time budget before finishing, the response comes back with partial: true and whatever records it collected so far — re-run with a smaller max_items to get a complete result instead of a partial one.

Related

Related sources

Try trustpilot reviews on your own data

One request format across every source in the catalog.

Get started