SmartCustomer Review Scraper (Pay-Per-Event)
Pricing
Pay per usage
SmartCustomer Review Scraper (Pay-Per-Event)
Scrape consumer reviews from SmartCustomer by domain. Self-contained review records with embedded business metadata, rating, date, user, and run-summary. Pay-per-event pricing — only pay for businesses resolved + reviews extracted.
SmartCustomer Review Scraper extracts consumer reviews from any business listed on SmartCustomer. This is the Pay-Per-Event edition — there is no monthly rental, no compute-unit guesswork, and no minimum spend. You pay only for businesses successfully resolved + reviews actually extracted. Filtered-out reviews don't cost a cent.
Use it on the Apify platform for scheduling, API access, dataset exports (JSON, CSV, Excel, HTML), residential proxy rotation, run monitoring, and integration with Make, Zapier, and 5000+ other tools.
What does SmartCustomer Review Scraper do?
Give it one or more business domains (e.g. amazon.com, airbnb.com, booking.com) — or full SmartCustomer review URLs — and the actor walks SmartCustomer's /reviews/<domain> pages and emits one self-contained record per review. Full business metadata is embedded on every review record so downstream consumers don't have to join two record types.
The scraper extracts:
- Review fields — review text, star rating, date, headline, user name + avatar, review permalink, review ID.
- Embedded business metadata — name, business URL, business rating, total review count.
- Photos — when SmartCustomer has user-uploaded review photos, validated against
*.smartcustomer.com(SmartCustomer's image CDN). Many reviews emitphotos: []because SmartCustomer surfaces photos inconsistently. - Status enum per record —
ok,partial,business_not_found,blocked,rate_limited. - Run-level summary — one final dataset record (
type: "run_summary") with aggregate counts.
The actor is HTTP-only (Crawlee CheerioCrawler + got-scraping) — no browser, fast cold-start, runs on residential proxies.
Why use SmartCustomer Review Scraper?
- Reputation monitoring — Track new reviews + ratings for your business and competitors.
- Sentiment & content analysis — Feed review text into LLMs or sentiment classifiers.
- Competitive research — Compare review counts and ratings across local-market competitors.
- Lead enrichment — Combine business metadata + review-volume signals to score prospects.
- Trust & safety analysis — SmartCustomer covers many less-mainstream domains that Trustpilot and Google Reviews don't.
How to use SmartCustomer Review Scraper
- Click "Try for free" on this actor's page.
- Enter business domains in the input form, one per line (e.g.,
amazon.com). - Set "Max reviews per run" to cap your spend. The default
50makes test runs cheap. - (Optional) Toggle "Only emit reviews that have photos" — but note SmartCustomer's photo coverage is inconsistent.
- (Optional) Pick a sort order —
relevance(default),newest,highest_rated,lowest_rated. - Click "Save & Start". Watch the live log; reviews stream into the dataset as they're scraped.
- Export as JSON, CSV, Excel, or HTML, or hit the Apify Dataset API directly.
Input
| Parameter | Type | Required | Description |
|---|---|---|---|
domains | Array | One-of required | Business domains (e.g., ["amazon.com", "airbnb.com"]). Each is mapped to https://www.smartcustomer.com/reviews/<domain>. Domain regex enforced. |
businessUrls | Array | One-of required | Full SmartCustomer review URLs (e.g., https://www.smartcustomer.com/reviews/airbnb.com). Host must be smartcustomer.com. Canonicalized to domain before processing. |
maxReviews | Integer | No | Total cap on reviews emitted across the run. Budget splits greedily across resolved businesses. Default 50. Max 1000. |
sortBy | String | No | relevance (default) / newest / highest_rated / lowest_rated. |
onlyWithPhotos | Boolean | No | When true, drops reviews with no photos. PPE charges only for emitted (post-filter) reviews — filtered-out reviews are not billed. SmartCustomer photo coverage varies. |
maxConcurrency | Integer | No | HTTP concurrency. Default 5, max 30. |
requestTimeoutSecs | Integer | No | Per-request timeout. Default 45. |
proxyConfiguration | Object | No | Apify proxy. Residential is the default and recommended. |
At least one of domains or businessUrls must be provided.
Input examples
| Use case | Input JSON |
|---|---|
| Scrape Amazon's first 50 reviews | { "domains": ["amazon.com"], "maxReviews": 50, "sortBy": "relevance" } |
| Newest reviews for an Airbnb listing | { "domains": ["airbnb.com"], "sortBy": "newest", "maxReviews": 30 } |
| Multiple businesses sharing a 60-review budget | { "domains": ["amazon.com", "etsy.com", "ebay.com"], "maxReviews": 60 } |
| Direct URL input + photos-only | { "businessUrls": ["https://www.smartcustomer.com/reviews/marriott.com"], "onlyWithPhotos": true } |
Output
All results land in the run's default dataset. Each record has a type field — "review" for review records and "run_summary" for the final aggregate at end of run.
Sample review record
{"type": "review","review_url": "https://www.smartcustomer.com/reviews/amazon.com#41154","url": "https://www.smartcustomer.com/reviews/amazon.com#41154","business_url": "https://www.smartcustomer.com/reviews/amazon.com","review_id": "41154","rating": 1.0,"review_date": "2026-04-26","text": "Just like a butcher who puts his thumb on the scale or a used car dealer that rolls back the odometer, Amazon is engaging in similar unscrupulous bait-and-switch activities...","user_name": "Les D.","user_avatar_url": "https://static.smartcustomer.com/img/users/lesvdavis/thumbnail_large.1777241188.jpg","photos": [],"status": "ok","business": {"alias": "amazon.com","name": "Amazon","business_url": "https://www.smartcustomer.com/reviews/amazon.com","city": null,"categories": [],"price_tier": null,"business_rating": 2.5,"review_count": 11108},"scraped_at": "2026-05-05T18:00:00.000Z"}
Sample run-summary record
{"type": "run_summary","businesses_resolved": 1,"reviews_emitted": 50,"blocked": 0,"rate_limited": 0,"consecutive_blocks_at_end": 0,"run_outcome": "normal","scraped_at": "2026-05-05T18:00:42.000Z"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Type | Description |
|---|---|---|
type | string | "review" or "run_summary". |
review_url | string | null | SmartCustomer-canonical permalink. Always on *.smartcustomer.com. |
url | string | null | Original review URL from JSON-LD (typically smartcustomer.com). |
business_url | string | null | SmartCustomer business page URL. |
review_id | string | null | Review's ID from SmartCustomer. |
rating | number | null | Star rating, 1–5. |
review_date | string | null | Date as SmartCustomer displays it. |
text | string | null | Review body. Original locale. |
user_name | string | null | Reviewer's display name (typically first-name + last-initial). |
user_avatar_url | string | null | Avatar URL on *.smartcustomer.com. |
photos | string[] | Always present. Each URL is https://*.smartcustomer.com/... validated. Empty for most reviews. |
status | string | ok | partial | business_not_found | blocked | rate_limited. |
business | object | Embedded business metadata (alias, name, business_url, business_rating, review_count). |
Pricing — How much does it cost?
Pay-per-event pricing with two events:
business-resolved— fired once per business successfully resolved (page returned reviews + business metadata).review-extracted— fired once per emitted review record (after theonlyWithPhotosfilter).
You don't pay for filtered-out reviews, blocked navigation, or businesses that fail to resolve. Specific per-event prices are shown on this actor's pricing page in Apify Console.
Tips
- SmartCustomer's photo coverage varies by business. If photo extraction is critical, check a sample run on your target domain before turning on
onlyWithPhotos. - Sort by
newestfor monitoring runs,relevancefor one-shot pulls. maxReviews=20matches SmartCustomer's first-page render; higher values trigger pagination at 20-review increments.- If
consecutive_blocks_at_end≥ 3 in your run summary, SmartCustomer rate-limited your session. Wait a few minutes or reducemaxConcurrency.
FAQ, disclaimers, and support
Why SmartCustomer and not Yelp / Trustpilot? v0.1 of this actor targeted Yelp. Yelp's DataDome WAF blocks Apify's standard residential proxy pool comprehensively (verified across 6+ proxy/strategy combinations). Trustpilot uses AWS WAF which also blocks the same proxy pool. SmartCustomer returns clean HTML 200 responses with structured JSON-LD reviews. See CHANGELOG for full empirical history.
Is scraping SmartCustomer legal? SmartCustomer's Terms of Service govern automated access. This actor is provided for legitimate research, monitoring, and competitive-intelligence use cases that respect SmartCustomer's rate limits and robots.txt. You are responsible for compliance with SmartCustomer's ToS and applicable local laws (including GDPR Art. 6 / 14 / 17 obligations toward review authors when persisting personal data). This actor produces a dataset only — caller-side persistence and data-subject obligations are not in its scope.
Multi-language reviews? SmartCustomer reviews are predominantly English. The actor emits original-locale text without translation.
Search by business name? Not in v0.2. Reserved for v0.3 — pass domain or full SmartCustomer URL for now.
Issues, ideas, custom builds? Open an issue on this actor's Issues tab on the Apify platform.