TrustMate.io at a glance
TrustMate.io is a ready-to-run Apify actor from abotapi for collecting automation data. Its documented output includes platform, review id, change type (incremental mode), rating and author, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Automation, Developer Tools, Social Media
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.20 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 19 options
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.
What TrustMate.io can do
- Full review history, not just page one. Offset-paginates every page of a company's review feed until it reaches the natural end, instead of stopping at the first batch the site renders.
- Paste any link shape. Polish profile links, English profile links, bare slugs or bare domains all resolve to the same review feed, in either input mode.
- Rating filter and sort, identically in both modes. Narrow to a minimum star rating and choose a sort order; both apply the same way whether you paste companies or profile links.
- Company reply and response time on every row. See how each company responded to its reviewers, with the reply timestamp and the response gap in hours.
- Company context on every row. Rating distribution, response rate, recommend percentage, category and certificates, attached to every review of that company.
- Resume and Incremental mode for recurring monitoring. Continue one interrupted run, or schedule the actor and get only new, updated, reappeared or expired reviews since the last run.
Choose what to collect
These inputs let you configure TrustMate.io - Company Reviews, Ratings & Authors. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring | Choose 'search' to paste a list of company profile URLs / slugs / domains, or 'url' to paste profile links directly. Both resolve to the same review feed. |
companyUrlsarray | Only used when mode = search - ignored in URL mode. One or more TrustMate company profile URLs, bare slugs or bare domains. Example: https://trustmate.io/opinie/trustmate-io , https://en.trustmate.io/reviews/trustmate-io , 'ogrodniczy.com' . |
companySlugsarray | Optional extra company slugs, domains or profile URLs, merged into the list of the active mode (Search or URL) and de-duplicated. Leave empty to use only the list above. If that list is still the untouched example default, only these companies are scraped. |
startUrlsarray | Only used when mode = urls - ignored in Search mode. One or more TrustMate company profile URLs, bare slugs or bare domains. Mix Polish (/opinie/) and English (/en/reviews/) links freely. |
minRatingstring | Applies in BOTH search and URL mode. Only return reviews with at least this star rating (1-5). 1 returns all reviews. Narrowing to 4 or 5 filters out lower-starred reviews from the result set (measured on trustmate-io: 1+ = 785 reviews, 4+ = 730, 5 = 714). |
sortBystring | Applies in BOTH search and URL mode. Orders the review feed before walking it. Newest first is the TrustMate default; 'Rating' options sort by star rating (pinned reviews float above the sort, mirroring the site). |
maxItemsinteger | Hard cap on the total number of review rows collected across all companies. This is THE cap - the run stops here even when review pages remain. Leave empty for the maximum of 1,000,000. |
Show 12 more inputs
| Input | What it controls |
|---|---|
maxPagesPerCompanyinteger | Optional cap on the number of review pages (~100 reviews each) fetched per company. Leave empty (0) for the built-in limit of 500 pages per company (about 50,000 reviews) - the run stops at Max Items first. Do not set both this and a low Max Items expecting two caps: the run stops at whichever comes first, and Max Items is the primary one. |
includeTranslationsboolean | Whether to include the translations array (machine translations of each review body into other languages) on every row. Disable to slim the output. |
fetchDetailsboolean | When on, each company's public profile page is fetched and parsed (JSON-LD, social sameAs links, logo, meta descriptions) and the extra fields are attached to every review row of that company. Billed per review row returned via the detail-enrichment event. Leave off for the base review output. |
resumeFromRunIdstring | A previous run or dataset ID to continue from. Reviews already collected in that run/dataset are skipped. Leave empty to start fresh. Not compatible with Incremental mode once an incremental baseline exists for this scope (see State key). |
incrementalModeboolean | Remember this scope's reviews across runs and return only what changed since the last run, tagged changeType (NEW / UPDATED / REAPPEARED / EXPIRED). A review counts as UPDATED when any of its output fields changed, except the company-level figures repeated on every row, the helpful / unhelpful counters and any field you list under Ignore fields (those are still returned, just not compared). Default off - a normal run returns everything. Enables daily/weekly monitoring without pasting a run id every time. |
stateKeystring | Optional name for the incremental baseline. By default the baseline is keyed automatically on a hash of your mode + companies + filters. Set a key to run two separate monitoring campaigns over the same companies, or to rename an existing baseline. |
emitUnchangedboolean | Incremental mode only. When on, reviews that did not change since the last run are also returned (tagged UNCHANGED). These rows are returned AND billed like any other row - leave off to get only what changed. |
emitExpiredboolean | Incremental mode only. When on, reviews present in the baseline but no longer found after a complete scan are returned as EXPIRED rows. These rows are returned AND billed like any other row. Only runs that reach the natural end of every company's feed can detect expirations; capped or resumed runs skip this. |
ignoreFieldsForChangesarray | Output field names that should NOT make a review count as UPDATED. Always ignored: the company-level figures copied onto every row of a company (companyRatingAvg, companyRatingDistribution, companyServiceReviewCount, companyCombinedReviewCount, companyResponseRate, companyResponseCount, companyRecommendPercentage), which move whenever the company receives any new review, and the live vote counters helpfulCount and unhelpfulCount. Add fields such as reviewBody or companyReply here if changes to them are not relevant to you. Use a dotted path (for example companyAggregateRating.ratingValue) to ignore a field inside a nested object or list. Ignored fields are still returned in the output. |
mcpConnectorsarray | Optionally send the scraped reviews into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-review export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL or id of the Notion page under which one page per review is created. Required to enable the Notion export; ignored by every other connector. |
maxNotifyListingsinteger | Cap on how many review rows are written to each connector per run. Does not affect the dataset, and does not change what you are billed for. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
platformPlatformreviewIdReview IDchangeTypeChange type (incremental mode) (text)ratingRating (number)authorNameAuthorreviewDateReview date (date)reviewBodyReview text (text)verifiedVerified (boolean)companyReplyCompany reply (text)helpfulCountHelpful votes (number)unhelpfulCountUnhelpful votes (number)translationsTranslations (array)Show 32 more fields
companyNameCompanycompanyRatingAvgCompany rating (number)companyRatingDistributionRating distribution (object)companyResponseRateCompany response rate (number)companyCategoryCategorysourceUrlSource (link)changedFieldsChanged fields (incremental mode) (array)firstSeenAtFirst seen (incremental mode) (date)lastSeenAtLast seen (incremental mode) (date)companySlugCompany slugcompanyWebsiteCompany website (link)companyAccountIdCompany account idcompanyVerifiedCompany verified (boolean)companyEmailCompany emailcompanyNipCompany nipcompanyLanguageCompany languagecompanySubtypeCompany subtypecompanyServiceReviewCountCompany service review count (number)companyCombinedReviewCountCompany combined review count (number)companyRecommendPercentageCompany recommend percentage (number)companyCertificatesCompany certificates (array)companyDescriptionCompany descriptioncompanyPhoneCompany phonecompanyAddressCompany address (object)companySocialLinksCompany social links (object)companyLogoUrlCompany logo url (link)companyJsonLdCompany json ld (object)companySameAsCompany same as (array)companyLogoCompany logo (link)companyAggregateRatingCompany aggregate rating (object)companyMetaDescriptionCompany meta descriptioncompanyOgDescriptionCompany og descriptionExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"platform": "trustmate",
"reviewId": 20481093,
"reviewPublicId": "3f1a9c2e-71b4-4a08-9d3e-000000000001",
"rating": 5,
"reviewBody": "The order arrived a day earlier than expected and everything was carefully packaged. Customer support answered my delivery question within a few hours.",
"authorName": "Anna N.",
"authorType": "person",
"reviewWeight": 1,
"reviewDate": "2025-11-03T09:14:22+00:00",
"reviewUpdatedAt": "2025-11-03T09:14:22+00:00",
"language": "pl",
"verified": true,
"companyReply": "Thank you for the kind words! We are glad the delivery went smoothly and have passed this on to our warehouse team.",
"companyReplyDate": "2025-11-03T18:40:05+00:00",
"companyResponseTimeHours": 9.43,
"helpfulCount": 4,
"unhelpfulCount": 0,
"pinned": false,
"shared": false,
"imported": false,
"importSource": null,
"orderIdentifier": "ORD-88213",
"orderNumber": null,
"isOrderLinked": true,
"reviewStatus": 1,
"reviewEnabled": true,
"translations": [
{
"language": "en",
"body": "The order arrived a day earlier than expected and everything was carefully packaged."
}
],
"companyName": "Sample Home and Garden Co.",
"companySlug": "sample-home-garden-co",
"companyWebsite": "https://sample-home-garden-co.example",
"companyCategory": "Home and Garden",
"companyRatingAvg": 4.6,
"companyRatingDistribution": {
"1": 12,
"2": 4,
"3": 9,
"4": 58,
"5": 312
},
"companyServiceReviewCount": 395,
"companyCombinedReviewCount": 410,
"companyResponseRate": 92,
"companyRecommendPercentage": 88,
"companyCertificates": [],
"sourceUrl": "https://trustmate.io/opinie/sample-home-garden-co",
"scrapedAt": "2025-11-05T02:00:00Z"
}Ways to use this data
- Reputation monitoring teams: track new reviews and company replies for your own brand or a client's, on a recurring schedule.
- Competitive research: compare rating distributions, response rates and recommend percentages across several companies in one run.
- Customer experience analysis: mine full review text and response times to spot recurring complaints or praise.
- Agencies and consultants: audit a prospect's review history and reply behavior before pitching a reputation-management engagement.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does TrustMate.io return?
The documented output for TrustMate.io includes platform, review id, change type (incremental mode), rating, author, review date, review text and verified. Availability of each field depends on the source page and the selected mode.
How much does TrustMate.io cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I monitor a company on a schedule and get only new reviews?
Yes. Schedule the actor and turn on Incremental mode. Each run then returns only NEW and UPDATED reviews; UNCHANGED ones are suppressed and not billed unless Emit unchanged is on. REAPPEARED and EXPIRED rows only ever appear after a run that reaches the natural end of every tracked company's feed with Emit expired on, since that is the only way a review is ever marked gone, and only a review already marked gone this way can later come back as REAPPEARED.
Why did my run fail instead of returning an empty dataset?
If a company URL, slug or domain cannot be resolved, or TrustMate refuses every request for it, that company is skipped and reported, and the run keeps going if other companies still have reviews. Only when none of the requested companies could be read at all does the run fail with an explanatory message, instead of finishing successfully with an empty dataset. A run with some companies skipped still succeeds and returns what was scraped, but is treated as an incomplete scan: EXPIRED detection is skipped for it, so no tracked review is marked gone that run, though the reviews it did read are still saved into the Incremental-mode baseline as usual.
What happens if I use Resume and Incremental mode together?
That combination is only allowed to bootstrap a brand-new Incremental baseline from one interrupted run. If a baseline already exists with tracked reviews for your scope, adding Resume fails the run with a clear message rather than mixing the two silently. Remove Resume, or set a different State key, to start a separate monitoring campaign.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
