eBay Seller & Store Scraper API
Our eBay seller scraper turns any store or feedback URL into structured JSON: username, store name, feedback score, positive percentage, items sold, followers, detailed seller ratings, and positive, neutral, and negative counts, from one request.
Why it is hard
A seller's identity, store stats, and detailed feedback are split across three different eBay tabs (storefront, feedback, and about), so one fetch never gets the whole profile. All three are bot-gated and served from residential-only surfaces, so a raw request from a datacenter IP returns a challenge rather than the store.
Quickstart
curl "https://api.ebayscraperapi.com/api/v1/ebay/seller?url=https://www.ebay.com/str/huiontablet&api_key=$API_KEY" import requests
BASE = "https://api.ebayscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass a store URL (/str/<store>) or a username.
data = requests.get(
f"{BASE}/api/v1/ebay/seller",
params={
"url": "https://www.ebay.com/str/huiontablet",
"api_key": API_KEY,
},
timeout=30,
).json()
print(data["username"], "-", data["positive_feedback_percent"], "% positive")
print("items sold:", data["items_sold"], "| followers:", data["followers"])
r = data["ratings"]
print("as described:", r["item_as_described"], "| shipping:", r["shipping_speed"]) Params
| Parameter | Required | Default | Notes |
|---|---|---|---|
url | required | - | An eBay store URL (…/str/ |
username | optional | - | The seller username as an alias for url. We build the canonical /str/ |
domain | optional | com | eBay marketplace TLD used when building the URL from a username, e.g. com, co.uk, de. |
country | optional | - | Optional two-letter country code for the proxy egress region. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
Response
{
"username": "huiontablet",
"store_name": "huiontablet Direct from Brand",
"feedback_score": 9346,
"positive_feedback_percent": 99.3,
"member_since": null,
"location": "United States",
"top_rated_seller": null,
"categories": [],
"active_items_count": null,
"items_sold": 53000,
"followers": 3200,
"ratings": {
"item_as_described": 4.9,
"communication": 5,
"shipping_speed": 5,
"shipping_charges": 5
},
"feedback_ratings": {
"positive": 1198,
"neutral": 4,
"negative": 10
},
"url": "https://www.ebay.com/str/huiontablet"
} | Field | Type | Description |
|---|---|---|
username | string | The seller's eBay username, from the store signature or the requested URL. |
store_name | string | The storefront display name, e.g. huiontablet Direct from Brand. |
feedback_score | integer | The seller's lifetime feedback score (total feedback count). |
positive_feedback_percent | number | Percentage of positive feedback, e.g. 99.3. |
member_since | string | Join date from the store's about tab, e.g. Oct 04, 2011. Null when the about tab did not surface it in the capture. |
location | string | Seller location, e.g. United States, read from the store or item cards. |
top_rated_seller | boolean | True when the Top Rated Seller badge is present, else null when no badge is shown. |
categories | array | Store category names from the left-nav when server-rendered. Empty when the store renders them client side. |
Use it for
Vet a seller before buying
Competitor store benchmarking
Supplier and dropshipping due diligence
Lead lists of active sellers
How it compares
| Our API | DIY (requests / headless) | eBay official APIs | |
|---|---|---|---|
| Whole profile in one call | Yes, three tabs merged | Fetch and parse each tab yourself | No public seller-profile endpoint |
| Detailed seller ratings | Parsed into a ratings object | You parse the feedback tab | Not exposed to third parties |
| Setup | API key only | Residential proxies, headless, parsers | Developer account and OAuth, where offered |
| Store stats (sold, followers) | Parsed into integers | You extract and normalise them | Not available |
| Anti-bot and proxies | Residential, built in | You build and maintain it | Not applicable |
| Rate limits | By plan | Bound by your proxy pool | Per-app quotas, where an API exists |
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
What is an eBay seller scraper?
An eBay seller scraper is a tool that reads a seller's public store and feedback pages and returns the data in a structured format. Our eBay seller scraper API takes a store URL or username and returns username, store_name, feedback_score, positive_feedback_percent, member_since, location, items_sold, followers, detailed ratings, and positive, neutral, and negative feedback counts as JSON from a single request.
How do I scrape an eBay store without writing a parser?
Send one GET request to our ebay/seller endpoint with the store url and your API key. We fetch the storefront, feedback, and about tabs over residential proxies, handle eBay's anti-bot checks, retry on failure, and merge the fields into one JSON profile, so you skip parsing three separate pages and stitching them together yourself.
Can I pass a store URL, a feedback URL, or just a username?
All three work. Pass a storefront URL like /str/huiontablet, a feedback-profile URL like /usr/
How does one call return data from three tabs?
The endpoint runs a multi-hop scrape: it fetches the storefront landing (identity, store stats, location), the feedback tab (detailed ratings and positive, neutral, negative counts), and the about tab (member since and location), then merges them into one profile. That is why a single call returns detailed ratings that only live on the feedback tab alongside the header stats from the landing page.
Why are some fields null or empty in the response?
We return every field the pages actually expose and use null or an empty array for the rest rather than inventing values. In the sample above, member_since and top_rated_seller are null and categories is empty because that store did not surface them in the capture, while feedback score, positive percentage, items sold, followers, and detailed ratings all came back populated. Sparse stores simply return fewer non-null fields.
Can I get a seller's full listings from this endpoint?
No. This endpoint returns the seller and store profile: identity, feedback, ratings, and store stats. To pull the seller's actual listings, run the ebay/search endpoint against the store or a keyword, then call ebay/product on each listing url for full item detail. The three endpoints compose into a complete view of a seller and their inventory.