# Trustpilot Reviews API (trustpilot.reviews)

- Canonical page: https://everyinfra.com/en/trustpilot-api/reviews
- Endpoint: POST https://api.everyinfra.com/api/v1/social with {"platform": "trustpilot", "action": "reviews", "params": {...}}
- Price: $0.001389 per call ($1.39 per 1,000 requests); failed calls and empty results are not charged
- Returns: list, default 20, max 200 per call
- Mode: sync; add "mode": "async" for slow tasks

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=trustpilot&action=reviews

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| company | not declared | yes | not declared | Target company website domain (such as `example.com`) or full Trustpilot `/review/` URL. It does not accept localized business names. In `profile`, it aggregates company profiles and ratings from linked reviews, while `reviews` fetches individual review records. |
| date | enum: last12months / last30days / last3months / last6months / last7days | no | not declared | Publish-date window for the `reviews` action: `last7days`, `last30days`, `last3months`, `last6months` or `last12months` (counting back 7, 30, 92, 183 or 366 days). Leave it empty for reviews from any date. Other values, including specific dates, return a 422 error before any charge. |
| lang | not declared | no | not declared | Review language as two-letter ISO 639-1 codes, either one code or an array (such as `en` or `["en","de"]`); it takes precedence over `language`. Filtering reviews within `profile` may affect whether linked company data is returned. |
| language | not declared | no | not declared | One two-letter ISO 639-1 language code (such as `en`, `fr`, `de` or `es`) for filtering reviews in the `reviews` action. Without it, you get the English reviews that Trustpilot shows by default. If `lang` is provided, it takes precedence over this parameter. |
| sort | enum: newest / recency / relevance | no | not declared | Sorting mode for the `reviews` action: `recency` or `newest` (default; both put the newest reviews first), or `relevance` to sort by relevance. Other values return a 422 error before any charge. |
| stars | not declared | no | not declared | Array of rating star strings (such as `["1","2"]`) to filter reviews by star counts from 1 to 5. Leaving this field empty includes all ratings; it does not represent a minimum rating threshold. |
| verified_only | not declared | no | not declared | Boolean flag (`true` or `false`) filtering for verified review status. This reflects Trustpilot's consumer review verification label and does not indicate an EveryInfra platform audit. |
| limit | integer (1–200) | no | 20 | The most rows to return in this call, an integer from 1 to 200. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| id | The record's unique ID on the platform. Unique only within one platform; IDs can repeat across platforms. |
| url | Link to the record on the platform. |
| title | Title. null when the platform has no titles (for example text-only posts). |
| text | Body text with HTML removed, returned in full and never cut short (on a few platforms the list results themselves carry only an excerpt; the platform's field notes say so). |
| rating | Rating. **The scale varies by platform**: rating_scale on the same row gives the maximum (usually 5; Booking, Douban, iQIYI and NAVER use 10). Convert with rating_scale before comparing across platforms, or the comparison can come out backwards. |
| rating_scale | Maximum of rating in the same row: 5 for five-star scales, 10 for ten-point scales. Present only when the row has a rating. |
| language | Content language code (for example zh, en) as judged by the platform; it can be wrong. |
| like_count | Likes. null means the platform or this capability does not disclose it; it is not 0. |
| is_verified | Whether the platform verified the account. null means it cannot be determined. |
| verification_level | platform-native meaning |
| source | platform-native meaning |
| country | Country or region: a full name or an ISO code depending on the platform, not normalized. |
| author_name | Author's display name. |
| author_id | Author's unique ID on the platform. |
| author_image | platform-native meaning |
| author_review_count | platform-native meaning |
| reply_text | platform-native meaning |
| reply_at | platform-native meaning |
| experience_at | platform-native meaning |
| updated_at | platform-native meaning |
| posted_at | Publish time in ISO 8601, UTC (for example 2026-08-07T12:34:56+00:00). Non-standard strings from the platform are passed through as is, so parse defensively. null means the platform does not disclose it. |
| company_name | platform-native meaning |
| company_domain | platform-native meaning |
| platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "trustpilot",
  "action": "reviews",
  "params": {
    "company": "pipedrive.com"
  }
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "trustpilot",
        "action": "reviews",
        "params": {
            "company": "pipedrive.com",
        },
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

Real response to the example request above, captured 2026-09-26T08:56:04Z. `results` and `count` are real with personal information (names, handles, avatars, profile links, contact details) removed; the list keeps the first 2 of 20. `id`, `billing` and `quota` differ on every call, so only their shape is shown.

```text
{
  "id": "req_…",
  "platform": "trustpilot",
  "action": "reviews",
  "results": [
    {
      "id": "6ab516bdf6b3a0e76ca64942",
      "url": "https://www.trustpilot.com/reviews/6ab516bdf6b3a0e76ca64942",
      "title": "Training from Walid was outstanding",
      "text": "Training from Walid was outstanding. He knows the system inside out and took the time to learn my business and to find the most useful and relevant tools to focus on. His sessions were engaging and I've been able to get PipeDrive working perfectly for us in a very short space of …",
      "rating": 5,
      "language": "en",
      "like_count": 0,
      "is_verified": false,
      "verification_level": "not-verified",
      "source": "Organic",
      "country": "IE",
      "author_name": "•••",
      "author_id": "•••",
      "author_review_count": 1,
      "reply_text": "Hi Paul,\n\nThank you so much for sharing your feedback!\n\nWe’re delighted to hear that the team provided such an outstanding training experience. It’s great to know that they took the time to understand your business and tailor the sessions to the tools and features most relevant t…",
      "reply_at": "2026-09-24T14:36:05+00:00",
      "experience_at": "2026-09-24T00:00:00+00:00",
      "posted_at": "2026-09-24T14:25:33+00:00",
      "company_name": "Pipedrive",
      "company_domain": "pipedrive.com",
      "platform": "trustpilot",
      "rating_scale": 5
    },
    {
      "id": "6ab39f79780950e2d7706185",
      "url": "https://www.trustpilot.com/reviews/6ab39f79780950e2d7706185",
      "title": "Useful and great session with PipeDrive",
      "text": "Rafael was very clear. Going through the session, he had some nice tips and insights. Was very helpful!",
      "rating": 5,
      "language": "en",
      "like_count": 0,
      "is_verified": false,
      "verification_level": "invited",
      "source": "BasicLink",
      "country": "NL",
      "author_name": "•••",
      "author_id": "•••",
      "author_review_count": 1,
      "reply_text": "Hi Lisa,\n\nThank you for sharing your feedback!\n\nWe’re delighted to hear that the team was clear and helpful throughout the session, and that his tips and insights were valuable to you.\n\nBest regards,\nPipedrive Team",
      "reply_at": "2026-09-23T11:55:49+00:00",
      "experience_at": "2026-09-23T00:00:00+00:00",
      "posted_at": "2026-09-23T11:44:25+00:00",
      "company_name": "Pipedrive",
      "company_domain": "pipedrive.com",
      "platform": "trustpilot",
      "rating_scale": 5
    }
  ],
  "count": 20,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=trustpilot
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
