Wholesale Trends Product Finder
Pricing
from $5.00 / 1,000 product scanneds
Wholesale Trends Product Finder
Find winning wholesale products on Faire.com automatically. Scores products 0-100 using review velocity, restock signals, and satisfaction ratio. Scan entire categories or specific product URLs. B2B product research made data-driven.
Pricing
from $5.00 / 1,000 product scanneds
Rating
0.0
(0)
Developer
Stellaboost
Maintained by CommunityActor stats
2
Bookmarked
5
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
Wholesale Trends Product Finder — Faire.com Winner Scanner
Find wholesale products that are already selling on Faire.com — before you commit to a minimum order. Scans any category or product list, scores every product on a Winner Score /100 built from real buyer signals, and returns only the ones worth stocking.
What it does
Give it a Faire category URL (or a list of specific product URLs) — it returns a clean dataset of scored products:
- ✅ Winner Score /100 — one number combining 4 independent demand signals
- ✅ Review velocity — is this product getting attention right now?
- ✅ Restock detection — buyers reordering is the strongest signal of real demand
- ✅ Barrier-to-entry scoring — favors products with an accessible minimum order
- ✅ Satisfaction-weighted — filters out high-volume but poorly-rated products
- ✅ Bilingual review parsing — correctly handles English and French dates/ratings
- ✅ Direct product URL mode — skip category scanning, test specific products instantly
- ✅ Similar-product discovery — auto-queues related products found during scanning
Two phases — one Actor
| Phase | When | What it does |
|---|---|---|
| Directory | You give a category/listing URL | Paginates through category pages, collects candidate product URLs |
| Detail | Always runs after Directory (or directly if directProductUrls is set) | Opens each product page, extracts direct reviews, computes the Winner Score |
Set directProductUrls to skip the Directory phase entirely and score specific products only.
Usage examples
Example 1 — Scan a category for winners
{"startUrls": [{ "url": "https://www.faire.com/category/kids-baby" }],"maxProductsToScan": 300,"minProductReviewsThreshold": 5,"winnerScoreThreshold": 70,"velocityWindowDays": 60,"useApifyProxy": true,"maxConcurrency": 3}
What happens: the Actor pages through the Kids & Baby category, collects up to 300 product URLs, visits each product page, scores it, and saves every product scoring 70+ to the dataset.
Expected output: on a category of ~270–300 products, typically 4–15 winners depending on category maturity.
Example 2 — Test specific products directly
{"directProductUrls": ["https://www.faire.com/product/p_xxxxxxx","https://www.faire.com/product/p_yyyyyyy"],"minProductReviewsThreshold": 1,"winnerScoreThreshold": 50,"useApifyProxy": false}
What happens: the Directory phase is skipped entirely — only the listed products are opened, scored, and saved. Useful for re-checking a shortlist or testing changes to scoring parameters without a full category run.
Example 3 — Wide net, low threshold (exploration mode)
{"startUrls": [{ "url": "https://www.faire.com/category/jewelry" }],"maxProductsToScan": 500,"minProductReviewsThreshold": 3,"winnerScoreThreshold": 50,"velocityWindowDays": 365,"useApifyProxy": true,"maxConcurrency": 3}
What happens: a longer velocityWindowDays and a lower winnerScoreThreshold surface more borderline candidates — useful when exploring a new category for the first time rather than hunting only for top performers.
Example 4 — Fast, targeted run with custom restock keywords
{"startUrls": [{ "url": "https://www.faire.com/category/home-decor" }],"maxProductsToScan": 150,"winnerScoreThreshold": 75,"restockKeywords": ["reorder", "restock", "sold out", "flew off the shelf", "selling like crazy"],"maxConcurrency": 3,"maxRequestsPerMinute": 60}
What happens: a smaller scan with a stricter threshold and an extended restock keyword list to catch informal demand language that the default list misses.
Configuration
Core settings
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | Array | Home Decor category | Faire category/listing URLs to scan. Ignored when Direct product URLs is set |
directProductUrls | Array | 2 sample product URLs | Bypass the Directory phase — score specific product URLs directly. Clear this array to run a full category scan via startUrls instead |
maxProductsToScan | Integer | 5 | Max product URLs collected during the Directory phase. Also caps total DETAIL-phase requests (including similar-product discovery) at 3x this value as a safety limit — raise this for a full production scan (e.g. 300–500) |
useApifyProxy | Boolean | true | Use Apify Proxy (recommended to avoid rate limiting) |
proxyGroups | Array | ["RESIDENTIAL"] | Proxy group used. Residential is set by default for reliability (near-zero blocking observed in testing); switch to [] for the cheaper datacenter proxy on large production scans if you're not hitting blocks |
maxConcurrency | Integer | 1 | Concurrent browser sessions. Raise to 3–5 for faster large scans once you've confirmed your proxy setup holds up |
maxRequestsPerMinute | Integer | 60 | Request rate limit |
The out-of-the-box defaults are intentionally small (2 sample products,
maxProductsToScan: 5) so a first run finishes in about a minute and reliably returns results. For a real category scan, cleardirectProductUrls, setstartUrlsto your target category, and raisemaxProductsToScanto 300–500.
Scoring settings
| Parameter | Type | Default | Description |
|---|---|---|---|
minProductReviewsThreshold | Integer | 3 | Minimum direct reviews required before a product is scored |
winnerScoreThreshold | Integer | 50 | Minimum Winner Score for a product to be saved to the dataset |
velocityWindowDays | Integer | 365 | Review recency window used for the Velocity Score |
restockKeywords | Array | see below | Customizable list of restock/reorder signal phrases |
Default restock keywords:
reorder, restock, sold out, ordered again, back in stock, sold on the first, sell well, selling fast
Output
{"productUrl": "https://www.faire.com/product/p_xxxxxxx","productName": "Example Product Name","brandName": "Example Brand","msrp": 24.00,"minimumOrder": 150,"productReviewsCount": 42,"winnerScore": 78,"velocityScore": 32,"restockIndex": 24,"barrierToEntry": 10,"satisfactionRatio": 12}
Winner Score breakdown (/100)
| Signal | Max points | What it measures |
|---|---|---|
| Velocity Score | 40 | Share of reviews posted within the recent window — is demand fresh? |
| Restock Index | 30 | Share of reviews mentioning restock/reorder language, plus a bonus for multiple distinct keywords |
| Barrier to Entry | 15 | Rewards lower minimum order values (≤$100 scores highest, ≤$300 mid, above scores lowest) |
| Satisfaction Ratio | 15 | Weighted balance of 5★ reviews vs. 1–2★ reviews |
Only direct product reviews are used for scoring — reviews for similar products from the same brand are detected and excluded from the score (though their URLs are still queued for scanning).
How it works
Directory phase — pages through Faire category listings, extracts product IDs from result links, and collects canonical product URLs up to maxProductsToScan.
Detail phase — for each product:
- Opens the product page and scrolls to the "Ratings and reviews" section
- Separates direct product reviews from "reviews for similar products from this brand" — only direct reviews count toward the score
- Paginates through review pages to collect enough signal
- Computes the Winner Score from recency, restock language, price, and rating distribution
- Saves the product if it clears
winnerScoreThreshold, and queues any similar products discovered along the way
Bilingual handling — Faire serves review dates and star ratings in the visitor's browser locale regardless of request headers. The Actor parses both English and French date formats and star-rating labels so scoring stays accurate no matter which locale a run happens to hit.
Feature comparison
| Feature | Wholesale Trends Product Finder | Manual browsing |
|---|---|---|
| Combines review velocity + restock + price + rating into one score | ✅ | ❌ |
| Detects restock/reorder language automatically | ✅ | ⚠️ Manual reading only |
| Separates direct reviews from same-brand "similar product" reviews | ✅ | ❌ Easy to miss |
| Bilingual (EN/FR) review parsing | ✅ | ⚠️ Depends on browser locale |
| Auto-discovers and queues similar products | ✅ | ❌ |
| Test specific products without a full category scan | ✅ | N/A |
| Customizable restock keyword list | ✅ | N/A |
Pricing
Pay per event, plus platform usage — you pay for what the Actor delivers, and for the underlying Apify compute/proxy it consumes to get there.
| Event | Price | What it means |
|---|---|---|
| Product Scanned | $0.005 / product ($5.00 / 1,000) | Charged for every product opened and analyzed in the Detail phase — win or not |
| Winner Found | $0.15 / product ($150.00 / 1,000) | Charged only for products that clear the Winner Score threshold and get saved to the dataset |
| Actor start | $0.00005 | Charged once per run |
| Platform usage | Variable, cheaper on higher Apify plans | Apify compute + proxy costs, billed directly to your account on top of the events above |
Unlike scrapers that charge only per raw result, this pricing has two tiers on purpose: Product Scanned covers the cost of the review analysis performed on every product (whether or not it becomes a winner), and Winner Found reflects the extra value of a product that actually clears the bar. Platform usage is billed separately so the price you see per event stays constant regardless of proxy choice — running with the default
RESIDENTIALproxy costs more in platform usage than the datacenter proxy, but is far more reliable against blocking.
Real run costs (reference)
| Category tested | Products scanned | Winners found | Duration | Platform cost* |
|---|---|---|---|---|
| Home Decor | 280 | 16 | 16 min | $0.91 |
| Kids & Baby | 270 | 15 | 16 min | $0.91 |
* These reference figures were measured on the datacenter proxy, before platform usage was split out as a separate billed line — treat them as a rough guide to relative cost between categories, not your exact bill. Your own run's platform usage cost depends on your Apify plan and the proxy group selected.
Residential proxies (
proxyGroups: ['RESIDENTIAL'], the default) eliminate blocking almost entirely but cost noticeably more in platform usage than the default datacenter proxy — switch toproxyGroups: []for large production scans once you've confirmed the datacenter proxy isn't getting blocked on your target category.
Tips
More winners:
- Lower
winnerScoreThresholdto 50–60 for exploration mode in a new category - Increase
velocityWindowDaysto 180–365 for slower-moving categories like Home Decor - Extend
restockKeywordswith informal phrases ("flew off the shelf," "selling like crazy") to catch signals the default list misses
Faster / cheaper runs:
- Use
directProductUrlsto re-check a shortlist instead of rescanning a whole category - Switch
proxyGroupsfrom["RESIDENTIAL"]to[](datacenter proxy) once you've confirmed your target category isn't triggering blocks — it's noticeably cheaper in platform usage - Raise
maxConcurrencyto 3–5 for large scans once your proxy setup is confirmed stable
Avoid rate limiting:
- The default
proxyGroups: ["RESIDENTIAL"]andmaxConcurrency: 1are tuned for reliability out of the box — near-zero blocking observed in testing, at the cost of a slower, more expensive run - If you switch to the datacenter proxy (
proxyGroups: []) for cost reasons, keepmaxConcurrencyat 3 andmaxRequestsPerMinuteat 60 as a starting point, and watch for 429/403 warnings in the log before pushing higher
Use cases
- 🎯 Wholesale buyers sourcing new products without guessing which ones will actually sell
- 📦 Dropshippers validating demand before committing to a minimum order
- 🔍 Brand scouts spotting suppliers gaining traction before they go mainstream
- 📊 Market researchers tracking category-level demand trends on Faire over time
Limitations
- Wholesale pricing is hidden behind a Faire buyer account and is not scraped — only publicly visible MSRP and minimum order values are used
- Very new products with few reviews may be under-scored — raise
minProductReviewsThresholdaccordingly, or lower it for exploration mode - Review pagination is currently capped per product; extremely well-reviewed products may not have every review counted toward the score
Legal
This Actor extracts only publicly available information visible on Faire.com without requiring a buyer account. Always comply with Faire's Terms of Service and applicable data protection laws. The user is solely responsible for how extracted data is used.