eBay Seller Scraper : Reviews & Feedback Analytics avatar

eBay Seller Scraper : Reviews & Feedback Analytics

Pricing

Pay per usage

Go to Apify Store
eBay Seller Scraper : Reviews & Feedback Analytics

eBay Seller Scraper : Reviews & Feedback Analytics

πŸ” eBay Seller Scraper extracts seller profiles, ratings, feedback, listings, prices & categories at scale. πŸ“Š Export to CSV/JSON for analytics. πŸš€ Perfect for competitor research, price monitoring & market insights. ⚑ Fast, reliable, and easy to integrate.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

6 days ago

Last modified

Share

eBay Seller Scraper β€” Extract Profiles, Feedback & Analytics as JSON

eBay Seller Scraper : Reviews & Feedback Analytics extracts a seller's public profile snapshot, the seller's full buyer feedback/review history, and derived feedback analytics from any public ebay.com or ebay.co.uk seller page. It returns three entity types β€” seller profiles, buyer feedback/reviews, and feedback analytics β€” as typed, normalized JSON: no HTML, no selectors, no parsing. After a run, you have structured seller trust data ready to filter, chart, or feed straight into an LLM or agent pipeline.

What is eBay Seller Scraper : Reviews & Feedback Analytics?

eBay Seller Scraper : Reviews & Feedback Analytics is an Apify Actor that turns any public eBay seller profile URL into structured data: the seller's snapshot (name, feedback score, current listings), a fully paginated buyer feedback/review dataset for that seller, and a derived analytics object computed from that data. No eBay account, login, or API key is required to run it β€” it reads only what any visitor can already see on the seller's public page.

  • Scrape seller profile snapshots (name, feedback score, live listing titles/prices)
  • Scrape paginated buyer feedback/reviews (reviewer, rating, comment, verified-purchase flag, photos)
  • Compute feedback analytics (positive/neutral/negative %, review velocity, verified-purchase ratio, recency)
  • Optional AI sentiment and topic tagging on review text (bring your own API key)
  • Export as JSON, CSV, or other standard Apify dataset formats β€” no proxy management required

What data does eBay Seller Scraper : Reviews & Feedback Analytics collect?

Each run returns three kinds of records per seller: the profile/listings snapshot, the paginated feedback/review rows, and a computed analytics object attached to the snapshot row.

Data TypeKey FieldsJSON Field Names
Seller profile & listingsseller name, feedback score, current listing title/pricename, feedback_score, listings, sellerUsername, url
Buyer feedback / reviewsreviewer handle, rating type, comment, verified purchase, photosreviewerName, ratingType, comment, verifiedPurchase, photoCount, photoUrls
Feedback analyticspositive/neutral/negative %, review velocity, recency estimatepositivePercent, reviewVelocityPerMonth, verifiedPurchaseRatioSample, reviewRecencyDaysMaxEstimate
AI sentiment & topics (optional)per-review sentiment label, topic keywordssentiment, topics

Need more eBay data?

If you need full item-level detail instead of seller feedback β€” item specifics, condition, buying format, and a full-resolution image gallery per listing β€” the eBay Scraper β€” Full Product Specifics Actor (also from API-Empire) scrapes eBay search and listing URLs into complete product records. Run the two together to cover both the seller-trust side and the product-catalog side of an eBay research pipeline.

How does eBay Seller Scraper : Reviews & Feedback Analytics differ from the official eBay API?

eBay's Developer Program (Finding, Browse, and Trading APIs) requires registering an application, obtaining app credentials, and using OAuth for most endpoints β€” access is scoped by call, and pulling a seller's own feedback history in bulk (GetFeedback on the Trading API) is designed around a seller managing their own account, not a third party researching arbitrary sellers. eBay Seller Scraper : Reviews & Feedback Analytics instead reads the same public feedback and profile pages any browser can load, with no app registration, no OAuth flow, and no per-seller authorization required.

FeatureeBay Developer Program APIeBay Seller Scraper : Reviews & Feedback Analytics
SetupApp registration + OAuth credentialsAdd a seller URL and run
Third-party seller feedbackNot built for pulling another seller's full public feedback in bulkWorks on any public seller profile
OutputRaw per-endpoint JSON/XML requiring your own pagination handlingOne flat, paginated JSON dataset per seller
Derived analyticsNot provided β€” raw counts onlyVelocity, verified-purchase ratio, and recency computed automatically
Sentiment/topic taggingNot availableOptional, built in (bring your own AI key)
Access approvalSubject to eBay's app review and per-application call limitsNo approval process; throughput is managed by the Actor's own proxy escalation

The official API is the right choice if you're building an eBay-authorized seller tool that needs write access or the seller's own private account data. This Actor is the right choice for outside research β€” competitor monitoring, sourcing due-diligence, or trust analysis on sellers you don't control.

Why do developers and teams scrape eBay?

Seller feedback is public but scattered across paginated pages with no bulk export β€” teams pull it into a single dataset for a few recurring reasons.

For dropshipping and sourcing teams

Before committing to a supplier or wholesale seller, sourcing teams check whether the seller's feedback score is backed by substantive positive comments, not just a high percentage. Pulling feedbackAnalytics.positivePercent alongside real comment text and verifiedPurchaseRatioSample across a shortlist of candidate sellers turns a five-minute manual check per seller into one batch run, surfacing sellers with thin review counts or a recent spike in negative feedback before a partnership is signed.

For competitor and marketplace researchers

Marketplace analysts track how a competing seller's reputation moves over time by re-running the Actor on a schedule and comparing reviewVelocityPerMonth, negativePercent, and recent comment text between runs. Because the analytics are computed from eBay's own published totals rather than a private sample, the numbers stay comparable across sellers and across time, making it straightforward to spot a competitor's declining service quality or a sudden review-volume drop.

For fraud and trust-safety analysts

Buyer-trust screening looks for warning signs a raw feedback percentage hides: a low verifiedPurchaseRatioSample, a cluster of recent NEGATIVE rows, or complaint themes repeated across comment fields. Analysts run the Actor against sellers flagged by other signals and use the returned feedback rows as supporting evidence, rather than relying on eBay's single aggregate score.

For AI engineers and agent builders

RAG and agent pipelines need seller-trust context without scraping HTML inside the agent loop. Because every response is typed JSON β€” ratingType, comment, verifiedPurchase, and the feedbackAnalytics object all under stable field names β€” the output can be indexed into a vector store or passed directly into an LLM's context window as evidence when an agent is asked to evaluate or compare eBay sellers.

How to scrape eBay (step by step)

  1. Open the eBay Seller Scraper : Reviews & Feedback Analytics Actor on the Apify platform (console or API) β€” no separate signup with eBay is needed.
  2. Add one or more seller profile URLs to sellerProfileUrls (e.g. https://www.ebay.co.uk/usr/your_seller_name).
  3. Set feedback filters as needed β€” feedbackSortBy, feedbackRatingFilter, feedbackPhotosOnly, and maxFeedbackPerSeller control what the paginated feedback fetch returns.
  4. Start the run from the Apify console, the API, or a scheduled task.
  5. Download results as JSON, CSV, or another supported export format from the run's dataset, or read them via the API.

What to do when eBay changes its structure

eBay's seller and feedback pages have already changed their underlying markup and JSON shapes more than once; this Actor is maintained against those changes and its output field names stay stable, so downstream integrations built on this schema keep working without code changes on your end.

⬇️ Input

ParameterRequiredTypeDescriptionExample Value
sellerProfileUrlsNoarrayOne or more eBay seller profile URLs. A plain urls list (base-actor field) is still accepted.["https://www.ebay.co.uk/usr/chrisjoh7639"]
feedbackSortByNostring (enum: TIME, RELEVANCE)Sort order for collected reviews. TIME (newest first) is recommended."TIME"
feedbackRatingFilterNostring (enum: All ratings, POSITIVE, NEUTRAL, NEGATIVE)Restrict feedback to a rating type. A specific filter is scoped to eBay's own last-12-months window."All ratings"
feedbackPhotosOnlyNobooleanKeep only feedback rows with a buyer-submitted photo.false
maxFeedbackPerSellerNointeger (0–100000)Cap feedback rows collected per seller. 0 = no limit (internally safety-capped).100
computeFeedbackAnalyticsNobooleanCompute the feedbackAnalytics object per seller.true
enableSentimentAnalysisNoboolean (default false)Turn on AI sentiment/topic tagging for review comments.false
aiModelNostring (select, default claude-haiku-4-5)AI model/provider for sentiment tagging, only used when enabled."claude-haiku-4-5"
aiApiKeyNostring (secret)Your own API key for the selected AI provider; falls back to a matching environment variable.""
proxyConfigurationNoobject (proxy editor)Optional Apify Proxy configuration shared by the listing scrape and the feedback fetch.{"useApifyProxy": false}

No parameter is required β€” an empty input still needs at least one URL in sellerProfileUrls to produce results.

Example input:

{
"sellerProfileUrls": ["https://www.ebay.co.uk/usr/chrisjoh7639"],
"feedbackSortBy": "TIME",
"feedbackRatingFilter": "All ratings",
"feedbackPhotosOnly": false,
"maxFeedbackPerSeller": 100,
"computeFeedbackAnalytics": true,
"enableSentimentAnalysis": false,
"aiModel": "claude-haiku-4-5",
"aiApiKey": "",
"proxyConfiguration": { "useApifyProxy": false }
}

Common pitfall: every seller row and every individual feedback row is billed as one row_result event, so a large sellerProfileUrls list combined with a high maxFeedbackPerSeller multiplies the row count (and cost) fast β€” start with a small maxFeedbackPerSeller when testing a new seller list.

⬆️ Output

Results are typed, normalized JSON with a stable schema, exportable as JSON, CSV, Excel, or the other formats the Apify dataset supports. Each run writes two distinct row shapes into the same dataset, distinguished by type/isChild.

Scraped seller row

{
"url": "https://www.ebay.co.uk/usr/chrisjoh7639",
"name": "chrisjoh7639",
"feedback_score": "100%",
"listings": [
{ "title": "Vintage camera lens 50mm", "price": "Β£24.99" }
],
"type": "seller",
"isChild": false,
"sellerUsername": "chrisjoh7639",
"listingScrapeSucceeded": true,
"feedbackReviewsCollected": 100,
"feedbackAnalytics": {
"sampleSize": 100,
"totalFeedbackCount": 15897395,
"sellerFeedbackScorePercent": 100.0,
"positivePercent": 99.28,
"neutralPercent": 0.44,
"negativePercent": 0.27,
"ratingBreakdownSourceWindow": "last 12 months (eBay's own published breakdown)",
"reviewVelocityPerMonth": 188753,
"verifiedPurchaseRatioSample": 0.62,
"reviewsWithPhotosInSample": 4,
"mostRecentReviewDateRange": "Past month",
"reviewRecencyDaysMaxEstimate": 30
},
"scrapedAt": "2026-07-15T12:00:00Z"
}

Scraped feedback/review row

{
"type": "feedback",
"isChild": true,
"sellerUsername": "chrisjoh7639",
"sellerUrl": "https://www.ebay.co.uk/usr/chrisjoh7639",
"feedbackId": "2685630758013",
"reviewerName": "b***o",
"ratingType": "Positive",
"comment": "Great seller, fast post, well wrapped, exactly as described.",
"verifiedPurchase": true,
"dateRange": "Past 6 months",
"photoCount": 1,
"photoUrls": ["https://i.ebayimg.com/00/s/example/$_1.JPG"],
"relatedItemTitle": "Animal-Wise: The Spirit Language and Signs of Nature",
"relatedItemUrl": "https://www.ebay.co.uk/itm/397357194991",
"relatedItemPrice": "Β£9.72",
"sentiment": null,
"topics": null,
"scrapedAt": "2026-07-15T12:00:01Z"
}

reviewerName values are eBay's own privacy-masked buyer handles (e.g. b***o) β€” that is what the public feedback page shows, not a redaction added by this Actor. sentiment/topics stay null unless enableSentimentAnalysis is on and a valid AI key is available.

How many results can you scrape with eBay Seller Scraper : Reviews & Feedback Analytics?

There is no schema-enforced cap on how many seller URLs you can put in sellerProfileUrls β€” add one seller or a large list for a bulk run. Per seller, maxFeedbackPerSeller accepts up to 100,000, but the Actor enforces an internal safety ceiling of 40 pages at 100 rows per page (roughly 4,000 feedback rows per seller) regardless of that setting, to prevent runaway pagination against sellers with very high feedback volume. Listings collected for the profile snapshot are whatever eBay renders on the seller's own profile/store page in a single fetch β€” there is no separate listings pagination in this variant. No benchmark run time is published; actual duration depends on how many sellers and how much feedback per seller you request.

Integrate eBay Seller Scraper : Reviews & Feedback Analytics and automate your workflow

eBay Seller Scraper : Reviews & Feedback Analytics works with any language or tool that can send an HTTP request, since it runs as a standard Apify Actor reachable through the Apify API.

REST API integration

from apify_client import ApifyClient
client = ApifyClient("<APIFY_API_TOKEN>")
run = client.actor("API-Empire/eBay-Seller-Scraper-Reviews-And-Feedback-Analytics").call(
run_input={
"sellerProfileUrls": ["https://www.ebay.co.uk/usr/chrisjoh7639"],
"feedbackSortBy": "TIME",
"maxFeedbackPerSeller": 100,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["type"], item.get("name") or item.get("reviewerName"))

Works in Python, Node.js, Go, Ruby, cURL.

Automation platforms (n8n, Make)

Both n8n and Make offer a native Apify integration node/module that can start this Actor by its name, pass sellerProfileUrls and the feedback filter fields as run input, and read back the resulting dataset items β€” useful for scheduling recurring seller-trust checks without writing custom API code.

Scraping publicly accessible eBay seller and feedback pages is generally lawful; the Actor only collects data that any visitor can already see without logging in. The main legal consideration is eBay's own Terms of Service, which govern automated access, and database-rights protections that can apply to how listing and seller data is compiled and reused β€” this is a ToS and database-rights question, not primarily a data-protection one, since the data returned is business/seller-facing rather than private individual records. Reviewer names are already eBay's own privacy-masked handles, not full identities. Consult legal counsel before any commercial use involving bulk collection or redistribution of buyer feedback text.

Frequently asked questions

Does eBay Seller Scraper : Reviews & Feedback Analytics work without an eBay account?

Yes. It reads public seller profile and feedback pages the same way any visitor's browser does β€” no eBay login, account, or API key is required to run it.

How often is the scraped data updated?

Every run fetches the seller's profile and feedback pages live at run time; nothing is served from a cache, so results reflect the seller's current public state at the moment the run executes.

What happens if a seller profile or its listings can't be reached?

If eBay blocks the base profile/listing fetch for a seller, listingScrapeSucceeded is set to false, feedback_score is null, and listings is an empty array β€” the Actor never fabricates these fields. Feedback collection uses a separate, more resilient fetch path and is still attempted even when the listing snapshot is blocked.

Can I scrape private or restricted eBay content?

No. Only feedback and profile data that eBay already shows on the seller's public pages is returned; there is no access to a seller's private account data or buyer-only content.

Does it work for AI agent workflows and LLM pipelines?

Yes β€” it is callable as an HTTP endpoint through the Apify API by any agent framework. Every response is typed JSON with stable field names, so no parsing step is needed before passing results into an LLM or agent tool.

How does it handle eBay's anti-bot system?

The Actor detects eBay's soft-block/challenge pages by status code and known challenge-page markers, then escalates through direct β†’ datacenter proxy β†’ residential proxy tiers with jittered delays between requests. Feedback pagination uses a fresh session with its own warmup request for each page, since reusing one session across consecutive feedback-page requests was found to trigger a challenge response.

Does it return data in a format LLMs can use directly?

Yes. Output is typed, normalized JSON with stable field names β€” no HTML and no selectors β€” so it can be indexed into a vector store or passed straight into an LLM's context window.

Can I use it without managing proxies?

Yes. Proxy configuration is optional and off by default (useApifyProxy: false); the Actor only escalates to proxy tiers internally when a direct request is blocked, and it manages that escalation itself.

Are review dates exact?

No. eBay's public feedback list only shows a coarse date-range label per review (e.g. "Past month", "Past 6 months"), not an exact date. reviewRecencyDaysMaxEstimate is an honest upper-bound conversion of that label, never a fabricated precise day count.

What happens when eBay changes its structure or blocks the scraper?

The Actor is maintained against eBay's page and markup changes, and the output schema stays stable β€” field names and types on your end don't change when an internal fetch mechanism is updated to match a new eBay page structure.

Your feedback

Found a bug, a missing field, or a seller page this Actor doesn't handle correctly? We want to know β€” reach out through the Actor's Apify Store support/issues tab so it can be fixed and the README kept accurate.