eBay Search
Search eBay to retrieve listing results with pricing, condition, seller, and shipping data in JSON format.
Endpoint
GET /v1/ebay/search/{query}
Description
The eBay Search endpoint allows you to search eBay listings and retrieve structured result data. The query parameter should be a URL-encoded query string.
Authentication
All requests require authentication using the X-Api-Key header. See the Authentication guide for more details.
Path Parameters
query (required)
Type: string
A URL-encoded query string for the eBay search.
Examples:
q=vinyl+recordsq=iphone+15+case
Request Headers
X-Proxy-Location (optional)
Type: string
Specify the proxy location for the search. Supported countries: EU, CA, US, IE, GB, FR, DE, SE, IN, JP, KR, SG, AU, BR.
X-User-Agent (optional)
Type: string
Optional header to specify device type desktop or mobile. Defaults to desktop.
Allowed values: desktop, mobile
Example Requests
cURL
curl --request GET \
--url 'https://api.serply.io/v1/ebay/search/q=vinyl+records' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: YOUR_API_KEY'
JavaScript
const response = await fetch('https://api.serply.io/v1/ebay/search/q=vinyl+records', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'X-Api-Key': 'YOUR_API_KEY'
}
});
const data = await response.json();
console.log(data);
Python
import requests
url = "https://api.serply.io/v1/ebay/search/q=vinyl+records"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
Response
The response is a JSON object containing organic listing results from eBay.
Response Structure
{
"results": [
{
"title": "string",
"link": "string",
"position": "number",
"result_type": "string",
"metadata": {
"price": "string",
"was_price": "string",
"condition": "string",
"image": "string",
"seller": "string",
"seller_feedback": "string",
"attributes": ["string"]
}
}
],
"total": "number",
"query": "string",
"ts": "number",
"device_region": "string",
"device_type": "null"
}
Response Fields
results (array)
An array of listing objects, each containing:
title(string): Listing titlelink(string): URL to the listing on eBayposition(number): Position of the listing in search resultsresult_type(string): Result classification, e.g.organicmetadata(object): Additional listing detailsprice(string): Current listing price, as displayedwas_price(string, optional): Pre-discount price, present only when the listing shows a markdowncondition(string): Item condition, e.g.Pre-Owned,Newimage(string): URL to the listing's thumbnail imageseller(string): Seller usernameseller_feedback(string): Seller feedback score and percentage, as displayedattributes(array of strings): Additional listing details such as shipping cost, delivery estimate, item location, oror Best Offer
total (number)
Reported total match count. This field is not yet reliable and currently returns 0 regardless of the actual number of matching listings — use the length of results for a real count.
query (string)
The search query that was run.
ts (number)
Time in seconds the request took to complete.
device_region (string)
Proxy region used for the request, if specified via X-Proxy-Location.
device_type (null)
Device type used for the search.
Example Response
{
"results": [
{
"title": "Prince - Welcome 2 America 12” Vinyl Album 2x Records With One Etched Side",
"link": "https://www.ebay.com/itm/267755938013?epid=...",
"position": 1,
"result_type": "organic",
"metadata": {
"price": "$27.06",
"was_price": "$27.00",
"condition": "Pre-Owned",
"image": "https://i.ebayimg.com/images/g/.../s-l500.webp",
"seller": "dshvinyl",
"seller_feedback": "100% positive (1.2K)",
"attributes": [
"or Best Offer",
"+$4.94 delivery in 2-3 days",
"Located in United Kingdom"
]
}
}
],
"total": 0,
"query": "vinyl records",
"ts": 2.53,
"device_region": "",
"device_type": null
}
Status Codes
- 200 OK: Successful request
- 201 Created: Request processed successfully
- 404 Not Found: Resource not found
- 422 Unprocessable Entity: Validation error
- 429 Too Many Requests: Rate limit exceeded
Error Handling
If an error occurs, the API will return an appropriate HTTP status code with an error message in the response body.