TrustMate.io - Company Reviews, Ratings & Authors
Pricing
from $1.20 / 1,000 review scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
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
translationsarray 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.
minRatingnarrows the feed server-side (785 โ 730 โ 714 reviews for 1+ / 4+ / 5 ontrustmate-io) andsortByorders it (newest/oldest/highest/lowest rating/recently updated) exactly like the site. Both apply whether you paste companies or profile links. - ๐ Resume + Incremental mode.
resumeFromRunIdcontinues 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)
| Field | Default | Description |
|---|---|---|
mode | search | search - 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
| Field | Default | Description |
|---|---|---|
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.
| Field | Default | Description |
|---|---|---|
minRating | 1 | Only reviews with at least this star rating (1-5). Measured narrowing, see the table below. |
sortBy | newest | newest / 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):
minRating | grades[] sent | totalCount returned |
|---|---|---|
1 (default) | 1,2,3,4,5 | 785 |
4 | 4,5 | 730 |
5 | 5 | 714 |
| (1 only, for contrast) | 1 | 39 |
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 tohttps://trustmate.io/opinie/{slug}, and the API'slanguage=enfeed returns the same reviews with the same Polishbodytext (785 reviews onlanguage=plvs 784 onlanguage=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 thetranslationsarray (keepincludeTranslationson 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
| Field | Default | Description |
|---|---|---|
maxItems | 20 | The cap. Total review rows across all companies. Leave empty for unlimited. |
maxPagesPerCompany | 0 | Optional per-company page cap (~100 reviews/page). Leave empty for unlimited - the run stops at Max Items. |
includeTranslations | true | Include the translations array (machine translations of each review body). |
Resume & recurring updates
| Field | Default | Description |
|---|---|---|
resumeFromRunId | - | Continue one specific interrupted run - reviews already collected in that run/dataset are skipped. |
incrementalMode | false | Recurring 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 / emitExpired | false | Incremental mode extras - return (and bill) unchanged rows / expired rows. |
Detail enrichment (optional surcharge)
| Field | Default | Description |
|---|---|---|
fetchDetails | false | Fetch 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)
| Field | Default | Description |
|---|---|---|
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. |
maxNotifyListings | 50 | Cap 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
| Field | Description |
|---|---|
rating | Star rating, 1-5 (grade). |
reviewBody | Full review text. |
authorName / authorType | Reviewer name (person or company domain) and a company/person classifier. |
reviewDate / reviewUpdatedAt | Published / last-edited timestamps (ISO 8601). |
language | Original review language. |
verified / notVerified | TrustMate verification flags. |
companyReply / companyReplyDate / companyResponseTimeHours | The company's public reply, its timestamp and the response gap in hours. |
helpfulCount / unhelpfulCount | Helpful-vote tallies. |
translations | Machine translations of the review body. |
pinned / imported / importSource / shared | Review metadata flags. |
orderIdentifier / orderNumber / isOrderLinked | Whether the review is tied to a specific order (TrustMate's post-purchase invite flow). |
companyName / companySlug / companyWebsite / companyCategory | Company context on every row. |
companyRatingAvg / companyRatingDistribution | Company average grade and per-star distribution. |
companyServiceReviewCount / companyCombinedReviewCount | Service-review total (what is paginated) vs the headline combined total (incl. product reviews). |
companyResponseRate / companyResponseCount / companyRecommendPercentage | Company reply and recommend aggregates. |
companyCertificates / companyDescription / companyPhone / companyAddress / companySocialLinks / companyLogoUrl | Public profile extras from the account API. |
companyJsonLd / companySameAs / companyLogo / companyAggregateRating / companyMetaDescription | Schema.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.
EXPIREDrows are only produced when the run reached the natural end of every company's feed. A page cap, amaxItemscap, 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_URLenvironment 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 whenfetchDetailsis 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.