SmartCustomer Review Scraper (Pay-Per-Event) avatar

SmartCustomer Review Scraper (Pay-Per-Event)

Pricing

Pay per usage

Go to Apify Store
SmartCustomer Review Scraper (Pay-Per-Event)

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.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Arnas

Arnas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

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 emit photos: [] because SmartCustomer surfaces photos inconsistently.
  • Status enum per recordok, 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

  1. Click "Try for free" on this actor's page.
  2. Enter business domains in the input form, one per line (e.g., amazon.com).
  3. Set "Max reviews per run" to cap your spend. The default 50 makes test runs cheap.
  4. (Optional) Toggle "Only emit reviews that have photos" — but note SmartCustomer's photo coverage is inconsistent.
  5. (Optional) Pick a sort orderrelevance (default), newest, highest_rated, lowest_rated.
  6. Click "Save & Start". Watch the live log; reviews stream into the dataset as they're scraped.
  7. Export as JSON, CSV, Excel, or HTML, or hit the Apify Dataset API directly.

Input

ParameterTypeRequiredDescription
domainsArrayOne-of requiredBusiness domains (e.g., ["amazon.com", "airbnb.com"]). Each is mapped to https://www.smartcustomer.com/reviews/<domain>. Domain regex enforced.
businessUrlsArrayOne-of requiredFull SmartCustomer review URLs (e.g., https://www.smartcustomer.com/reviews/airbnb.com). Host must be smartcustomer.com. Canonicalized to domain before processing.
maxReviewsIntegerNoTotal cap on reviews emitted across the run. Budget splits greedily across resolved businesses. Default 50. Max 1000.
sortByStringNorelevance (default) / newest / highest_rated / lowest_rated.
onlyWithPhotosBooleanNoWhen true, drops reviews with no photos. PPE charges only for emitted (post-filter) reviews — filtered-out reviews are not billed. SmartCustomer photo coverage varies.
maxConcurrencyIntegerNoHTTP concurrency. Default 5, max 30.
requestTimeoutSecsIntegerNoPer-request timeout. Default 45.
proxyConfigurationObjectNoApify proxy. Residential is the default and recommended.

At least one of domains or businessUrls must be provided.

Input examples

Use caseInput 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

FieldTypeDescription
typestring"review" or "run_summary".
review_urlstring | nullSmartCustomer-canonical permalink. Always on *.smartcustomer.com.
urlstring | nullOriginal review URL from JSON-LD (typically smartcustomer.com).
business_urlstring | nullSmartCustomer business page URL.
review_idstring | nullReview's ID from SmartCustomer.
ratingnumber | nullStar rating, 1–5.
review_datestring | nullDate as SmartCustomer displays it.
textstring | nullReview body. Original locale.
user_namestring | nullReviewer's display name (typically first-name + last-initial).
user_avatar_urlstring | nullAvatar URL on *.smartcustomer.com.
photosstring[]Always present. Each URL is https://*.smartcustomer.com/... validated. Empty for most reviews.
statusstringok | partial | business_not_found | blocked | rate_limited.
businessobjectEmbedded 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 the onlyWithPhotos filter).

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 newest for monitoring runs, relevance for one-shot pulls.
  • maxReviews=20 matches 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 reduce maxConcurrency.

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.