API Description

Trustpilot Comments API — Collect Trustpilot comments using the pagination, ordering and filters listed for this operation.

Authenticate with your Pangolinfo API Key to receive structured JSON data.

Request URL

POST https://scrapeapi.pangolinfo.com/api/v1/social/trustpilot-comments

Request Headers

ParametersParameter valueTypeDescription
Content-Typeapplication/jsonstringData format
AuthorizationBearer xxxstringAuthorization Token

Collection takes up to approximately 75 seconds. Set your client timeout to 90 seconds.

Request Parameters

ParameterRequiredTypeDescription
targetYesstringTarget URL, supported ID or search keyword for this operation.
optionsNoobjectOptional collection settings, described below.

options Parameters

ParameterRequiredTypeDescription
maxPagesNointegerPages to collect. Default: 1; values above 5 are capped at 5. Must be a positive integer.
Default: 1
Minimum: 1
Maximum: 5
cursorNostring | nullContinuation cursor from the previous response. Pass the value unchanged.
sortNostringResult ordering. Supported values are listed below.
languagesNostringReview language codes, e.g. en or de. Default: all.
starsNointegerFilter reviews by rating from 1 to 5.
Minimum: 1
Maximum: 5
dateNostringReview publication date range; unrestricted by default.
Values: [“last30days”, “last3months”, “last6months”, “last12months”]
topicsNostring[] | stringUp to 10 topic IDs from post.topics[].id, as a string array or comma-separated string. Whitespace and empty entries are removed. Multiple topics form an intersection.

Only the request parameters listed on this page are used; other fields are ignored. Pass pagination cursors back unchanged, without encoding, decoding or conversion.

One page by default, capped at five per request. Page counts must be positive integers; higher values are capped at five.

topics accepts up to 10 IDs as an array or comma-separated string. Whitespace and empty entries are removed; multiple IDs form an intersection. Business topic metadata is not fetched separately.

Response Fields

FieldTypeDescription
codeintegerStatus code; 0 indicates success.
messagestringResponse message; ok on success.
pointCostnumberPoints charged for this request.
dataobjectCollected data, with fields described below.
metaobjectRequest identifier and duration in milliseconds.
billingobjectCharged units, unit price and billing rule version.

data Fields

FieldTypeDescription
typestringResult type.
commentsCountnumber | nullPlatform-reported comment total; not the number billed.
commentsobject[]Root comments in comment mode.
paginationobjectContinuation cursor and whether more results are available.

data.comments[] Fields

FieldTypeDescription
idstringRecord identifier.
urlstringContent URL.
titlestring | nullTitle
contentstring | nullContent text; may be null for records without text.
ratingnumber | nullRating
likesnumber | nullLike count.
languagestring | nullSelected subtitle language.
sourcestring | nullSource
timeobject | nullPublication time.
experiencedAtobject | nullExperienced at
updatedAtobject | nullUpdated at
nicknamestring | nullAuthor display name.
avatarstring | nullAvatar URL.
profileUrlstring | nullAuthor profile URL.
posterobjectPoster
verificationobjectVerification
locationanyLocation
productReviewsany[]Product reviews
consumersReviewCountOnSameDomainnumber | nullConsumers review count on same domain
merchantReplyobject | nullMerchant reply

data.comments[].time Fields

FieldTypeDescription
textstring | nullText value.
valuenumber | nullParsed value.

data.comments[].experiencedAt Fields

FieldTypeDescription
textstring | nullText value.
valuenumber | nullParsed value.

data.comments[].updatedAt Fields

FieldTypeDescription
textstring | nullText value.
valuenumber | nullParsed value.

data.comments[].poster Fields

FieldTypeDescription
idstring | nullRecord identifier.
countryCodestring | nullCountry code
reviewsCountnumber | nullReviews count
verifiedbooleanVerified

data.comments[].verification Fields

FieldTypeDescription
isVerifiedbooleanIs verified
levelstring | nullLevel
sourcestring | nullSource

data.comments[].merchantReply Fields

FieldTypeDescription
contentstring | nullContent text; may be null for records without text.
timeobject | nullPublication time.
updatedAtobject | nullUpdated at

data.pagination Fields

FieldTypeDescription
commentsobjectRoot comments in comment mode.

data.pagination.comments Fields

FieldTypeDescription
cursorstring | nullContinuation cursor from the previous response. Pass the value unchanged.
hasMorebooleanWhether more results are available.

Request Example

curl --request POST \
  --url https://scrapeapi.pangolinfo.com/api/v1/social/trustpilot-comments \
  --header 'Authorization: Bearer YOUR_PANGOLINFO_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "target": "https://www.trustpilot.com/review/trustpilot.com"
}'

Response Example

This excerpt shows the first item of each list. Long text and URLs are shortened; pointCost is the charge for the complete response. The playground contains the full schema.

{
  "code": 0,
  "message": "ok",
  "pointCost": 6.4,
  "data": {
    "type": "comments",
    "commentsCount": 538486,
    "comments": [
      {
        "id": "6aed760cee9bc831d2d07c5a",
        "url": "https://www.trustpilot.com/reviews/6aed760cee9bc831d2d07c5a",
        "title": "Very helpful and it did help resolve…",
        "content": "Very helpful and it did help resolve the issue with the previous review, meaning BookRun did refund the money.. Thank you for helping the public and provide ...",
        "rating": 5,
        "likes": 0,
        "language": "en",
        "source": "BannerRedirect",
        "time": {
          "text": "2026-11-06T08:39:08.000Z",
          "value": 1793954348000
        },
        "experiencedAt": {
          "text": "2026-11-06T00:00:00.000Z",
          "value": 1793923200000
        },
        "updatedAt": null,
        "nickname": "Nan Li",
        "avatar": "https://user-images.trustpilot.com/6785e0c78fb275334e266551/73x73.png",
        "profileUrl": "https://www.trustpilot.com/users/6785e0c78fb275334e266551",
        "poster": {
          "id": "6785e0c78fb275334e266551",
          "countryCode": "US",
          "reviewsCount": 4,
          "verified": false
        },
        "verification": {
          "isVerified": true,
          "level": "invited",
          "source": "invitation"
        },
        "location": null,
        "productReviews": [],
        "consumersReviewCountOnSameDomain": 1,
        "merchantReply": null
      }
    ],
    "pagination": {
      "comments": {
        "cursor": "1.8",
        "hasMore": true
      }
    }
  },
  "meta": {
    "requestId": "pg-audit-r1-trustpilot-comments-1793954367975930100",
    "durationMs": 3124
  },
  "billing": {
    "unitPrice": 0.8,
    "ruleVersion": "social-primary-v2",
    "billedCount": 8,
    "pointCost": 6.4
  }
}

Points Usage

0.8 points per root comment; included replies are free. Supported explicit reply modes charge 0.8 points per direct reply; nested replies included with those results are free.

Empty results and failed requests are not charged. Duplicate IDs are counted once within a response. Separate calls and pages are billed separately. See Social Media Reviews API billing.

Try it