Browse a Category
curl --request GET \
--url https://scrapebadger.com/v1/ebay/categories/{category_id}/items \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/ebay/categories/{category_id}/items"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/ebay/categories/{category_id}/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/ebay/categories/{category_id}/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/ebay/categories/{category_id}/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/ebay/categories/{category_id}/items")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/ebay/categories/{category_id}/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"domain": "<string>",
"category_id": "<string>",
"results": [
{
"position": 123,
"item_id": "<string>",
"product_id": "<string>",
"title": "<string>",
"url": "<string>",
"image": "<string>",
"price": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"original_price": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"discount_percent": 123,
"currency": "<string>",
"condition": "<string>",
"brand": "<string>",
"buying_format": "<string>",
"is_auction": true,
"bids": 123,
"time_left": "<string>",
"current_bid": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"shipping": "<string>",
"shipping_cost": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"free_shipping": true,
"location": "<string>",
"returns": "<string>",
"sold_count": 123,
"watchers": 123,
"coupon": "<string>",
"rating": 123,
"ratings_total": 123,
"seller_name": "<string>",
"seller_feedback_percent": 123,
"seller_feedback_score": 123,
"program_badge": "<string>",
"is_sponsored": true
}
],
"facets": {},
"pagination": {
"current_page": 123,
"per_page": 123,
"total_pages": 123,
"total_results": 123,
"has_more": true
},
"scraped_utc": 123,
"scraped_at": "<string>"
}Categories
Browse a Category
List active listings within an eBay category.
GET
/
v1
/
ebay
/
categories
/
{category_id}
/
items
Browse a Category
curl --request GET \
--url https://scrapebadger.com/v1/ebay/categories/{category_id}/items \
--header 'x-api-key: <api-key>'import requests
url = "https://scrapebadger.com/v1/ebay/categories/{category_id}/items"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://scrapebadger.com/v1/ebay/categories/{category_id}/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/ebay/categories/{category_id}/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/ebay/categories/{category_id}/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/ebay/categories/{category_id}/items")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/ebay/categories/{category_id}/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"domain": "<string>",
"category_id": "<string>",
"results": [
{
"position": 123,
"item_id": "<string>",
"product_id": "<string>",
"title": "<string>",
"url": "<string>",
"image": "<string>",
"price": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"original_price": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"discount_percent": 123,
"currency": "<string>",
"condition": "<string>",
"brand": "<string>",
"buying_format": "<string>",
"is_auction": true,
"bids": 123,
"time_left": "<string>",
"current_bid": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"shipping": "<string>",
"shipping_cost": {
"value": 123,
"currency": "<string>",
"symbol": "<string>",
"raw": "<string>"
},
"free_shipping": true,
"location": "<string>",
"returns": "<string>",
"sold_count": 123,
"watchers": 123,
"coupon": "<string>",
"rating": 123,
"ratings_total": 123,
"seller_name": "<string>",
"seller_feedback_percent": 123,
"seller_feedback_score": 123,
"program_badge": "<string>",
"is_sponsored": true
}
],
"facets": {},
"pagination": {
"current_page": 123,
"per_page": 123,
"total_pages": 123,
"total_results": 123,
"has_more": true
},
"scraped_utc": 123,
"scraped_at": "<string>"
}Path Parameters
string
required
The eBay category id to browse. Use
/v1/ebay/categories to look up ids.Query Parameters
string
default:"com"
eBay marketplace domain to browse.Examples:
com, co.uk, de, frinteger
default:1
Page number for paginated results. Range:
1 - 100.integer
Results per page. Clamped to one of
60, 120, or 240.string
default:"best_match"
Sort order for results.
| Value | Description |
|---|---|
best_match | Best match (default) |
ending_soonest | Auctions ending soonest first |
newly_listed | Most recently listed |
price_low_to_high | Cheapest first |
price_high_to_low | Most expensive first |
number
Minimum price filter in the marketplace’s local currency.
number
Maximum price filter in the marketplace’s local currency.
Response
string
Marketplace domain that was browsed.
string
The category id that was browsed.
array
Array of listings in the category (same
SearchResult shape as search).Show SearchResult object
Show SearchResult object
integer
Position on the page (1-based).
string
eBay listing item id.
string
Listing title.
string
Full URL to the listing.
string
Primary image URL.
object
Price object with
value, currency, symbol, raw.string
Item condition label.
string
Buy It Now, Auction, or Best Offer.boolean
Whether the listing is an auction.
integer
Number of bids (auctions only, nullable).
string
Relative time remaining, e.g.
12h 16m (auctions only, nullable).object
Current high bid for auction listings with
value, currency, symbol, raw; mirrors price. Null for non-auction (fixed-price) listings.string
Shipping text.
string
Seller username (nullable).
boolean
Always
null. eBay renders its “Sponsored” badge into every card as anti-scraping bait, so promoted placements cannot be distinguished from organic results.object
Available filter facets keyed by name.
object
Pagination metadata with
current_page, per_page, total_pages, total_results.string
ISO 8601 timestamp when the results were scraped.
Example Response
{
"domain": "com",
"category_id": "139971",
"results": [
{
"position": 1,
"item_id": "256123456789",
"title": "Nintendo Switch OLED Model White Console - Brand New Sealed",
"url": "https://www.ebay.com/itm/256123456789",
"image": "https://i.ebayimg.com/images/g/abc/s-l500.jpg",
"price": { "value": 299.99, "currency": "USD", "symbol": "$", "raw": "$299.99" },
"condition": "Brand New",
"buying_format": "Buy It Now",
"is_auction": false,
"shipping": "Free shipping",
"seller_name": "topgames_us",
"is_sponsored": null
}
],
"facets": { "condition": ["New", "Used"] },
"pagination": { "current_page": 1, "per_page": 60, "total_pages": 100, "total_results": 6000 },
"scraped_at": "2026-06-21T12:00:00Z"
}
Each category-browse request costs 5 credits. Failed requests are not charged.
Authorizations
Path Parameters
The eBay category id.
Query Parameters
eBay marketplace domain TLD or alias (com, co.uk, de, fr, ...).
Page number for paginated results.
Required range:
1 <= x <= 100Results per page. Clamped to 60, 120 or 240.
Required range:
1 <= x <= 240Sort order for results.
Available options:
best_match, ending_soonest, newly_listed, price_low_to_high, price_high_to_low Minimum price filter in the marketplace's local currency.
Required range:
x >= 0Maximum price filter in the marketplace's local currency.
Required range:
x >= 0
