eBay Seller Scraper By Keyword & Marketplace Search
Pricing
from $5.99 / 1,000 results
eBay Seller Scraper By Keyword & Marketplace Search
π eBay Seller Scraper extracts seller profiles, store info, active listings, prices, ratings & feedback. π Ideal for competitor analysis, pricing, product research & lead gen. β‘ Fast, reliable; export CSV/JSON for analytics & automation.
Pricing
from $5.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
eBay Seller Scraper β Keyword Discovery, Feedback and Listings
eBay Seller Scraper By Keyword & Marketplace Search finds eBay sellers by keyword or category search β or scrapes seller profile URLs you already have β across 16 eBay marketplaces. Each result returns the seller's feedback score alongside structured data for their live listings: item link, condition, image, and discount percentage. Every response is clean, structured JSON β ready to pass directly to an LLM, index into a vector store, or feed a monitoring pipeline. Point it at a niche and start mapping who actually sells there.
What is eBay Seller Scraper By Keyword & Marketplace Search?
It is an Apify Actor that turns an eBay keyword or category search into a list of the real sellers behind the matching listings, or scrapes a list of seller profile URLs you already know, on any of 16 eBay country sites. Each output row is one seller, carrying their feedback score plus a listings array of structured commerce fields for what they currently have live. No eBay account or login is used or required β it reads only the public pages any visitor sees.
- Keyword / category discovery β type a search term ("vintage camera", "nike sneakers") and the Actor resolves the actual sellers behind matching listings, one item-page hop at a time, without you knowing any usernames up front
- 16-marketplace support β run the same search or seller list against
ebay.com,.co.uk,.de,.fr,.it,.es,.ca,.com.au,.at,.ie,.nl,.pl,.ch,.com.hk,.com.my,.com.sg, or.ph - Direct seller mode β paste known seller profile URLs (any locale) or bare usernames and skip discovery entirely
- Structured per-listing commerce fields β deep item URL, condition, image, original price, discount percentage, best-offer flag, and shipping/delivery attribute text
- Combined runs β mix keyword discovery and direct seller URLs in one job; every row records whether it came from a keyword (
discoveredViaKeyword,matchedQuery) or from a direct URL - Built-in fallback fetching β direct request first, escalating through datacenter and residential proxy tiers only when a page comes back blocked
What data can you get with eBay Seller Scraper By Keyword & Marketplace Search?
Every run returns one JSON object per seller, with a nested array of that seller's current listings.
| Result Type | Extracted Fields | Primary Use Case |
|---|---|---|
| Seller profile | url, name, feedback_score, marketplaceDomain, discoveredViaKeyword, matchedQuery, scrapedAt | Identify and track who sells in a niche or locale |
Listing (nested in listings[]) | title, price, productUrl, condition, imageUrl, originalPrice, discountPercent, cardAttribute, hasBestOffer | Price, condition, and inventory analysis per seller |
Listings
Each seller row carries a listings array β items currently live on that seller's storefront. Beyond title and price, every listing includes a direct productUrl, the stated condition, a full-size imageUrl, and β when marked down β originalPrice plus a computed discountPercent. cardAttribute collects shipping/offer text from the card, and hasBestOffer flags items open to offers. That's a seller and their live, priced inventory in one row.
How does eBay Seller Scraper By Keyword & Marketplace Search differ from the official eBay API?
eBay's official Buy APIs (Browse API, and the older Finding and Trading APIs) return item and seller data too, but only to registered, approved developer applications β not to someone who just wants to check who sells in a niche.
| Feature | eBay Browse API (official) | eBay Seller Scraper By Keyword & Marketplace Search |
|---|---|---|
| Setup | eBay Developer Program registration, production-key approval, OAuth client-credentials token per request (developer.ebay.com) | No account, key, or approval β enter a search term or URL and run |
| Search sellers by keyword | Not exposed directly β item_summary/search returns items; whichever sellers appear are incidental, there is no "search sellers" endpoint | Purpose-built: keyword search resolves distinct sellers, one row each |
| Seller feedback | feedbackScore / feedbackPercentage on each item's nested Seller object (developer.ebay.com) | feedback_score returned once per seller row |
| Per-seller listing detail | Separate item-level calls needed to assemble a seller's full current inventory | listings[] with condition/image/discount already attached, same row |
| Marketplace scope | One marketplace_id per request | One marketplaceDomain input field selects any of 16 locales |
| Output shape | Raw API JSON matching eBay's schema β assembly required | One ready-to-use JSON row per seller |
The official API is the right choice if you're building an eBay-integrated app under eBay's own terms and already have developer approval. This Actor is the faster path when you just need a list of sellers and their live inventory for research, without registering an application first.
How to scrape eBay with eBay Seller Scraper By Keyword & Marketplace Search?
- Open eBay Seller Scraper By Keyword & Marketplace Search on the Apify platform.
- Add one or more terms to
searchQueries(e.g."vintage camera") to discover sellers, and/or paste known profile URLs intosellerProfileUrlsβ no field is strictly required by the schema, but at least one of the two must be filled or the run finds nothing to scrape. - Pick
marketplaceDomainfor the locale you want, and setmaxSellersPerQuery/maxSearchResultPagesto control how deep the discovery goes. - Click Start and watch rows land in the Output tab as each seller is scraped.
- Export the dataset as JSON, CSV, or Excel, or pull it via the Apify API.
Real request body:
{"searchQueries": ["vintage camera"],"marketplaceDomain": "ebay.com","maxSellersPerQuery": 5,"maxSearchResultPages": 1}
How to run multiple queries in one job
List every keyword you want on its own line in searchQueries β the Actor works through them one at a time in the same run, discovering up to maxSellersPerQuery distinct sellers for each term before moving to the next, and skipping any username it has already resolved earlier in the same run. There's no separate batching endpoint to learn: one input array is the batch.
β¬οΈ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
searchQueries | No | array | Keyword/category search terms β one per line. Discovers new sellers whose listings match the term. Leave empty to skip discovery. | ["vintage camera"] |
marketplaceDomain | No | string (enum) | Which of the 16 eBay locales to search/scrape on for discovery and for bare usernames. Full seller URLs keep their own domain. | "ebay.com" |
maxSellersPerQuery | No | integer | Cap on unique sellers resolved per search term. Default 5. | 5 |
maxSearchResultPages | No | integer | Search-result pages scanned per term when discovering sellers. Default 1. | 1 |
sellerProfileUrls | No | array | Known seller profile URLs (any of the 16 marketplaces) or bare usernames. Also accepts the legacy urls key. | ["https://www.ebay.co.uk/usr/chrisjoh7639"] |
proxyConfiguration | No | object | Optional Apify Proxy configuration. Defaults to no proxy; the Actor escalates direct β datacenter β residential automatically if a request is blocked. | {"useApifyProxy": false} |
Example input:
{"searchQueries": ["vintage camera", "nike sneakers"],"marketplaceDomain": "ebay.com","maxSellersPerQuery": 5,"maxSearchResultPages": 1,"sellerProfileUrls": ["https://www.ebay.co.uk/usr/chrisjoh7639"],"proxyConfiguration": { "useApifyProxy": false }}
Common pitfall: every field is optional in the schema, but leaving both searchQueries and sellerProfileUrls empty gives the Actor nothing to do β it logs a warning and the run ends with zero rows. Fill at least one. Separately, if you open the proxy block, don't pick Own proxies and leave the list empty β that fails validation; choose No proxy instead.
β¬οΈ Output
Results are typed, normalized JSON, one object per seller, with a consistent schema across runs β pushed live to the dataset as each seller finishes scraping. Export it as JSON, CSV, Excel, or any other format the Apify dataset export supports.
Scraped results
[{"url": "https://www.ebay.com/usr/cameravaultusa","name": "cameravaultusa","feedback_score": "99.2% positive","marketplaceDomain": "ebay.com","discoveredViaKeyword": true,"matchedQuery": "vintage camera","listings": [{"title": "Vintage 35mm Film Camera - Fully Tested","price": "$45.00","productUrl": "https://www.ebay.com/itm/123456789012","condition": "Pre-owned","imageUrl": "https://i.ebayimg.com/images/g/abc/s-l500.jpg","originalPrice": "$60.00","discountPercent": 25,"cardAttribute": ["Free shipping"],"hasBestOffer": true}],"scrapedAt": "2026-07-25T12:03:41+00:00"},{"url": "https://www.ebay.com/usr/retrolensco","name": "retrolensco","feedback_score": "100% positive","marketplaceDomain": "ebay.com","discoveredViaKeyword": true,"matchedQuery": "vintage camera","listings": [{"title": "Vintage Twin Lens Reflex Camera","price": "Β£78.00","productUrl": "https://www.ebay.com/itm/223344556677","condition": "Used","imageUrl": "https://i.ebayimg.com/images/g/def/s-l500.jpg","originalPrice": "","discountPercent": null,"cardAttribute": ["Located in United Kingdom"],"hasBestOffer": false}],"scrapedAt": "2026-07-25T12:04:02+00:00"},{"url": "https://www.ebay.co.uk/usr/chrisjoh7639","name": "chrisjoh7639","feedback_score": "100% positive","marketplaceDomain": "ebay.co.uk","discoveredViaKeyword": false,"matchedQuery": null,"listings": [{"title": "Nikon FM2 Camera Body","price": "Β£110.00","productUrl": "https://www.ebay.co.uk/itm/334455667788","condition": "Very Good","imageUrl": "https://i.ebayimg.com/images/g/ghi/s-l500.jpg","originalPrice": "Β£130.00","discountPercent": 15,"cardAttribute": ["Free returns"],"hasBestOffer": true}],"scrapedAt": "2026-07-25T12:05:17+00:00"}]
How can I use the data extracted with eBay Seller Scraper By Keyword & Marketplace Search?
- Competitive seller research (resellers, dropshippers, sourcing teams): run your niche keywords, then rank discovered sellers by
feedback_scoreand inspect theirlistingsto see exactly what's live, at what condition and price, before deciding who to watch or contact. - Price and discount monitoring: re-scrape the same seller list on a schedule and diff
price,originalPrice, anddiscountPercentperproductUrlto catch markdowns and Best Offer listings (hasBestOffer) as they appear. - AI engineers and LLM developers: wire an agent to call this Actor with a category term, receive structured JSON back, and ground answers about "who sells X" or "what's this seller currently listing" without the model hallucinating storefront details.
- Market researchers: compare the same keyword across several
marketplaceDomainvalues to see how seller counts, feedback scores, and pricing differ between the US, UK, EU, and APAC eBay sites.
How do you monitor eBay seller feedback and listings over time?
Monitoring here means re-running the same keyword set or seller list on a schedule and comparing each seller's row to its previous version. Because every row carries a scrapedAt timestamp, you can always tell which run a given snapshot came from.
The fields worth diffing between runs are feedback_score (a seller's reputation moving up or down), the contents of listings[] keyed by productUrl (new items appearing, old ones disappearing β meaning sold or delisted), and price / discountPercent on items that persist between runs (a live price cut or a new Best Offer flag).
A practical workflow: keep a fixed list of seller URLs or niche keywords in your input, run the Actor on a recurring schedule, and compare each new dataset export against the previous one β join on url (seller) and productUrl (listing) β then alert whenever feedback_score drops, a tracked seller's listing count changes, or discountPercent crosses a threshold you care about.
This Actor has no built-in webhook or diffing feature of its own; the comparison logic lives in whatever you run afterward. What it does provide is the real scheduling hook: Apify's platform-level Schedule feature can trigger this Actor with the same input on a recurring cadence, so the snapshots you're diffing arrive automatically.
Integrate eBay Seller Scraper By Keyword & Marketplace Search and automate your workflow
eBay Seller Scraper By Keyword & Marketplace Search works with any language or tool that can send an HTTP request.
REST API with Python
import requestsurl = "https://api.apify.com/v2/acts/scrapier~ebay-seller-scraper-by-keyword-and-marketplace-search/run-sync-get-dataset-items"headers = {"Authorization": "Bearer <YOUR_APIFY_API_TOKEN>"}payload = {"searchQueries": ["vintage camera"],"marketplaceDomain": "ebay.com","maxSellersPerQuery": 5,}response = requests.post(url, headers=headers, json=payload)sellers = response.json()for seller in sellers:print(seller["name"], seller["feedback_score"], len(seller["listings"]))
MCP for query-grounded AI agents
This Actor is reachable through Apify's Actors MCP Server: npx @apify/actors-mcp-server --tools scrapier/ebay-seller-scraper-by-keyword-and-marketplace-search, or via the hosted https://mcp.apify.com endpoint. An MCP-native client (Claude Desktop, Claude Code, or another MCP agent framework) can call it as a tool β the agent sends a keyword or seller URL, gets back structured seller/listing JSON, and answers grounded in what's actually live on eBay right now.
Scheduled monitoring and delivery
Use Apify's Schedule feature to trigger runs with the same input on a recurring cadence, then pull each run's dataset via the API or webhook integrations available on the platform. There is no built-in push-notification feature inside the Actor itself β delivery is whatever your schedule or webhook is wired to.
Is it legal to scrape eBay seller data?
Yes β scraping publicly visible eBay seller and listing pages is generally legal in most jurisdictions, since this Actor only collects what any visitor can already see without logging in. Seller names, feedback scores, and listing details are business data, not personal data about private individuals, so this sits closer to ToS and database-rights considerations than to GDPR/CCPA personal-data rules. eBay's Terms of Service restrict automated access, so compliance is a contractual question between you and eBay, not strictly a legal ban on scraping public pages. Scraping for one-off research or monitoring carries a different risk profile than scraping at scale to train a model or rebuild a competing catalog. Consult your legal team for commercial use cases involving bulk data storage.
Frequently asked questions
Which eBay marketplaces does this Actor support?
All 16: ebay.com, .co.uk, .de, .fr, .it, .es, .ca, .com.au, .at, .ie, .nl, .pl, .ch, .com.hk, .com.my, and .ph, selected via the marketplaceDomain field. Seller profile URLs pasted directly keep their own domain regardless of this setting.
How do I control how many sellers I get back?
maxSellersPerQuery caps unique sellers resolved per search term (default 5), and maxSearchResultPages controls how many pages of search results are scanned per term to find them (default 1). Raise maxSearchResultPages for niche keywords that need a deeper scan to surface enough distinct sellers.
How does this Actor handle eBay's anti-bot measures?
It fetches with Chrome TLS/HTTP impersonation rather than a plain HTTP client, and if a request comes back blocked it escalates through a direct β datacenter proxy β residential proxy fallback ladder with backoff between residential retries, reusing a working exit IP for the rest of the run once one is found.
How many results does this Actor return per query?
Up to maxSellersPerQuery distinct sellers per search term (default 5, no fixed upper bound β you set it), drawn from up to maxSearchResultPages pages of search results (default 1). Both are your own input values, not a platform-imposed cap.
How do I use this Actor to monitor a seller or niche over time?
Keep the same seller list or keyword set in your input, run it on a schedule via Apify's Schedule feature, and diff each new dataset against the last one on url and productUrl β alert on feedback_score changes or new/removed/discounted listings.
Does it work with Claude, ChatGPT, and AI agent frameworks?
Yes. It's callable as a plain HTTP endpoint by any agent framework, and it's also reachable through Apify's Actors MCP Server (npx @apify/actors-mcp-server --tools scrapier/ebay-seller-scraper-by-keyword-and-marketplace-search) for MCP-native clients.
How does this Actor compare to other eBay scrapers?
As observed on their public Apify listings on 2026-07-25, some eBay scrapers cover more marketplaces (one lists 20 locales) and richer seller-profile fields like registration date or store description; others cover fewer (one lists 5). This Actor's distinction is combining keyword-based seller discovery with per-listing commerce detail (condition, image, discount percentage) in the same seller row, across 16 marketplaces, without requiring you to already know a seller's username.
Can I use it without managing proxies or eBay credentials?
Yes. No eBay account or login is used β everything comes from public pages. Proxy handling is automatic and optional: leave proxyConfiguration at its default and the Actor runs direct-first, only reaching for Apify Proxy if a request gets blocked.
Does this Actor require knowing a seller's username in advance?
No β that's what searchQueries is for. Give it a keyword or category term and it resolves real seller usernames from matching listings itself. sellerProfileUrls is there for when you do already know who you want.
Your feedback
Found a bug, a field that doesn't match this README, or a marketplace that needs different handling? Let us know through the Issues tab on this Actor's Apify Console page. Reports like this directly shape what gets fixed next.