
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape public Trustpilot company reviews: rating, review text, reviewer, dates, verification, and the company reply.
Export public Trustpilot reviews for any company as structured data. Give it a company page, a domain, or a brand name and get one row per review: star rating, title, text, reviewer name and country, verification status, dates, and the company reply when there is one. No Trustpilot login and no API key.
www.bankfive.com, or a bare name), or add Brand names to search.| Field | Type | What it does |
|---|---|---|
startUrls | array | A Trustpilot review URL, a domain, or a bare name, one company per entry. Reviewer profile URLs are skipped. |
searchTerms | array | Brand names to resolve on the public search page. |
maxReviews | integer | Reviews per company. Default 10. |
sortBy / sampling | string | recent or relevancy; recent or balanced (equal share per star). |
filterStars | array | Keep these star ratings. |
filterLanguages / scrapeAllReviews | array / boolean | ISO codes such as en; all languages by default. |
filterCountries | array | Keep reviewer countries such as US, GB. Applied after the page is read. |
filterDateRange | string | all, last30days, last3months, last6months, last12months. |
startDate / lastDays | string / integer | YYYY-MM-DD cutoff or rolling days. The later cutoff wins. |
filterVerifiedOnly / filterRepliesOnly | boolean | Keep verified reviews, or reviews with a company reply. |
strictNameMatch | boolean | When resolving a brand, require the name or domain to match. |
includeCompanyDetails / includeStats | boolean | Add the company profile and star distribution. |
proxyConfiguration | object | Datacenter proxy by default. |
{
"startUrls": ["https://www.trustpilot.com/review/www.bankfive.com"],
"maxReviews": 10,
"sortBy": "recent",
"sampling": "recent"
}
One dataset row per review.
| Field | Description |
|---|---|
id, url | Review id and permanent link. |
rating, title, text, language | Stars, headline, body, and language. |
isVerified, verificationLevel, source, labels | Verification details. |
reviewerName, reviewerCountry, reviewerNumberOfReviews, consumer | Reviewer details. |
publishedDate, experiencedDate, updatedDate, dates | Review dates. |
reply | Company reply with text and publishedDate, or null. |
likes, numberOfLikes | Likes on the review. |
businessName, businessUrl, businessUnitId | The company reviewed. |
scrapedAt | When the row was collected. |
Real item from a test run (trimmed):
{
"id": "6ac3cbc78f9e6053fec6a008",
"title": "I like to have a relationship with my…",
"text": "I like to have a relationship with my bank when you move key employees like the manager … I wonder why. I will look for",
"rating": 3,
"language": "en",
"source": "InvitationApi",
"isVerified": true,
"verificationLevel": "verified",
"likes": 0,
"publishedDate": "2026-10-05T18:09:43.000Z",
"experiencedDate": "2026-04-15T00:00:00.000Z",
"reviewerName": "Jane Doe",
"reviewerCountry": "US",
"reviewerNumberOfReviews": 4,
"reply": {
"text": "Hi Jane,\n\nThank you for sharing your feedback. We understand how important it is to build relationships with the pe…",
"publishedDate": "2026-10-08T19:47:41.000Z"
},
"url": "https://www.trustpilot.com/reviews/6ac3cbc78f9e6053fec6a008",
"businessUrl": "https://www.trustpilot.com/review/www.bankfive.com",
"businessName": "BankFive",
"businessUnitId": "5891086e0000ff00059bd8f0",
"scrapedAt": "2026-10-14T00:44:37.023Z"
}
$0.70 per 1,000 reviews, which is $0.0007 per saved review.
Worked example: 1,000 reviews cost $0.70 in review fees. Platform usage is billed separately at standard rates. Trustpilot asks for a short browser check before it serves reviews, and that check is billed as browser time. In our billing test, a 10-review run cost about $0.027 in total, of which $0.007 was review fees and $0.015 was the browser check. Larger runs spread that fixed cost over more reviews.
Is it legal to scrape Trustpilot? The actor reads only public reviews. You are responsible for using the data in line with Trustpilot's terms and the privacy rules that apply to you.
Do I need a Trustpilot account or my own proxy? No. Datacenter proxy is built in, and the actor handles the browser check itself.
Why might the count be lower than the number on the profile? The profile total includes reviews that the public list does not return. The actor saves the reviews on the public list.
What happens for an unknown domain? The run succeeds and saves no row for that domain.
Can I pass several companies?
Yes. maxReviews applies to each company.
Can I schedule it or use the API?
Yes, both. Use lastDays for a daily run that only picks up new reviews.
null, such as isLatestByConsumerOnBusinessUnit.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalCompany pages
One company per row. A Trustpilot review URL, a domain such as www.bankfive.com, or a bare name such as bankfive. Reviewer profile URLs are skipped.
searchTermsarrayOptionalBrand names
Brand names to resolve on the public search page. Use this when you do not have the domain yet.
maxReviewsintegerOptionaldefault 10Maximum reviews per company
Stop after this many reviews for each company. Trustpilot shows visitors without a login at most 10 pages (200 reviews) of each review list, so one list returns at most 200. Balanced sampling reads each star rating as its own list (up to 1,000 per company), and star or language filters each give their own 200.
Star ratings, language, country, date, verification, and replies.
sortByenumOptionaldefault "recent"Sort order
Newest first reads the public list from the most recent review. Most relevant uses the site's relevance order.
samplingenumOptionaldefault "recent"Sampling
Newest takes the first reviews in the sort order. Balanced gives each star rating an equal share of the limit.
filterStarsarrayOptionalStar ratings
Keep these star ratings. Leave empty to read every rating.
filterLanguagesarrayOptionalLanguages
ISO 639-1 codes such as en or de. Leave empty to follow All languages.
scrapeAllReviewsbooleanOptionaldefault trueAll languages
When on, request every language. When off, and Languages is empty, request the language of the company's country.
filterCountriesarrayOptionalReviewer countries
ISO country codes such as US or GB. Leave empty to keep every country. Applied after the page is read.
filterDateRangeenumOptionaldefault "all"Date posted
Rolling window on the public review list.
startDatestringOptionalOnly reviews published on or after
UTC date, YYYY-MM-DD. Newest first stops at the first older review.
lastDaysintegerOptionalOnly the last N days
Rolling window recalculated on each run. Combined with the date above, the later cutoff wins.
filterVerifiedOnlybooleanOptionaldefault falseVerified reviews only
Keep reviews Trustpilot marks as verified.
filterRepliesOnlybooleanOptionaldefault falseReviews with a company reply
Keep reviews that have a public company reply.
strictNameMatchbooleanOptionaldefault falseStrict brand match
When resolving a brand name, require the display name or domain to match the query.
includeCompanyDetailsbooleanOptionaldefault falseInclude company details
Add the public company profile to each review.
includeStatsbooleanOptionaldefault falseInclude rating statistics
Add the public star distribution and per-language counts shown on the company page.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy used for the public pages. Datacenter is tried first. A browser check does not use this proxy.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| rating | integer | Star rating from 1 to 5 |
| title | string | null | Review headline |
| text | string | null | Review text |
| reviewerName | string | null | Reviewer display name |
| reviewerCountry | string | null | Reviewer country code |
| isVerified | boolean | Whether Trustpilot verified the review |
| publishedDate | string | null | When the review was published |
| experiencedDate | string | null | Date of experience |
| language | string | null | Review language |
| businessName | string | null | Company name |
| url | string | Review URL |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Review | One public Trustpilot review saved to the dataset. | $0.0007 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/trustpilot-scraper').call({
"startUrls": [
"https://www.trustpilot.com/review/www.bankfive.com"
],
"searchTerms": [],
"maxReviews": 10,
"sortBy": "recent",
"sampling": "recent",
"scrapeAllReviews": true,
"filterDateRange": "all",
"filterVerifiedOnly": false,
"filterRepliesOnly": false,
"strictNameMatch": false,
"includeCompanyDetails": false,
"includeStats": false,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/trustpilot-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/trustpilot-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Most relevant reviews from a company page.
A balanced mix of ratings from the past month.
Recent reviews plus company profile information.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.