# Trustpilot API — company reviews, TrustScore, profile details, review filters, category browsing, and consumer profiles from Trustpilot.com

> Get a company's Trustpilot reviews and its full profile from trustpilot.com — TrustScore, star rating, total review count, 5-to-1-star rating distribution, business categories, and every review with rating, title, text, date, verified status, likes and the company's reply. Newest first; optionally filter by star rating.
> ReefAPI engine `trustpilot` · 12 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/trustpilot/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed or blocked calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http, `Authorization: Bearer <key>`) and your assistant can call these actions directly.

## Endpoints

### POST /trustpilot/v1/company/reviews — 1 credit
Get a company's Trustpilot reviews and its full profile from trustpilot.com — TrustScore, star rating, total review count, 5-to-1-star rating distribution, business categories, and every review with rating, title, text, date, verified status, likes and the company's reply. Newest first; optionally filter by star rating.

**Parameters:**
- `company` (string, required) — The company's website domain (e.g. gossby.com), its Trustpilot review-page URL, or its Trustpilot page slug.
- `maxReviews` (integer, optional, default 200) — How many reviews to return (1–20000). More reviews take longer.
- `sort` (enum, optional, default "most_relevant") — How to order reviews. [one of: most_relevant, recency]
- `date_posted` (enum, optional, default "any") — Only reviews from this time range. [one of: any, last_12_months, last_6_months, last_3_months, last_30_days]
- `rating` (string, optional) — Only reviews with these star ratings. A single value or a comma-separated list, e.g. '5' or '4,5'.
- `verified` (boolean, optional, default false) — Only verified reviews. Tip: works best on its own — combining 'verified' with 'date_posted' or 'query' narrows some companies to an empty view that responds slowly.
- `with_replies` (boolean, optional, default false) — Only reviews that have an owner reply.
- `query` (string, optional) — Only reviews matching this keyword/phrase.
- `languages` (string, optional, default "all") — Only reviews written in this language (ISO code, e.g. 'en', 'de'); 'all' for every language.
- `includeCompany` (boolean, optional, default true) — Include the company profile alongside the reviews.
- `page` (integer, optional, default 1) — Page number (1–500; Trustpilot serves at most 500 pages per view).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** results[]{company{domain, name, trust_score, stars, number_of_reviews, number_of_reviews_last_12_months, rating_distribution (5★..1★), categories, is_claimed, is_closed, reply_behavior{reply_percentage, average_days_to_reply}, ai_summary}, reviews[]{review_id, rating, title, text, language, published_date, experience_date, is_verified, likes, is_pending, is_flagged, reviewer_name*, reviewer_country, reply_text}, total_reviews, completeness_pct} (*reviewer name/country redacted by default; request include_pii=true for full reviewer data)

**Example request body:**
```json
{
  "company": "amazon.com",
  "maxReviews": 40
}
```

### POST /trustpilot/v1/company/details — 1 credit
The full Trustpilot company profile WITHOUT reviews (cheaper than company/reviews when you only need the listing) → TrustScore, star rating, total reviews (and last-12-months), 5-to-1-star distribution, category rankings (e.g. #2 of 26 in Bank), contact info (address, phone, website, email), how the business replies to reviews (reply rate + average days), business verification, claimed/closed status, what customers talk about most (AI topic summaries), the AI review summary and the company description. By company domain.

**Parameters:**
- `company` (string, required) — The company's website domain (e.g. gossby.com), its Trustpilot review-page URL, or its Trustpilot page slug.
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** company{name, domain, trust_score, stars, number_of_reviews, number_of_reviews_last_12_months, rating_distribution (5★..1★), categories, rankings[]{category, rank, of}, breadcrumb, is_claimed, is_closed, is_collecting_reviews, claimed_date, reply_behavior{reply_percentage, average_days_to_reply, negative_reviews_with_replies, total_negative_reviews}, verification{verified_payment_method, verified_user_identity, verified_by_google}, locations_count, website_url, website_title, contact_email, contact_phone, contact_address, contact_city, contact_country, contact_zip, topics[]{topic, summary}, ai_summary, description}

**Example request body:**
```json
{
  "company": "lendingclub.com"
}
```

### POST /trustpilot/v1/category/browse — 1 credit
List the companies in a Trustpilot category (20/page) → each company's name, domain, TrustScore, review count and location. Filter by country, minimum TrustScore and claimed status, and sort by recently-reviewed. Also returns the category's size and subcategories, plus the newest companies and the recently-reviewed companies in that category — all in one call.

**Parameters:**
- `categoryId` (enum, required) — Trustpilot category. Pick from the list (full 2-level taxonomy) — or type any deeper category slug from a trustpilot.com/categories/<slug> URL; those work too. [one of: animals_pets, animal_health, animal_parks_zoo, cats_dogs, horses_riding, pet_services, pet_stores, beauty_wellbeing, cosmetics_makeup, hair_care_styling, personal_care, salons_clinics, tattoos_piercings, wellness_spa, yoga_meditation, business_services, administration_services, associations_centers, hr_recruiting, import_export, it_communication, office_space_supplies, print_graphic_design, research_development, sales_marketing, shipping_logistics, wholesale, construction_manufactoring, architects_engineers, building_materials, chemicals_plastic, construction_services, contractors_consultants, factory_equipment, garden_landscaping, industrial_supplies, manufacturing, production_services, tools_equipment, education_training, colleges_universities, courses_classes, education_services, language_learning, music_theater_classes, school_high_school, specials_schools, vocational_training, electronics_technology, appliances_electronics, audio_visual, computers_phones, internet_software, repair_services, events_entertainment, adult_entertainment, childrens_entertainment, clubbing_nightlife, events_venues, gambling, gaming, museums_exibits, music_movies, theater_opera, wedding_party, food_beverages_tobacco, agriculture_produce, asian_grocery_stores, bakery_pastry, beer_wine, beverages_liquor, candy_chocolate, coffee_tea, food_production, fruits_vegetables, grocery_stores_markets, lunch_catering, meat_seafood_eggs, smoking_tobacco, health_medical, clinics, dental_services, diagnostics_testing, doctors_surgeons, health_equipment, hospital_emergency, medical_specialists, mental_health, pharmacy_medicine, physical_aids, pregnancy_children, therapy_senior_health, vision_hearing, hobbies_crafts, art_handicraft, astrology_numerology, fishing_hunting, hobbies, metal_stone_glass_work, music_instruments, needlework_knitting, outdoor_activities, painting_paper, home_garden, bathroom_kitchen, cultural_goods, decoration_interior, energy_heating, fabric_stationary, furniture_stores, garden_pond, home_garden_services, home_goods_stores, home_improvements, home_services, cleaning_service_providers, craftsman, house_services, house_sitting_security, moving_storage, plumbing_sanitation, repair_service_providers, legal_services_government, customs_toll, government_department, law_enforcement, lawyers_attorneys, legal_service_providers, libraries_archives, municipal_department, registration_services, media_publishing, books_magazines, media_information, photography, video_sound, money_insurance, accounting_tax, banking_money, credit_debt_services, insurance, investments_wealth, real_estate, public_local_services, employment_career, funeral_memorial, housing_associations, kids_family, military_veteran, nature_environment, professional_organizations, public_services_welfare, religious_institutions, shelters_homes, waste_management, restaurants_bars, african_pacific_cuisine, bars_cafes, chinese_korean_cuisine, european_cuisine, general_restaurants, japanese_cuisine, mediterranean_cuisine, middle_eastern_cuisine, north_south_american_cuisine, southeast_asian_cuisine, takeaway, vegetarian_diet, shopping_fashion, accessories, clothing_underwear, clothing_rental_repair, costume_wedding, jewelry_watches, malls_marketplaces, sports, ball_games, bat-and-ball_games, bowls_lawn_sports, dancing_gymnastics, equipment_associations, extreme_sports, fitness_weight_lifting, golf_ultimate, hockey_ice_skating, martial_arts_wrestling, outdoor_winter_sports, shooting_target_sports, swimming_water_sports, tennis_racquet_sports, travel_vacation, accomodations_lodging, activities_tours, airlines_air_travel, hotels, travel_agencies, utilities, energy_power, oil_fuel, water_utilities, vehicles_transportation, air_water_transport, airports_parking, auto_parts_wheels, bicycles, cars_trucks, motorcycle_powersports, other_vehicles_trailers, taxis_public_transport, vehical_rental, vehicle_repair_fuel]
- `sort` (enum, optional, default "recommended") — How to order the companies in a category. [one of: recommended, latest_review]
- `country` (string, optional) — Only companies based in this country (ISO-2 code, e.g. 'GB', 'US', 'DE'). Leave empty for all countries.
- `min_rating` (enum, optional, default "any") — Only companies with at least this TrustScore. [one of: any, 3, 3.5, 4, 4.5]
- `claimed` (boolean, optional, default false) — Only companies that have claimed their Trustpilot profile.
- `page` (integer, optional, default 1) — Page number (1–500; Trustpilot serves at most 500 pages per view).
- `cursor` (string, optional) — Next page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** companies[]{name, domain, trustScore, numReviews, categories, location} + categoryDetails{displayName, numberOfBusinesses, subcategories[]} + newestCompanies[] + recentlyReviewedCompanies[] + totalHits + totalPages + meta.pagination{page, has_more, next_cursor, total}

**Example request body:**
```json
{
  "categoryId": "electronics_technology"
}
```

### POST /trustpilot/v1/category/companies — 1 credit
List the companies in a Trustpilot category (20/page), ranked → each company's name, domain, TrustScore, review count, categories and location. Filter by country, minimum TrustScore and claimed status. Paginate with page.

**Parameters:**
- `categoryId` (string, required) — A Trustpilot category id/slug, e.g. 'electronics_technology', 'restaurants_bars' (or a trustpilot.com/categories/<slug> URL).
- `sort` (enum, optional, default "recommended") — How to order the companies in a category. [one of: recommended, latest_review]
- `country` (string, optional) — Only companies based in this country (ISO-2 code, e.g. 'GB', 'US', 'DE'). Leave empty for all countries.
- `min_rating` (enum, optional, default "any") — Only companies with at least this TrustScore. [one of: any, 3, 3.5, 4, 4.5]
- `claimed` (boolean, optional, default false) — Only companies that have claimed their Trustpilot profile.
- `page` (integer, optional, default 1) — Page number (1–500; Trustpilot serves at most 500 pages per view).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** companies[]{name, domain, trustScore, numReviews, categories, location} + categoryDetails + meta.pagination

**Example request body:**
```json
{
  "categoryId": "electronics_technology"
}
```

### POST /trustpilot/v1/category/recently-reviewed — 1 credit
The companies in a Trustpilot category that were reviewed most recently → name, domain, TrustScore, review count and location.

**Parameters:**
- `categoryId` (string, required) — A Trustpilot category id/slug, e.g. 'electronics_technology', 'restaurants_bars' (or a trustpilot.com/categories/<slug> URL).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** companies[]{name, domain, trustScore, numReviews, location} + categoryDetails

**Example request body:**
```json
{
  "categoryId": "electronics_technology"
}
```

### POST /trustpilot/v1/category/newest — 1 credit
The newest companies added to a Trustpilot category → name, domain, TrustScore, review count and location.

**Parameters:**
- `categoryId` (string, required) — A Trustpilot category id/slug, e.g. 'electronics_technology', 'restaurants_bars' (or a trustpilot.com/categories/<slug> URL).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** companies[]{name, domain, trustScore, numReviews, location} + categoryDetails

**Example request body:**
```json
{
  "categoryId": "electronics_technology"
}
```

### POST /trustpilot/v1/category/details — 1 credit
Details of a Trustpilot category → its display name, the number of businesses in it, and its subcategories.

**Parameters:**
- `categoryId` (string, required) — A Trustpilot category id/slug, e.g. 'electronics_technology', 'restaurants_bars' (or a trustpilot.com/categories/<slug> URL).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** categoryDetails{displayName, numberOfBusinesses, subcategories[]}

**Example request body:**
```json
{
  "categoryId": "electronics_technology"
}
```

### POST /trustpilot/v1/category/search — 1 credit
Search Trustpilot categories by keyword → matching categories with their id and display name (feed a categoryId into category/companies).

**Parameters:**
- `query` (string, required) — A keyword to find matching Trustpilot categories.
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** categories[]{categoryId, displayName}

**Example request body:**
```json
{
  "query": "nike"
}
```

### POST /trustpilot/v1/company/search — 1 credit
Search Trustpilot for companies by name (10 matches/page) → each match's name, domain, TrustScore, star rating, review count, categories and location. Filter by minimum TrustScore and minimum review count. Also returns matching categories.

**Parameters:**
- `query` (string, required) — The company name/keyword to search for.
- `min_rating` (enum, optional, default "any") — Only companies with at least this TrustScore. [one of: any, 3, 4, 4.5]
- `min_review_count` (enum, optional, default "any") — Only companies with at least this many reviews. [one of: any, 25, 50, 100, 250, 500]
- `page` (integer, optional, default 1) — Page number (1–500; Trustpilot serves at most 500 pages per view).
- `cursor` (string, optional) — Next page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** matches[]{name, domain, trustScore, stars, numReviews, categories, location, businessUnitId} + categories[] + pagination + meta.pagination{page, has_more, next_cursor, total}

**Example request body:**
```json
{
  "query": "nike"
}
```

### POST /trustpilot/v1/consumer/details — 1 credit
A Trustpilot consumer's public profile → display name, country, number of reviews written, and review statistics. By consumer id.

**Parameters:**
- `consumer_id` (string, required) — The Trustpilot consumer id (from a review's consumer, or a trustpilot.com/users/… URL).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** consumer{displayName*, country, numberOfReviews, verified} + statistics (*name/country redacted by default)

### POST /trustpilot/v1/consumer/reviews — 1 credit
Every review a Trustpilot consumer has written across all companies → each review's company, rating, title, text and date. Paginate with page.

**Parameters:**
- `consumer_id` (string, required) — The Trustpilot consumer id (from a review's consumer, or a trustpilot.com/users/… URL).
- `page` (integer, optional, default 1) — Page number (1–500; Trustpilot serves at most 500 pages per view).
- `cursor` (string, optional) — Next page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** reviews[]{companyName, companyDomain, rating, title, text, date, isVerified} + meta.pagination{page, has_more, next_cursor}

### POST /trustpilot/v1/reviewer/profile — 1 credit
Alias of consumer/details + consumer/reviews: a reviewer's profile AND every review they have written. By consumer id.

**Parameters:**
- `consumer_id` (string, required) — The Trustpilot consumer id (from a review's consumer, or a trustpilot.com/users/… URL).
- `page` (integer, optional, default 1) — Page number (1–500; Trustpilot serves at most 500 pages per view).
- `cursor` (string, optional) — Next page: pass the previous response's meta.pagination.next_cursor (the 'Next' button does this automatically).
- `locale` (enum, optional, default "en-US") — Trustpilot country/locale (the website footer's country selector). en-US is fully served today; other locales are accepted and currently resolve to the en-US view (per-locale routing is being added). [one of: da-DK, de-AT, de-CH, de-DE, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, fi-FI, fr-BE, nl-BE, fr-FR, it-IT, ja-JP, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE]

**Returns:** profile{displayName*, country, numberOfReviews, verified, stats} + reviews[]{companyName, companyDomain, rating, title, text, date, isVerified} + meta.pagination (*redacted by default)

## More
- Try it live, no code: https://reefapi.com/playground?engine=trustpilot
- Human docs page: https://reefapi.com/docs/trustpilot
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
