TrustMate.io - Company Reviews, Ratings & Authors avatar

TrustMate.io - Company Reviews, Ratings & Authors

Pricing

from $1.20 / 1,000 review scrapeds

Go to Apify Store
TrustMate.io - Company Reviews, Ratings & Authors

TrustMate.io - Company Reviews, Ratings & Authors

Scrape complete company review histories from TrustMate.io. Paste company profile URLs, slugs, or domains, with support for both Polish `/opinie/` and English `/reviews/` profiles. Extract one row per review, including rating, full review text, author, date, and company details.

Pricing

from $1.20 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

TrustMate.io Reviews Scraper

Extract full company review histories from TrustMate.io (trustmate.io) - the review-collection platform leading in Poland and expanding across the EU. Paste company profile URLs (Polish /opinie/ or English /reviews/), bare slugs or bare domains, and get one clean row per review with the rating, full review text, author, date, the company's reply, verified flag, helpful/unhelpful votes and machine translations - plus company-level context on every row (rating distribution, response rate, category, average rating, certificates).

The scraper returns the full review history for each company - not just the first page of ~28 reviews the site renders.

Highlights

  • โšก Full review history, not just page one. Offset-paginates the entire service-review feed for each company.
  • ๐ŸŒ Paste any link shape. trustmate.io/opinie/{slug}, trustmate.io/en/reviews/{slug}, en.trustmate.io/reviews/{slug}, or a bare slug/domain - all resolve to the same company.
  • ๐ŸŒ English text where it exists. Each review's translations array carries TrustMate's machine translations (see the note below on what "English profile" really means).
  • ๐Ÿ—ฃ๏ธ Company replies included. See how each company responded to its reviewers - with the reply timestamp and a computed response time in hours.
  • โญ Company context on every row. Rating distribution per star level, response rate, recommend percentage, category, certificates, social links, phone/address where public.
  • ๐Ÿ” Filters + sort, in both modes. minRating narrows the feed server-side (785 โ†’ 730 โ†’ 714 reviews for 1+ / 4+ / 5 on trustmate-io) and sortBy orders it (newest/oldest/highest/lowest rating/recently updated) exactly like the site. Both apply whether you paste companies or profile links.
  • ๐Ÿ” Resume + Incremental mode. resumeFromRunId continues an interrupted run; Incremental mode remembers your scope itself and returns only NEW / UPDATED / REAPPEARED / EXPIRED reviews between scheduled runs.
  • ๐Ÿ’ธ Pay per result. Transparent per-review pricing; cap any run with maxItems.

Input

Search mode (default)

FieldDefaultDescription
modesearchsearch - paste companies; urls - paste profile links. Both accept the same entry shapes.
companyUrls["https://trustmate.io/opinie/trustmate-io"]Company profile URLs, bare slugs or bare domains. Mixed freely; each resolves to its review feed.

URL mode

FieldDefaultDescription
startUrls["https://trustmate.io/opinie/trustmate-io"]Company profile URLs / slugs / domains. Mix Polish and English links.

Filters - these apply to BOTH search and URL mode

Both fields are read before the mode branch and handed to the same review-feed walk for every company, so they narrow and order the results identically whether the company came from Search mode or from a pasted profile link.

FieldDefaultDescription
minRating1Only reviews with at least this star rating (1-5). Measured narrowing, see the table below.
sortBynewestnewest / oldest / ratingDesc / ratingAsc / recentlyUpdated. Pinned reviews float above the sort, mirroring the site.

minRating measured against the live API (account trustmate-io, id 4575, language=pl, 2026-08-10 - grades[] is sent as a repeated query parameter and the feed's own totalCount changes with it, so this is a server-side narrowing, not a client-side drop):

minRatinggrades[] senttotalCount returned
1 (default)1,2,3,4,5785
44,5730
55714
(1 only, for contrast)139

About "English profiles" - read this before you expect an English data set. TrustMate's English URLs are a UI skin, not a second review feed. Measured on 2026-08-10: https://trustmate.io/en/reviews/{slug} 302-redirects to https://trustmate.io/opinie/{slug}, and the API's language=en feed returns the same reviews with the same Polish body text (785 reviews on language=pl vs 784 on language=en, identical first review id). Passing an English link therefore returns the same rows as the Polish one - it does not translate the corpus. The actual English text lives per review in the translations array (keep includeTranslations on to get it). This actor deliberately does not run a second walk for "the English profile", because there is no second profile to walk.

Output and limits

FieldDefaultDescription
maxItems20The cap. Total review rows across all companies. Leave empty for unlimited.
maxPagesPerCompany0Optional per-company page cap (~100 reviews/page). Leave empty for unlimited - the run stops at Max Items.
includeTranslationstrueInclude the translations array (machine translations of each review body).

Resume & recurring updates

FieldDefaultDescription
resumeFromRunId-Continue one specific interrupted run - reviews already collected in that run/dataset are skipped.
incrementalModefalseRecurring monitoring: remember this scope's reviews and return only what changed (NEW / UPDATED / REAPPEARED / EXPIRED). State is keyed on your scope automatically, or on a manual stateKey.
stateKey-Name the incremental baseline (run two campaigns over the same companies).
emitUnchanged / emitExpiredfalseIncremental mode extras - return (and bill) unchanged rows / expired rows.

Detail enrichment (optional surcharge)

FieldDefaultDescription
fetchDetailsfalseFetch each company's public profile page and attach schema.org profile blocks, social links, logo and meta descriptions to every review row. Billed per review row via the detail-enrichment event.

Export to your apps (MCP connectors, optional)

FieldDefaultDescription
mcpConnectors-Optional MCP connectors to copy the results into (Notion, Linear, Airtable, Apify). Never changes the dataset.
notionParentPageUrl-Notion page under which one page per review is created. Notion connector only.
maxNotifyListings50Cap on rows written to each connector per run. Does not affect the dataset or your bill.

Example input

{
"mode": "search",
"companyUrls": [
"https://trustmate.io/opinie/trustmate-io",
"ogrodniczy.com"
],
"minRating": 1,
"sortBy": "newest",
"maxItems": 500
}

Output

One row per review. Example (trimmed):

Field shapes only - the values below are placeholders, not a real reviewer or company.

{
"platform": "trustmate",
"reviewId": 10000001,
"reviewPublicId": "00000000-0000-0000-0000-000000000000",
"rating": 5,
"reviewBody": "Sample review text exactly as the reviewer wrote it.",
"authorName": "Reviewer Name",
"authorType": "person",
"reviewWeight": 2,
"reviewDate": "2026-06-12T11:18:40+00:00",
"language": "pl",
"verified": true,
"companyReply": "Sample public reply from the company.",
"companyReplyDate": "2026-06-12T12:00:40+00:00",
"companyResponseTimeHours": 0.7,
"helpfulCount": 0,
"unhelpfulCount": 1,
"translations": [{ "language": "en", "body": "Machine translation of the review body." }],
"companyName": "Example Company",
"companySlug": "example-company",
"companyRatingAvg": 4.89,
"companyRatingDistribution": { "1": 30, "2": 5, "3": 8, "4": 43, "5": 1377 },
"companyServiceReviewCount": 785,
"companyCombinedReviewCount": 1463,
"companyResponseRate": 100,
"companyCategory": "Opinie o firmach i produktach",
"sourceUrl": "https://trustmate.io/opinie/example-company",
"scrapedAt": "2026-08-08T04:30:00Z"
}

Key output fields

FieldDescription
ratingStar rating, 1-5 (grade).
reviewBodyFull review text.
authorName / authorTypeReviewer name (person or company domain) and a company/person classifier.
reviewDate / reviewUpdatedAtPublished / last-edited timestamps (ISO 8601).
languageOriginal review language.
verified / notVerifiedTrustMate verification flags.
companyReply / companyReplyDate / companyResponseTimeHoursThe company's public reply, its timestamp and the response gap in hours.
helpfulCount / unhelpfulCountHelpful-vote tallies.
translationsMachine translations of the review body.
pinned / imported / importSource / sharedReview metadata flags.
orderIdentifier / orderNumber / isOrderLinkedWhether the review is tied to a specific order (TrustMate's post-purchase invite flow).
companyName / companySlug / companyWebsite / companyCategoryCompany context on every row.
companyRatingAvg / companyRatingDistributionCompany average grade and per-star distribution.
companyServiceReviewCount / companyCombinedReviewCountService-review total (what is paginated) vs the headline combined total (incl. product reviews).
companyResponseRate / companyResponseCount / companyRecommendPercentageCompany reply and recommend aggregates.
companyCertificates / companyDescription / companyPhone / companyAddress / companySocialLinks / companyLogoUrlPublic profile extras from the account API.
companyJsonLd / companySameAs / companyLogo / companyAggregateRating / companyMetaDescriptionSchema.org profile data - only when fetchDetails is on.

In Incremental mode, rows also carry changeType (NEW/UPDATED/UNCHANGED/REAPPEARED/EXPIRED), changedFields, firstSeenAt and lastSeenAt.

Send results into your apps (MCP connectors)

Optionally pipe the scraped reviews into the tools you already use, via Model Context Protocol connectors (Notion, Linear, Airtable, Apify). Authorize a connector under Apify , Settings , API & Integrations, then select it in the Export to your apps input section. Notion gets one page per review (set notionParentPageUrl); other connectors get a best-effort record write or a digest message.

This is a pure side-channel: the dataset is written first and is never modified, maxNotifyListings caps only what is copied out, and a connector that is unauthorized, rate-limited or offline logs a warning and leaves your scrape untouched.

When the run stops, and when it fails

  • A company that cannot be read is never silently swallowed. If a profile URL / slug does not resolve, or TrustMate refuses the account lookup, that company is reported and skipped - and if that leaves the run with nothing scraped at all, the run fails with an explanatory status message instead of finishing "successfully" with an empty dataset.
  • A partial run never expires anything. EXPIRED rows are only produced when the run reached the natural end of every company's feed. A page cap, a maxItems cap, a resumed run, a skipped company, or an empty page served while the feed still reports more reviews all mark the run incomplete, and the previous baseline is kept exactly as it was.
  • State is only saved on the normal success path, so a failed run can never clobber the baseline your next scheduled run compares against.

Proxy guidance

No special network setup required. TrustMate serves its review data openly, so the default Apify proxy works on every Apify plan, including the free tier - leave the Connection section as-is for the cheapest runs.

  • Datacenter (default): recommended. Fast and effectively free.
  • Residential (optional): only needed for higher IP rotation on very large pulls. Billed at a higher rate than the default proxy and metered per run.
  • Free tier / no Apify proxy: the run automatically falls back to a built-in datacenter backup gateway (never a paid residential pool), and to a direct connection if that is unavailable too. Set the BACKUP_PROXY_URL environment variable on the actor to point the fallback at your own gateway instead. Reliability is lower than the default datacenter path - for dependable results, use the default Apify proxy.

Billing

Charged events:

  • apify-default-dataset-item - charged for each review row returned.
  • detail-enrichment - charged per review row only when fetchDetails is on.
  • apify-actor-start - charged once per run (depends on memory, one event per GB).

Use maxItems to cap any run. In Incremental mode, emitUnchanged / emitExpired return extra rows that are billed like any other row.

Disclaimer

This actor collects only publicly available information from TrustMate.io - the same data any visitor can see without logging in. It does not go around authentication, access private data, or collect anything behind a login. Use the data in compliance with TrustMate's Terms of Service, applicable laws (including GDPR), and the rights of data subjects. You are responsible for how you use the scraped data.