eBay Product Reviews Scraper
Pricing
from $3.99 / 1,000 results
eBay Product Reviews Scraper
π eBay Product Reviews Scraper with Advanced Filters extracts ratings, text, dates & seller replies. π Filter by keywords, stars, verified, language & time range. π Export CSV/JSON, run at scale, API-ready. π Ideal for sentiment, QA, pricing & competitive research.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapio
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
eBay Product Reviews Scraper with Advanced Filters
Apify Actor that scrapes public eBay item pages for product metadata (JSON-LD) and seller feedback reviews (on-page HTML plus paginated mweb_profile JSON), matching the output shape of a flat list of review rows with optional nested ProductDetails on the first row per item.
Features
- Bulk URLs via
urls(strings orrequestListSourcesobjects withurl). - Proxy strategy: requests start without proxy. On block (HTTP 403/429/503 or challenge page), the actor falls back to Apify datacenter proxy, then residential proxy with up to three rotated residential attempts. After residential is used successfully, all following URLs use residential only (sticky).
- curl_cffi with Chrome TLS impersonation (
chrome120), same approach as the reference script. - Live dataset output: each review row is pushed as it is produced.
Input
| Field | Type | Description |
|---|---|---|
ebayProductUrls | array | Required. eBay item URLs (/itm/...). In the Apify Console (request list) each row is { "url": "..." }. In raw JSON you may also use plain strings; the actor accepts both. |
sortReviewsBy | string | RELEVANCE (maps to API RELEVANCEV2) or TIME. |
ratingType | string | All ratings, POSITIVE, NEUTRAL, or NEGATIVE. |
withPhotosOnly | boolean | true to keep only reviews with buyer photos. |
maxReviewsPerUrl | integer | Max reviews per URL (0 = unlimited). |
proxyConfiguration | object | Apify Proxy settings. Set useApifyProxy to false to disable datacenter/residential fallback. |
Legacy urls, sortBy, and maxReviews are still read if present.
Example:
{"ebayProductUrls": [{ "url": "https://www.ebay.com/itm/364771787371" }],"sortReviewsBy": "RELEVANCE","ratingType": "All ratings","withPhotosOnly": false,"maxReviewsPerUrl": 0,"proxyConfiguration": { "useApifyProxy": true }}
Output
Dataset items mirror the reference JSON: Url, ProductDetails (first row per item when reviews exist), ReviewerName, IsVerifiedPurchase, ReviewRatingType, ReviewComment, ReviewDateRange, ReviewImageCount, ReviewImageUrl. Further rows for the same item repeat Url without repeating ProductDetails.
Project layout
Matches Apify actor layout (see .cursor/how-to-build-actor.md):
.actor/actor.jsonsrc/__main__.pymain.pyDockerfilerequirements.txtREADME.md
All scraping and Actor orchestration live in src/main.py. Entry point: python -m src (see Dockerfile).
Local run (Python SDK)
From the actor folder:
cd Ebay-Review-Scrapermkdir storage\key_value_stores\default 2>nul
Create storage/key_value_stores/default/INPUT.json with the JSON shape shown under Input above (or use the prefilled values from the Apify Console). Then:
$python -m src
The default key-value store input path is storage/key_value_stores/default/INPUT.json. eBay often serves a challenge page to plain datacenter IPs; the actor detects that and escalates to Apify datacenter, then residential proxy when useApifyProxy is true and you run on Apify (or locally with a valid proxy password). With useApifyProxy: false, a blocked direct request cannot fall back.
Apify CLI
cd Ebay-Review-Scraperapify run
Configure input in the Apify Console when running in the cloud.
Legal
Data is taken from public eBay pages only. You are responsible for compliance with eBayβs terms and applicable laws.
Support
For issues, check Apify Actor logs and ensure proxy groups (datacenter/residential) are enabled on your Apify plan when using fallback.