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 eBay Seller & Store data is hard to pull
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.
Your first eBay Seller & Store Scraper API call
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"]) Parameters
| 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. |
The JSON the eBay Seller & Store Scraper API returns
{
"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. |
active_items_count | integer | Count of live listings when the store surfaces it, else null. |
items_sold | integer | Lifetime items sold, parsed from compact labels like 53K into an integer. |
followers | integer | Store follower count, parsed from compact labels like 3.2K into an integer. |
ratings | object | Detailed seller ratings from the feedback tab: item_as_described, communication, shipping_speed, shipping_charges, each 0 to 5. |
feedback_ratings | object | Overall feedback counts from the feedback tab: { positive, neutral, negative }. |
url | string | Canonical storefront URL for the seller. |
What sellers and buyers build with eBay data
Vet a seller before buying
Competitor store benchmarking
Supplier and dropshipping due diligence
Lead lists of active sellers
Marketplace health dashboards
Fraud and risk signals
Why run on our eBay Seller & Store Scraper API
Pass a store URL or a username and one call fetches the storefront, feedback, and about tabs and merges them into a single profile, so you get identity, store stats, and detailed ratings together. Every request runs through residential proxies, anti-bot handling, and retries, returning validated JSON in about 2.6 seconds with no OAuth app to register.
URL or username input
Three tabs merged in one call
Residential proxies and anti-bot
Compact counts parsed
Detailed seller ratings
Graceful on sparse stores
eBay Seller & Store Scraper API versus the eBay Browse API
| 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 |
Start free, scale by usage
| 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
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.
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.
All three work. Pass a storefront URL like /str/huiontablet, a feedback-profile URL like /usr/
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.
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.
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.
Median end-to-end response is about 2.6 seconds. Because the endpoint fetches and merges up to three store tabs, it stops early once it has identity, ratings, and member_since, so it returns a full profile without always paying for every hop.