Trustpilot Search Scraper — Find Companies by Name
Pricing
from $1.28 / 1,000 company founds
Trustpilot Search Scraper — Find Companies by Name
Find companies on Trustpilot by name, brand or keyword when the profile address is unknown. Each match comes back with its TrustScore, review count, location and the company's own website, email and phone, ready for a prospect list or a competitor sweep.
Pricing
from $1.28 / 1,000 company founds
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Trustpilot Search Scraper
The Actor looks companies up on Trustpilot by name, brand or plain keyword and returns each match as a row with its TrustScore, star rating, review count, location, claim status, and the company's own website, email and phone. It is the Actor to reach for when a company is known by its name and not by its Trustpilot address.
Two things make it worth a run. Company keys on Trustpilot are load-bearing and awkward to guess, so
resolving a name to domain here is more reliable than constructing one, and domain then feeds
Trustpilot Reviews Scraper and
Trustpilot Company Scraper directly. The
second is the contact block: a search row carries the company's own website, email and phone without
a second request, which no other listing on the site does. A keyword such as insurance therefore
turns into a scored, contactable list of companies in a single run.
Accepted input
query is required and accepts a company name, a brand, or a plain word, between 1 and 200
characters. maxItems caps how many companies are saved and defaults to 100; a value of 0 removes
the cap. enrichCompanyDetails defaults to false and is described below.
{"query": "insurance","maxItems": 20,"enrichCompanyDetails": false}
Response fields
{"domain": "rac.co.uk/insurance","business_unit_id": "5060f52a00006400051bf99f","display_name": "RAC Car Insurance","profile_url": "https://www.trustpilot.com/review/rac.co.uk/insurance","trust_score": 4.4,"stars": 4.5,"rating_scale_max": 5,"review_count": 18579,"is_claimed": true,"logo_url": "https://s3-eu-west-1.amazonaws.com/tpd/x/198x149.png","categories": [{ "id": "insurance_agency", "name": null, "is_primary": true }],"city": "London","country": "GB","contact_website": "https://www.sterling-insurance.co.uk","contact_email": null,"contact_phone": null,"position": 1}
| Field | What it says |
|---|---|
trust_score | Trustpilot's underlying score out of five, to one decimal. Sort and compare on this one. |
stars | The same assessment rounded to the half star, which is what Trustpilot renders; a trust_score of 4.4 displays as 4.5. |
rating_scale_max | The top of the scale, always 5 here, stated per row so a rating is never compared against a ten-point scale by accident. |
review_count | How many reviews the score is computed over. |
is_claimed | Whether the company has taken control of its Trustpilot profile. |
contact_website, contact_email, contact_phone | The company's own details. contact_website leaves Trustpilot; profile_url does not. |
city, country | Where the company is, as the search listing states it. |
categories | The categories Trustpilot files the company under. Each id is a slug Trustpilot Category Scraper accepts. |
domain, business_unit_id, display_name, profile_url, logo_url | Identity, and the key the sibling Actors take. |
position | Where the row appeared in Trustpilot's ranking, counting from 1 across the run. |
The example key is not decorative. rac.co.uk/insurance genuinely appears in the first page of
results for insurance, and it is a different company from rac.co.uk: 18,579 reviews against
211,451. domain should be passed onward byte for byte.
Adding reply behaviour and full company details
enrichCompanyDetails is off by default. Turning it on opens each company's own Trustpilot profile
and adds the numbers that a listing row does not carry: reply_percentage,
average_days_to_reply, negative_reviews_with_replies_count, last_reply_to_negative_review,
claimed_date, previously_claimed, has_subscription, is_using_paid_features, is_closed,
is_temporarily_closed, is_collecting_reviews, locations_count, contact_country,
review_count_last_12_months, total_reviews, total_filtered_reviews, review_pages,
rating_distribution, review_languages, has_multiple_languages, has_consumer_alerts and
consumer_alerts.
That costs one extra request per company and turns a twenty-company run from two requests into twenty-two, so it should be left off where the score and the contact details are sufficient. It is billed per company enriched and only after the lookup succeeds. A company for which Trustpilot serves no profile page keeps its search row unchanged and is not billed, and contact fields the search row already carried are kept where the profile states none.
Questions
Why did a run save fewer companies than Trustpilot says match the query?
Two reasons combine. Trustpilot's stated total counts appearances rather than distinct companies:
the measured example reported 9,779 matches across 978 pages. And search pages overlap, because
relevance ranking is not a stable sequence; on a measured query, page 2 repeated two of its ten
companies from page 1. Repeats are dropped on business_unit_id, which stays stable when a company
changes its domain, and a dropped repeat does not consume the run's cap. The saved rows are distinct
companies; the stated total is not.
Why does position skip numbers?
position records where a row appeared in Trustpilot's ranking, counting every result returned
including the ones that turned out to be repeats of an earlier page. A gap in position is a
duplicate that was dropped.
Can results be restricted to one country?
Not on this Actor. Only the query and the page are wired, because Trustpilot answers an unrecognised
filter value with a normal response and its default ordering, which would make an unverified filter a
silent no-op rather than an error. country is available on
Trustpilot Category Scraper, where it has
been measured.
Why are contact_email and contact_phone so often null?
Because the company published no email or phone on Trustpilot. contact_website is the field that is
usually present; the other two are filled only where the company states them, and nothing is inferred
from the domain to fill the gap. categories is null in the same honest way: a search row states each
category's id and leaves name as null, because Trustpilot publishes only the id and the primary
flag on this listing. The id is the part the Category Actor needs.
There is no street address on a search row. Where is it?
On category rows. A search row states a city and a country; a category row states a street address and
a city and no country, so the two listings carry different halves of a location. Running
Trustpilot Category Scraper for a slug from
the categories column is how to get the address for the same companies.
A query returned no rows. Is that a failure? No. A query that matches nothing produces a normal, empty result set and the run completes. A failure would have ended the run with an error.
A broad keyword returns companies I do not want. What is the better tool? A category directory. The run log prints the category slugs Trustpilot suggests for the query on its first page, and those slugs go straight into Trustpilot Category Scraper, which returns a whole market in Trustpilot's own ranked order rather than the matches for a phrase.
Search returns ten rows a page while the other Actors return twenty. Does that change anything?
Only the number of requests behind a given row count, which is why a company found by search is
priced above a company read from a category directory. Nothing about the pagination has to be
configured; maxItems counts saved companies either way.
Related Actors
Trustpilot Category Scraper exports a whole ranked directory rather than the matches for a phrase. Trustpilot Company List Scraper enumerates every company Trustpilot publishes, for cases where a search phrase is the wrong starting point.