eBay Product Reviews Scraper avatar

eBay Product Reviews Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
eBay Product Reviews Scraper

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

Scrapio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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 or requestListSources objects with url).
  • 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

FieldTypeDescription
ebayProductUrlsarrayRequired. 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.
sortReviewsBystringRELEVANCE (maps to API RELEVANCEV2) or TIME.
ratingTypestringAll ratings, POSITIVE, NEUTRAL, or NEGATIVE.
withPhotosOnlybooleantrue to keep only reviews with buyer photos.
maxReviewsPerUrlintegerMax reviews per URL (0 = unlimited).
proxyConfigurationobjectApify 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.json
src/
__main__.py
main.py
Dockerfile
requirements.txt
README.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-Scraper
mkdir 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-Scraper
apify run

Configure input in the Apify Console when running in the cloud.

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.