Trustpilot Company Review Extractor
Pull reviews from any Trustpilot company page with star rating, reviewer details, verification status, and company replies, filterable by rating, language, and verification.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect. Reviews: scrape reviews. Companies: one profile record per company, with contacts and transparency data. Search companies: find companies by keyword. |
startUrls | array | optional | Trustpilot company page URLs, e.g. https://www.trustpilot.com/review/notion.so. You can also paste a company's own website URL. Merged with 'Company domains or names'. |
companies | array | optional | Domains (booking.com, notion.so) or company names (Nike, Notion). Names are resolved through Trustpilot search. Merged with 'Company URLs'. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | What to collect. Reviews: scrape reviews. Companies: one profile record per company, with contacts and transparency data. Search companies: find companies by keyword. |
startUrls | array | optional | Trustpilot company page URLs, e.g. https://www.trustpilot.com/review/notion.so. You can also paste a company's own website URL. Merged with 'Company domains or names'. |
companies | array | optional | Domains (booking.com, notion.so) or company names (Nike, Notion). Names are resolved through Trustpilot search. Merged with 'Company URLs'. |
searchQueries | array | optional | Keywords for mode=searchCompanies, e.g. plumber, dentist, CRM software. |
searchCountry | string | optional | Country context for company search. It affects ranking and localisation, not a strict country filter. |
maxCompanies | integer | optional | Maximum company results per search keyword (mode=searchCompanies). |
maxReviews | integer | optional | Maximum reviews per company. Values above 200 are collected by splitting Trustpilot's 200-review view across star, language, and topic slices. |
maxItems | integer | optional | Maximum reviews across all companies in one run. |
filterStars | string | optional | Only include reviews with this star rating. Leave on 'All stars' to include every rating. |
filterLanguage | string | optional | Only include reviews in this language. Trustpilot only serves a language a company actually has; otherwise the run returns no reviews for that company instead of mixing languages. |
filterDateRange | string | optional | Only include reviews posted in this rolling window. |
sortBy | string | optional | How Trustpilot orders reviews before collection. |
onlyVerified | boolean | optional | Only include reviews Trustpilot marks as verified purchases. |
onlyWithReplies | boolean | optional | Only include reviews that already have a company reply. |
searchKeyword | string | optional | Only include reviews whose title or text contains this phrase. Applied by Trustpilot before collection. Works with mode=reviews. |
filterReviewerCountries | array | optional | Only keep reviews from reviewers in these ISO country codes, e.g. US, GB, DE. Applied after collection. |
publishedAfter | string | optional | Exact cutoff date (YYYY-MM-DD). Reviews older than this are skipped. Works with mode=reviews. |
lastDays | integer | optional | Rolling cutoff for scheduled runs, e.g. 7 for weekly or 1 for daily. If both this and the exact date are set, the more recent cutoff wins. |
Download the published input schema
View complete JSON
{
"description": "Choose what to collect: company reviews, company profiles, or companies matching a keyword.",
"properties": {
"companies": {
"description": "Domains (booking.com, notion.so) or company names (Nike, Notion). Names are resolved through Trustpilot search. Merged with 'Company URLs'.",
"editor": "stringList",
"title": "Company domains or names",
"type": "array"
},
"filterDateRange": {
"default": "all",
"description": "Only include reviews posted in this rolling window.",
"editor": "select",
"enum": [
"all",
"last30days",
"last3months",
"last6months",
"last12months"
],
"enumTitles": [
"All time",
"Last 30 days",
"Last 3 months",
"Last 6 months",
"Last 12 months"
],
"prefill": "all",
"title": "Date posted",
"type": "string"
},
"filterLanguage": {
"default": "all",
"description": "Only include reviews in this language. Trustpilot only serves a language a company actually has; otherwise the run returns no reviews for that company instead of mixing languages.",
"editor": "select",
"enum": [
"all",
"en",
"de",
"fr",
"es",
"it",
"nl",
"pt",
"pl",
"sv",
"da",
"no",
"fi",
"cs",
"sk",
"hu",
"ro",
"bg",
"el",
"tr",
"ru",
"uk",
"ar",
"he",
"hi",
"ja",
"ko",
"zh",
"th",
"vi",
"id",
"ms",
"ca",
"et",
"lv",
"lt",
"sl",
"hr",
"sr",
"is",
"fa",
"bn",
"ta",
"te",
"ml",
"ur",
"sw",
"af",
"sq",
"mk",
"bs",
"be",
"az",
"ka",
"hy",
"kk",
"uz",
"mn",
"ne",
"si",
"km",
"lo",
"my",
"am",
"zu"
],
"enumTitles": [
"All languages",
"English",
"German",
"French",
"Spanish",
"Italian",
"Dutch",
"Portuguese",
"Polish",
"Swedish",
"Danish",
"Norwegian",
"Finnish",
"Czech",
"Slovak",
"Hungarian",
"Romanian",
"Bulgarian",
"Modern Greek (1453-)",
"Turkish",
"Russian",
"Ukrainian",
"Arabic",
"Hebrew",
"Hindi",
"Japanese",
"Korean",
"Chinese",
"Thai",
"Vietnamese",
"Indonesian",
"Malay (macrolanguage)",
"Catalan",
"Estonian",
"Latvian",
"Lithuanian",
"Slovenian",
"Croatian",
"Serbian",
"Icelandic",
"Persian",
"Bengali",
"Tamil",
"Telugu",
"Malayalam",
"Urdu",
"Swahili (macrolanguage)",
"Afrikaans",
"Albanian",
"Macedonian",
"Bosnian",
"Belarusian",
"Azerbaijani",
"Georgian",
"Armenian",
"Kazakh",
"Uzbek",
"Mongolian",
"Nepali (macrolanguage)",
"Sinhala",
"Khmer",
"Lao",
"Burmese",
"Amharic",
"Zulu"
],
"prefill": "all",
"title": "Review language",
"type": "string"
},
"filterReviewerCountries": {
"description": "Only keep reviews from reviewers in these ISO country codes, e.g. US, GB, DE. Applied after collection.",
"editor": "stringList",
"title": "Reviewer countries",
"type": "array"
},
"filterStars": {
"default": "",
"description": "Only include reviews with this star rating. Leave on 'All stars' to include every rating.",
"editor": "select",
"enum": [
"",
"1",
"2",
"3",
"4",
"5"
],
"enumTitles": [
"All stars",
"1 star",
"2 stars",
"3 stars",
"4 stars",
"5 stars"
],
"prefill": "",
"title": "Star rating",
"type": "string"
},
"lastDays": {
"description": "Rolling cutoff for scheduled runs, e.g. 7 for weekly or 1 for daily. If both this and the exact date are set, the more recent cutoff wins.",
"maximum": 3650,
"minimum": 1,
"title": "Only the last N days",
"type": "integer"
},
"maxCompanies": {
"default": 20,
"description": "Maximum company results per search keyword (mode=searchCompanies).",
"maximum": 1000,
"minimum": 1,
"prefill": 5,
"title": "Max companies per search",
"type": "integer"
},
"maxItems": {
"default": 50000,
"description": "Maximum reviews across all companies in one run.",
"maximum": 50000,
"minimum": 1,
"prefill": 3,
"title": "Max reviews total",
"type": "integer"
},
"maxReviews": {
"default": 100,
"description": "Maximum reviews per company. Values above 200 are collected by splitting Trustpilot's 200-review view across star, language, and topic slices.",
"maximum": 10000,
"minimum": 1,
"prefill": 3,
"title": "Max reviews per company",
"type": "integer"
},
"mode": {
"default": "reviews",
"description": "What to collect. Reviews: scrape reviews. Companies: one profile record per company, with contacts and transparency data. Search companies: find companies by keyword.",
"editor": "select",
"enum": [
"reviews",
"companies",
"searchCompanies"
],
"enumTitles": [
"Company reviews",
"Company profiles",
"Search companies"
],
"prefill": "reviews",
"title": "Mode",
"type": "string"
},
"onlyVerified": {
"default": false,
"description": "Only include reviews Trustpilot marks as verified purchases.",
"prefill": false,
"title": "Verified reviews only",
"type": "boolean"
},
"onlyWithReplies": {
"default": false,
"description": "Only include reviews that already have a company reply.",
"prefill": false,
"title": "Reviews with company replies only",
"type": "boolean"
},
"publishedAfter": {
"description": "Exact cutoff date (YYYY-MM-DD). Reviews older than this are skipped. Works with mode=reviews.",
"editor": "datepicker",
"title": "Only reviews newer than",
"type": "string"
},
"searchCountry": {
"default": "US",
"description": "Country context for company search. It affects ranking and localisation, not a strict country filter.",
"editor": "select",
"enum": [
"US",
"AF",
"AL",
"DZ",
"AS",
"AD",
"AO",
"AI",
"AQ",
"AG",
"AR",
"AM",
"AW",
"AU",
"AT",
"AZ",
"BS",
"BH",
"BD",
"BB",
"BY",
"BE",
"BZ",
"BJ",
"BM",
"BT",
"BO",
"BQ",
"BA",
"BW",
"BV",
"BR",
"IO",
"BN",
"BG",
"BF",
"BI",
"CV",
"KH",
"CM",
"CA",
"KY",
"CF",
"TD",
"CL",
"CN",
"CX",
"CC",
"CO",
"KM",
"CG",
"CD",
"CK",
"CR",
"HR",
"CU",
"CW",
"CY",
"CZ",
"CI",
"DK",
"DJ",
"DM",
"DO",
"EC",
"EG",
"SV",
"GQ",
"ER",
"EE",
"SZ",
"ET",
"FK",
"FO",
"FJ",
"FI",
"FR",
"GF",
"PF",
"TF",
"GA",
"GM",
"GE",
"DE",
"GH",
"GI",
"GR",
"GL",
"GD",
"GP",
"GU",
"GT",
"GG",
"GN",
"GW",
"GY",
"HT",
"HM",
"VA",
"HN",
"HK",
"HU",
"IS",
"IN",
"ID",
"IR",
"IQ",
"IE",
"IM",
"IL",
"IT",
"JM",
"JP",
"JE",
"JO",
"KZ",
"KE",
"KI",
"KP",
"KR",
"KW",
"KG",
"LA",
"LV",
"LB",
"LS",
"LR",
"LY",
"LI",
"LT",
"LU",
"MO",
"MG",
"MW",
"MY",
"MV",
"ML",
"MT",
"MH",
"MQ",
"MR",
"MU",
"YT",
"MX",
"FM",
"MD",
"MC",
"MN",
"ME",
"MS",
"MA",
"MZ",
"MM",
"NA",
"NR",
"NP",
"NL",
"NC",
"NZ",
"NI",
"NE",
"NG",
"NU",
"NF",
"MK",
"MP",
"NO",
"OM",
"PK",
"PW",
"PS",
"PA",
"PG",
"PY",
"PE",
"PH",
"PN",
"PL",
"PT",
"PR",
"QA",
"RO",
"RU",
"RW",
"RE",
"BL",
"SH",
"KN",
"LC",
"MF",
"PM",
"VC",
"WS",
"SM",
"ST",
"SA",
"SN",
"RS",
"SC",
"SL",
"SG",
"SX",
"SK",
"SI",
"SB",
"SO",
"ZA",
"GS",
"SS",
"ES",
"LK",
"SD",
"SR",
"SJ",
"SE",
"CH",
"SY",
"TW",
"TJ",
"TZ",
"TH",
"TL",
"TG",
"TK",
"TO",
"TT",
"TN",
"TM",
"TC",
"TV",
"TR",
"UG",
"UA",
"AE",
"GB",
"UM",
"UY",
"UZ",
"VU",
"VE",
"VN",
"VG",
"VI",
"WF",
"EH",
"YE",
"ZM",
"ZW",
"AX"
],
"enumTitles": [
"United States",
"Afghanistan",
"Albania",
"Algeria",
"American Samoa",
"Andorra",
"Angola",
"Anguilla",
"Antarctica",
"Antigua and Barbuda",
"Argentina",
"Armenia",
"Aruba",
"Australia",
"Austria",
"Azerbaijan",
"Bahamas",
"Bahrain",
"Bangladesh",
"Barbados",
"Belarus",
"Belgium",
"Belize",
"Benin",
"Bermuda",
"Bhutan",
"Bolivia, Plurinational State of",
"Bonaire, Sint Eustatius and Saba",
"Bosnia and Herzegovina",
"Botswana",
"Bouvet Island",
"Brazil",
"British Indian Ocean Territory",
"Brunei Darussalam",
"Bulgaria",
"Burkina Faso",
"Burundi",
"Cabo Verde",
"Cambodia",
"Cameroon",
"Canada",
"Cayman Islands",
"Central African Republic",
"Chad",
"Chile",
"China",
"Christmas Island",
"Cocos (Keeling) Islands",
"Colombia",
"Comoros",
"Congo",
"Congo, The Democratic Republic of the",
"Cook Islands",
"Costa Rica",
"Croatia",
"Cuba",
"Curaçao",
"Cyprus",
"Czechia",
"Côte d'Ivoire",
"Denmark",
"Djibouti",
"Dominica",
"Dominican Republic",
"Ecuador",
"Egypt",
"El Salvador",
"Equatorial Guinea",
"Eritrea",
"Estonia",
"Eswatini",
"Ethiopia",
"Falkland Islands (Malvinas)",
"Faroe Islands",
"Fiji",
"Finland",
"France",
"French Guiana",
"French Polynesia",
"French Southern Territories",
"Gabon",
"Gambia",
"Georgia",
"Germany",
"Ghana",
"Gibraltar",
"Greece",
"Greenland",
"Grenada",
"Guadeloupe",
"Guam",
"Guatemala",
"Guernsey",
"Guinea",
"Guinea-Bissau",
"Guyana",
"Haiti",
"Heard Island and McDonald Islands",
"Holy See (Vatican City State)",
"Honduras",
"Hong Kong",
"Hungary",
"Iceland",
"India",
"Indonesia",
"Iran, Islamic Republic of",
"Iraq",
"Ireland",
"Isle of Man",
"Israel",
"Italy",
"Jamaica",
"Japan",
"Jersey",
"Jordan",
"Kazakhstan",
"Kenya",
"Kiribati",
"Korea, Democratic People's Republic of",
"Korea, Republic of",
"Kuwait",
"Kyrgyzstan",
"Lao People's Democratic Republic",
"Latvia",
"Lebanon",
"Lesotho",
"Liberia",
"Libya",
"Liechtenstein",
"Lithuania",
"Luxembourg",
"Macao",
"Madagascar",
"Malawi",
"Malaysia",
"Maldives",
"Mali",
"Malta",
"Marshall Islands",
"Martinique",
"Mauritania",
"Mauritius",
"Mayotte",
"Mexico",
"Micronesia, Federated States of",
"Moldova, Republic of",
"Monaco",
"Mongolia",
"Montenegro",
"Montserrat",
"Morocco",
"Mozambique",
"Myanmar",
"Namibia",
"Nauru",
"Nepal",
"Netherlands",
"New Caledonia",
"New Zealand",
"Nicaragua",
"Niger",
"Nigeria",
"Niue",
"Norfolk Island",
"North Macedonia",
"Northern Mariana Islands",
"Norway",
"Oman",
"Pakistan",
"Palau",
"Palestine, State of",
"Panama",
"Papua New Guinea",
"Paraguay",
"Peru",
"Philippines",
"Pitcairn",
"Poland",
"Portugal",
"Puerto Rico",
"Qatar",
"Romania",
"Russian Federation",
"Rwanda",
"Réunion",
"Saint Barthélemy",
"Saint Helena, Ascension and Tristan da Cunha",
"Saint Kitts and Nevis",
"Saint Lucia",
"Saint Martin (French part)",
"Saint Pierre and Miquelon",
"Saint Vincent and the Grenadines",
"Samoa",
"San Marino",
"Sao Tome and Principe",
"Saudi Arabia",
"Senegal",
"Serbia",
"Seychelles",
"Sierra Leone",
"Singapore",
"Sint Maarten (Dutch part)",
"Slovakia",
"Slovenia",
"Solomon Islands",
"Somalia",
"South Africa",
"South Georgia and the South Sandwich Islands",
"South Sudan",
"Spain",
"Sri Lanka",
"Sudan",
"Suriname",
"Svalbard and Jan Mayen",
"Sweden",
"Switzerland",
"Syrian Arab Republic",
"Taiwan, Province of China",
"Tajikistan",
"Tanzania, United Republic of",
"Thailand",
"Timor-Leste",
"Togo",
"Tokelau",
"Tonga",
"Trinidad and Tobago",
"Tunisia",
"Turkmenistan",
"Turks and Caicos Islands",
"Tuvalu",
"Türkiye",
"Uganda",
"Ukraine",
"United Arab Emirates",
"United Kingdom",
"United States Minor Outlying Islands",
"Uruguay",
"Uzbekistan",
"Vanuatu",
"Venezuela, Bolivarian Republic of",
"Viet Nam",
"Virgin Islands, British",
"Virgin Islands, U.S.",
"Wallis and Futuna",
"Western Sahara",
"Yemen",
"Zambia",
"Zimbabwe",
"Åland Islands"
],
"prefill": "US",
"title": "Search country",
"type": "string"
},
"searchKeyword": {
"description": "Only include reviews whose title or text contains this phrase. Applied by Trustpilot before collection. Works with mode=reviews.",
"editor": "textfield",
"title": "Keyword in review text",
"type": "string"
},
"searchQueries": {
"description": "Keywords for mode=searchCompanies, e.g. plumber, dentist, CRM software.",
"editor": "stringList",
"title": "Company search keywords",
"type": "array"
},
"sortBy": {
"default": "recency",
"description": "How Trustpilot orders reviews before collection.",
"editor": "select",
"enum": [
"recency",
"relevance"
],
"enumTitles": [
"Newest first",
"Most relevant"
],
"prefill": "recency",
"title": "Sort order",
"type": "string"
},
"startUrls": {
"description": "Trustpilot company page URLs, e.g. https://www.trustpilot.com/review/notion.so. You can also paste a company's own website URL. Merged with 'Company domains or names'.",
"editor": "requestListSources",
"prefill": [
{
"url": "https://www.trustpilot.com/review/notion.so"
}
],
"title": "Company URLs",
"type": "array"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "Trustpilot Company Review Extractor Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
reviews | string | optional | Dataset containing review, company, or companySearch records, tagged by recordType. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Trustpilot reviews, company profiles, and company search results with ratings, reviewer details, owner replies, contacts, and transparency data.",
"properties": {
"reviews": {
"description": "Dataset containing review, company, or companySearch records, tagged by recordType.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Trustpilot dataset",
"type": "string"
}
},
"title": "Trustpilot Company Review Extractor Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"fields": {},
"views": {
"overview": {
"display": {
"component": "table",
"properties": {
"authorCountry": {
"format": "text",
"label": "Country"
},
"authorName": {
"format": "text",
"label": "Author"
},
"businessName": {
"format": "text",
"label": "Company"
},
"categories": {
"format": "text",
"label": "Categories"
},
"companyStars": {
"format": "number",
"label": "Company stars"
},
"isClaimed": {
"format": "text",
"label": "Claimed"
},
"isVerified": {
"format": "text",
"label": "Verified"
},
"likes": {
"format": "number",
"label": "Likes"
},
"publishedDate": {
"format": "text",
"label": "Published"
},
"rating": {
"format": "number",
"label": "Rating"
},
"recordType": {
"format": "text",
"label": "Type"
},
"replyText": {
"format": "text",
"label": "Reply"
},
"reviewUrl": {
"format": "link",
"label": "Review URL"
},
"scrapedAt": {
"format": "text",
"label": "Scraped at"
},
"text": {
"format": "text",
"label": "Review"
},
"title": {
"format": "text",
"label": "Title"
}
}
},
"title": "Overview",
"transformation": {
"fields": [
"recordType",
"businessName",
"title",
"text",
"rating",
"companyStars",
"authorName",
"authorCountry",
"isVerified",
"publishedDate",
"replyText",
"likes",
"categories",
"isClaimed",
"reviewUrl",
"scrapedAt"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Trustpilot Company Review Extractor
Collect Trustpilot reviews and company profiles in one run. Paste a company URL, a domain, or a company name and get review text, star ratings, reviewer details, owner replies, verification data, company statistics, contacts, and transparency information as flat records.
Trustpilot normally shows an anonymous visitor 200 reviews per filtered view. This actor reads Trustpilot's own review views and combines star and language slices to go beyond that limit, while reporting honestly when a very large brand has more history than the public web views expose.
Three modes
- Company reviews — reviews for one or more companies. Accepts Trustpilot URLs, bare domains, or company names. Names are resolved through Trustpilot search.
- Company profiles — one record per company with TrustScore, star rating, lifetime and last-12-month review counts, rating distribution, language counts, categories, claimed status, contacts, owner reply behaviour, verification flags, consumer alerts, and transparency data.
- Search companies — find companies by keyword, optionally scoped to a search country, and return company profile rows with contacts and categories.
What each review record contains
businessName, businessDomain, businessId, businessUrl, trustpilotUrl, trustScore, companyStars, totalReviews, reviewsLast12Months, categories, isClaimed, companyCountry, ratingDistribution, contactEmail, contactPhone, reviewId, reviewUrl, title, text, rating, language, authorName, authorId, authorCountry, authorReviewCount, authorAvatarUrl, authorProfileUrl, authorIsVerified, isVerified, verificationLevel, verificationSource, publishedDate, experiencedDate, updatedDate, replyText, replyDate, replyUpdatedDate, hasReply, likes, source, reviewsOnSameDomain, locationId, locationName, sourcePage, recordType, scrapedAt.
Company profiles also include aiSummary, aiSummaryModel, aiSummaryTopics, locationsCount, and a locations list (store name, address, rating and review count) when Trustpilot publishes locations. Search records use the same company fields plus their own profile fields. Every record has a recordType (review, company, or companySearch), so mixed datasets stay usable.
Missing values are omitted rather than written as null. Counts of zero and boolean false are kept when they are real.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
mode |
select | reviews |
Reviews, company profiles, or company search |
startUrls |
URL list | – | Trustpilot company page URLs |
companies |
string list | – | Domains or names, e.g. booking.com, Nike |
searchQueries |
string list | – | Keywords for company search |
searchCountry |
select | US |
Country context for company search (ranking, not a strict filter) |
maxCompanies |
integer | 20 | Maximum company results per search keyword |
maxReviews |
integer | 100 | Maximum reviews per company; values above 200 use star/language/topic slices |
maxItems |
integer | 50000 | Maximum reviews across all companies |
filterStars |
select | all | Only one-star through five-star reviews |
filterLanguage |
select | all | Only one review language; a company without that language returns no reviews instead of mixing languages |
filterDateRange |
select | all | Last 30 days, 3 months, 6 months, or 12 months |
sortBy |
select | recency |
Newest first or most relevant |
onlyVerified |
boolean | false | Only verified-purchase reviews |
onlyWithReplies |
boolean | false | Only reviews with a company reply |
searchKeyword |
text | – | Only reviews whose title or text contains this phrase |
filterReviewerCountries |
string list | – | Keep only reviewers from these ISO country codes |
publishedAfter |
date | – | Only reviews newer than this exact date |
lastDays |
integer | – | Rolling cutoff for scheduled runs; if both cutoffs are set, the more recent wins |
Examples
Scrape 500 reviews for one company
{
"mode": "reviews",
"startUrls": [{ "url": "https://www.trustpilot.com/review/www.booking.com" }],
"maxReviews": 500
}
Negative verified reviews from the last 12 months
{
"mode": "reviews",
"companies": ["octopus.energy"],
"filterStars": "1",
"filterDateRange": "last12months",
"onlyVerified": true,
"maxReviews": 200
}
Company profiles for several brands
{
"mode": "companies",
"companies": ["notion.so", "www.booking.com", "wise.com"]
}
Find plumbing companies
{
"mode": "searchCompanies",
"searchQueries": ["plumber"],
"searchCountry": "US",
"maxCompanies": 50
}
How deep can it go?
Trustpilot serves 20 reviews per page and stops anonymous visitors at page 10 — 200 reviews for a single filtered view. The actor fetches the unfiltered view, then each of the five star views (up to 200 each), then star-by-language views for global brands. For multi-location businesses it also slices by Trustpilot location, which can add substantially more coverage. When a company's star × language views still stop short of the requested count, the actor reads Trustpilot's AI topics and adds topic × star slices, bounded by maxReviews. Star × language slices can reach up to the 10,000-review input maximum for global brands; smaller companies are fully covered.
There is no public absolute-date filter on Trustpilot, so a brand with hundreds of thousands of reviews cannot be exported in full without an account. The actor tells you in its status message when it hit this wall.
FAQ
Do I need a Trustpilot account, cookies, or a proxy? No. The actor reads public Trustpilot pages and handles the site's connection check itself. You do not configure a proxy.
Why did I get fewer reviews than I asked for? Either the company has fewer reviews than requested, or it has more than the public views can expose. The status message says which. For big brands, request up to 1,000 to use the star slices efficiently.
Does setting a language filter return other languages if the company has none in that language? No. The actor checks the company's own language counts first. If the language is absent, that company returns no reviews instead of falling back to all languages.
What does "verified" mean?
isVerified follows Trustpilot's verification flag. The onlyVerified input keeps the strict verified-purchase level; verificationLevel and verificationSource are included for every review.
Are owner replies included?
Yes. replyText, replyDate, replyUpdatedDate, and hasReply are returned when a reply exists. The company profile also includes overall reply percentage and average reply time.
Can I get reviewer email addresses? No. Trustpilot does not publish reviewer contact details. Company contact email and phone are included when Trustpilot publishes them.
What is the difference between companyStars, trustScore, and the rating distribution?
trustScore is Trustpilot's weighted score; companyStars is the rounded display value; ratingDistribution is the raw count of reviews per star. They are different numbers by design.
Can I run this on a schedule for new reviews only?
Yes. Set lastDays (for example 1 for daily) or publishedAfter to an exact date. The actor reads newest-first and stops once it passes the cutoff.
Does it include Trustpilot's AI summary?
Yes, on company profile records (mode=companies). aiSummary is Trustpilot's own English-page summary; aiSummaryTopics carries the per-topic summaries. Review rows do not repeat the summary.
Is this affiliated with Trustpilot? No. This is an independent tool that reads publicly available Trustpilot pages. It is not affiliated with, endorsed by, or sponsored by Trustpilot A/S.
Limitations
- 200 reviews per filtered view; up to 1,000 through star slices, up to 10,000 through star × language slices, and topic × star slices where Trustpilot publishes AI topics (34/40 companies in the survey).
- Topic slices are bounded by
maxReviews; companies without AI topics stop at the star/language ceiling and report it. - No absolute date-range filter in Trustpilot's public web views, so very large brands are sampled rather than complete.
- Company search country affects ranking, not a strict country filter.
- Reviewer-country filtering happens after collection and can return fewer rows than requested.
- Trustpilot test/placeholder reviews without a valid 1–5 rating are skipped.
- Company contact email and phone are present only when Trustpilot publishes them (22.5 % email / 27.5 % phone in the 40-company survey). Trustpilot search and transparency pages do not add missing contacts; scraping the company's own website is a separate data source.
- AI summaries are available on company profiles only; the review data route does not carry them.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build EBDiJJKewcsfmWgXA. Documentation is regenerated from the default published build; private drafts are not included.