Trustpilot Company Scraper avatar

Trustpilot Company Scraper

Pricing

from $0.97 / 1,000 company records

Go to Apify Store
Trustpilot Company Scraper

Trustpilot Company Scraper

Collect Trustpilot company listings, optional profile details, and optional reviews from search queries, categories, or company URLs.

Pricing

from $0.97 / 1,000 company records

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Categories

Share

Trustpilot Company Scraper creates a structured dataset of companies collected from Trustpilot. Each dataset item represents one company and can include name, TrustScore, stars, review counts, location, categories, optional profile details (contact, verification, activity, rating breakdown), and optional nested reviews. Query the source with search terms (searchQueries), category slugs (categoryIds), or Trustpilot search, category, or review URLs (startUrls). Control the result limit with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, XML, or another supported format.

Dataset at a glance

PropertyValue
Sourcetrustpilot.com
Record unitOne Trustpilot company, with optional nested reviews
Input methodsSearch terms (searchQueries), category slugs or URLs (categoryIds), and/or Trustpilot URLs (startUrls)
Main identifierscompanyId, profile URL (url), identifyingName
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML, HTML (Apify dataset exports)
Update modelFresh records per Actor run
Pricing$1 / 1,000 companies; +$1.50 / 1,000 company details; +$1.50 / 1,000 reviews; Actor start $0.00005

Coverage and available records

The Actor collects public Trustpilot companies from one or more entry points. Provide at least one of searchQueries, categoryIds, or startUrls.

  • Search-based: searchQueries (for example Clothing store in United States or dog trainer). country is an ISO code that scopes search and category results (default US).
  • Category-based: categoryIds accepts slugs such as cats_dogs or clothing_store, or a category page URL.
  • URL-based: startUrls accepts search, category, or company review URLs (for example https://www.trustpilot.com/review/sportdecals.com).

Record types and limits:

  • Listing-level companies are always collected: identifiers, TrustScore, stars, review counts, location, categories, and status flags when Trustpilot returns them.
  • Company details are conditional: claimed status, verification, contact, activity, rating breakdown, and similar companies are returned when scrapeCompanyDetails is enabled (default false) and charged as company-details.
  • Reviews are conditional: a nested reviews array is returned when scrapeReviews is enabled (default false) and charged per review. maxReviews caps reviews per company (default 5; 0 = all).
  • Result cap: maxItems limits companies (0 means unlimited; console prefill 10).

Known exclusions: content Trustpilot only shows after login is not collected; each run captures profile state at run time (no historical snapshots); reviews are nested on the company record and are never separate dataset rows.

Data dictionary

Field names below match dataset record JSON properties exactly. Fields marked conditional appear only when the corresponding input toggle is enabled.

Company listing fields

FieldTypeNullableDescriptionExample
companyIdstringNoTrustpilot company identifier; recommended deduplication key597650820000ff0005a75542
namestringYesCompany nameRed Tuna Shirt Club
identifyingNamestringYesDomain-style identifying nameredtunashirtclub.com
urlstringYesTrustpilot review-profile URLhttps://www.trustpilot.com/review/redtunashirtclub.com
websitestringYesCompany websitehttps://redtunashirtclub.com
logoUrlstringYesLogo image URLhttps://s3-eu-west-1.amazonaws.com/tpd/logos/597650820000ff0005a75542/0x0.png
starsnumberYesStar rating5.0
trustScorenumberYesTrustScore4.9
numberOfReviewsnumberYesTotal review count3467
numberOfReviewsLast12MonthsnumberYesReviews in the last 12 months317
emailstringYesEmail when shown on the listing or detailshello@redtunashirtclub.com
phonestringYesPhone when shown888-411-1704
locationobjectYes{address, city, zipCode, country}See example record
countrystringYesCountry as shownUS
countryCodestringYesISO country code used for the queryUS
categoriesobject[]Yes{id, name, isPrimary}[{"id": "clothing_store", "name": "Clothing Store", "isPrimary": false}]
isRecommendedbooleanYesRecommended flagfalse
isVerifiedbooleanYesVerified flagtrue
isClaimedbooleanYesClaimed-profile flagtrue
isClosedbooleanYesClosed flagfalse
isTemporarilyClosedbooleanYesTemporarily closed flagfalse
isCollectingReviewsbooleanYesWhether the profile is collecting reviewstrue
sourcestringYesSeed type (search, category, or URL)search
searchQuerystringYesSearch term that produced the recordClothing store in United States
listingTypestringYesListing source labelsearch

Company detail fields (conditional — scrapeCompanyDetails)

FieldTypeNullableDescriptionExample
verificationobjectYes{verifiedByGoogle, verifiedPaymentMethod, verifiedUserIdentity}See example record
contactInfoobjectYesContact object (email, phone, city, country, zip)See example record
reviewRatingsobjectYesStar-count breakdown (total, onefive)See example record
activityobjectYesActivity object when Trustpilot returns itObject as returned by the source
similarCompaniesarrayYesSimilar-company list when shownArray as returned by the source
hasCollectedIncentivisedReviewsbooleanYesIncentivised-review flagFlag when shown
locationsCountnumberYesLocation count when shownCount when shown

Review fields (conditional — scrapeReviews)

Each company record may include a reviews array. One review object:

FieldTypeNullableDescriptionExample
idstringNoReview identifier6a71d8f487df15bb35928f39
titlestringYesReview titleMy son loved getting these each month…
textstringYesReview bodyMy son loved getting these each month...
ratingnumberYesStar rating5
languagestringYesLanguage codeen
likesnumberYesLike count1
sourcestringYesReview source labelShopify
publishedDatestringYesPublished timestamp (ISO 8601)2026-08-04T14:20:04.000Z
isVerifiedbooleanYesVerified-review flagtrue
consumerDisplayNamestringYesReviewer display nameSandra Lincoln
consumerCountryCodestringYesReviewer countryUS

reviewsScraped is the number of reviews attached to that company in this run.

Example dataset record

Company from search Clothing store in United States with scrapeCompanyDetails and scrapeReviews on (maxReviews: 5). The reviews array is shortened to one object.

{
"companyId": "597650820000ff0005a75542",
"name": "Red Tuna Shirt Club",
"identifyingName": "redtunashirtclub.com",
"url": "https://www.trustpilot.com/review/redtunashirtclub.com",
"website": "https://redtunashirtclub.com",
"logoUrl": "https://s3-eu-west-1.amazonaws.com/tpd/logos/597650820000ff0005a75542/0x0.png",
"stars": 5.0,
"trustScore": 4.9,
"numberOfReviews": 3467,
"email": "hello@redtunashirtclub.com",
"phone": "888-411-1704",
"location": {
"address": "",
"city": "Houston",
"zipCode": "77005",
"country": "US"
},
"country": "US",
"categories": [
{"id": "printed_clothing_store", "name": "Printed Clothing Store", "isPrimary": false},
{"id": "clothing_store", "name": "Clothing Store", "isPrimary": false}
],
"isRecommended": false,
"isVerified": true,
"source": "search",
"searchQuery": "Clothing store in United States",
"listingType": "search",
"numberOfReviewsLast12Months": 317,
"countryCode": "US",
"isClaimed": true,
"isClosed": false,
"isTemporarilyClosed": false,
"isCollectingReviews": true,
"verification": {
"verifiedByGoogle": false,
"verifiedPaymentMethod": true,
"verifiedUserIdentity": false
},
"contactInfo": {
"email": "hello@redtunashirtclub.com",
"city": "Houston",
"country": "US",
"phone": "888-411-1704",
"zipCode": "77005"
},
"reviewRatings": {
"total": 3467,
"one": 19,
"two": 12,
"three": 39,
"four": 169,
"five": 3228
},
"reviews": [
{
"id": "6a71d8f487df15bb35928f39",
"title": "My son loved getting these each month…",
"text": "My son loved getting these each month and reading about the charter. A great gift for the fisherman in your life!",
"rating": 5,
"language": "en",
"likes": 1,
"source": "Shopify",
"publishedDate": "2026-08-04T14:20:04.000Z",
"isVerified": true,
"consumerDisplayName": "Sandra Lincoln",
"consumerCountryCode": "US"
}
],
"reviewsScraped": 5
}

The record above was produced with this input:

{
"searchQueries": ["Clothing store in United States"],
"country": "US",
"maxItems": 3,
"scrapeCompanyDetails": true,
"scrapeReviews": true,
"maxReviews": 5
}

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
searchQueriesarray (string)No*— (prefill Clothing store in United States)Company search termsSearch entry point
countrystringNoUSISO country code (US, GB, DE, FR, …)Scopes search and category results
categoryIdsarray (string)No*Category slugs or category page URLsCategory entry point
startUrlsarray (requestListSources)No*Trustpilot search, category, or /review/… URLsURL entry point
maxItemsintegerNo00 or any positive integerMaximum companies; 0 = unlimited (console prefill 10)
scrapeCompanyDetailsbooleanNofalsetrue / falseAttach profile details (charged as company details)
scrapeReviewsbooleanNofalsetrue / falseAttach nested reviews (charged per review)
maxReviewsintegerNo50 or any positive integerReview cap per company; 0 = all
proxyConfigurationobjectNoApify proxy, RESIDENTIALApify proxy groups or custom proxiesResidential proxies are recommended

* Provide searchQueries, categoryIds, and/or startUrls — at least one source is required.

Minimal request:

{ "searchQueries": ["Clothing store in United States"], "country": "US" }

Advanced request (details and capped reviews):

{
"searchQueries": ["Clothing store in United States"],
"country": "US",
"maxItems": 10,
"scrapeCompanyDetails": true,
"scrapeReviews": true,
"maxReviews": 5,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Retrieve the data through the API

Records are delivered through the Apify Actor and Dataset APIs — not an official Trustpilot API.

  1. Start the Actor with a JSON input (console or API).
  2. Wait for the run to finish, or use a synchronous endpoint if you want the response inline.
  3. Retrieve items from the run's default dataset.
  4. Paginate or export the dataset.

Python example:

from apify_client import ApifyClient
client = ApifyClient("YOUR-APIFY-TOKEN")
run_input = {
"searchQueries": ["Clothing store in United States"],
"country": "US",
"maxItems": 3,
"scrapeCompanyDetails": True,
"scrapeReviews": True,
"maxReviews": 5,
}
run = client.actor("datascrapers/trustpilot-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item.get("trustScore"), item.get("numberOfReviews"))

Apify generates ready-to-run Python, JavaScript, and cURL examples on the Actor's API tab. Do not put a real API token in shared code or URLs.

Data quality and record handling

  • Conditional fields: details and reviews appear only when their toggles are enabled. Listing-only runs return a leaner company record.
  • Source changes: Trustpilot page structure and values can change; unreadable fields are omitted or returned as null rather than fabricated.
  • Deduplication: within a run, companies are identified by companyId. Across runs, records are appended.
  • Failures: one failed company or review page does not stop the run. The run stops if a spending limit is reached.
  • Normalization: stars, trustScore, and rating are numeric. publishedDate is ISO 8601. Review text comes from Trustpilot.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL / SupabaseDataset API poll or webhook consumerStore company scores and nested reviews
Google SheetsApify Google Sheets integrationShare competitor shortlists
CRM / lead toolsDataset API or completion webhookWebsite, email, and phone from claimed profiles
S3 / cloud storageScheduled export via Apify scheduler + integrationArchival of reputation snapshots

Pricing and cost examples

The Actor uses pay-per-event pricing. Each run also charges a one-time Actor start. Residential proxies are recommended. Proxy and compute are billed by your Apify plan. Event charges may be tiered on Apify paid plans.

EventTriggerRate
Actor startOnce per run$0.00005
dataset-item (Company record)Each company written to the dataset$0.001 / company ($1 / 1,000)
company-details (Company Details)Profile enrichment (scrapeCompanyDetails)$0.0015 / company ($1.50 / 1,000)
review (Review)Each nested review (scrapeReviews)$0.0015 / review ($1.50 / 1,000)

Example costs (Actor start negligible; plan-tier discounts not applied):

RecordsConfigurationEstimated base cost
1,000Companies only$1.00
1,000Companies + details$2.50
1,000Companies + details + 5 reviews each$10.00

Estimates depend on the verified pricing model and the options selected for the run.

Limitations and responsible data use

  • The Actor collects publicly accessible Trustpilot company and review data only.
  • Field availability depends on what Trustpilot renders at run time; contact and verification fields can be missing.
  • The Actor does not provide historical snapshots unless you store them yourself.
  • Large runs should use residential proxies; without them, coverage may degrade.
  • You are responsible for compliance with Trustpilot's terms of service, applicable privacy law, and any contractual obligations before using the data.

Dataset questions

What does one dataset item represent?

One Trustpilot company. Reviews, when requested, nest in reviews on that company.

Which field should I use as a unique identifier?

companyId is the recommended deduplication key. url and identifyingName are reasonable secondary keys.

Are fields nullable or conditional?

Yes. Details and reviews exist only when their toggles are enabled. Email, phone, and some status flags can be empty when Trustpilot does not show them.

Can I retrieve the records as CSV or JSON?

Yes. The dataset can be exported as JSON, CSV, Excel, XML, or HTML from the Apify Console, and queried through the Dataset API. Nested reviews flatten according to the export format.

Does the Actor return historical data?

No. Each run captures profile and review state at run time. To track TrustScore or new reviews, schedule repeated runs and store the outputs yourself.

What counts as a billable result?

Actor start once per run ($0.00005), a company charge per company ($0.001), a company-details charge when details are collected ($0.0015), and a review charge per nested review ($0.0015).

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.