🛒 eBay
eBay listings API for public eBay search, prices, and sellers.
- Search and autocomplete
- Product details
- Other offers for the same product
- Similar items
- Seller profiles and their listings
- Category tree
Read-only. Nothing is bid on, watched, or bought.
marketplace picks the eBay site: com (default), co.uk, de, ca, com.au, fr, it, or es. Prices use that site's currency.
Listing cards share one shape:
idurltitleconditionsellerType—businessorprivatewhen the site shows it, otherwisenullpricecurrencyshippingPrice—0when shipping is free,nullwhen it is not shownbuyingFormat—auctionorfixedbidCountendingAt— auctions, ISO 8601 UTCimageseller—usernameandfeedbackPercent
Search
Listing search and autocomplete.
GET /v1/ebay/suggest
requires authentication
Search suggestions for a partial query, as eBay shows them while typing.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/suggest'
params = {
'q': 'iphone',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/suggest';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'q' => 'iphone',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/suggest"
);
const params = {
"q": "iphone",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/suggest?q=iphone" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"q": "iphone",
"marketplace": "com"
},
"body": [
"iphone 17 pro max",
"iphone 16 pro max",
"iphone 15 pro max",
"iphone 14 pro max",
"iphone 13",
"iphone 15",
"iphone 13 pro max",
"iphone 14",
"iphone 13 mini",
"iphone 15 pro"
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/ebay/search
requires authentication
Active listings for a query. body.items holds up to 50 listing cards per page and body.total is the result count
eBay shows (it rounds large counts). A search with no matches returns items: [].
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/search'
params = {
'q': 'iphone',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/search';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'q' => 'iphone',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/search"
);
const params = {
"q": "iphone",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/search?q=iphone" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"q": "iphone",
"page": 1,
"marketplace": "com"
},
"body": {
"total": 160000,
"items": [
{
"id": "127943765980",
"url": "https://www.ebay.com/itm/127943765980",
"title": "Apple iPhone 14 128GB A2649 Unlocked Very Good Condition All Colors",
"condition": "Very Good - Refurbished",
"sellerType": null,
"price": 312.35,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/images/g/a0YAAeSwpfdqPwD-/s-l500.webp",
"seller": {
"username": "verizon",
"feedbackPercent": 99.5
}
},
{
"id": "127948412895",
"url": "https://www.ebay.com/itm/127948412895",
"title": "Apple iPhone 13 256GB Unlocked Good Condition All Colors",
"condition": "Good - Refurbished",
"sellerType": null,
"price": 253.86,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/images/g/WaQAAeSwUu9qQt6c/s-l500.webp",
"seller": {
"username": "verizon",
"feedbackPercent": 99.5
}
},
{
"id": "127912674651",
"url": "https://www.ebay.com/itm/127912674651",
"title": "Apple iPhone 13 Mini A2481 128GB Unlocked Good Condition All Colors",
"condition": "Good - Refurbished",
"sellerType": null,
"price": 221.82,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/images/g/hpcAAeSwpXtqvpvm/s-l140.webp",
"seller": {
"username": "verizon",
"feedbackPercent": 99.5
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Products
One listing, other offers for the same product, similar items, and batches.
GET /v1/ebay/products/details
requires authentication
One listing: the card fields plus images, itemSpecifics (name and value), availableQuantity, returns, location,
seller (username, feedbackScore, feedbackPercent, url), the seller's description text, and categories breadcrumbs.
Pass id or an /itm/ url; a URL sets the marketplace from its host. Ended listings return the standard error.
An identical request within 10 minutes returns the same result.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/products/details'
params = {
'id': '127840758849',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/products/details';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'id' => '127840758849',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/products/details"
);
const params = {
"id": "127840758849",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/products/details?id=127840758849" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"id": "127943765980",
"marketplace": "com"
},
"body": {
"id": "127943765980",
"url": "https://www.ebay.com/itm/127943765980",
"title": "Apple iPhone 14 128GB A2649 Unlocked Very Good Condition All Colors",
"condition": "Very Good - Refurbished",
"price": 312.35,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/dcad7168-690e-4745-a818-b64cb47e8b77.jpg",
"images": [
"https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/dcad7168-690e-4745-a818-b64cb47e8b77.jpg",
"https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/5d7d6c38-ed76-4ea5-beb6-092682905163.jpg",
"https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/9d4c0476-09b4-4dfc-a273-d8e96cb3dd68.jpg"
],
"itemSpecifics": [
{
"name": "Condition",
"value": "Very Good - Refurbished: The item shows minimal wear and is backed by a one year warranty. It is fully functional and has been professionally refurbished, inspected and cleaned to very good condition by qualified sellers. The item includes original or new accessories and will come in new generic packaging. See the seller's listing for full details."
},
{
"name": "Brand",
"value": "Apple"
},
{
"name": "Storage Capacity",
"value": "128GB"
},
{
"name": "Model",
"value": "iPhone 14"
},
{
"name": "SIM Card Slot",
"value": "Dual eSIM"
},
{
"name": "RAM",
"value": "6GB"
},
{
"name": "Style",
"value": "Smartphone"
},
{
"name": "Model Number",
"value": "A2649"
},
{
"name": "Lock Status",
"value": "Unlocked"
},
{
"name": "Screen Size",
"value": "6.1 inches"
},
{
"name": "Processor",
"value": "Apple A15 Bionic"
},
{
"name": "Operating System",
"value": "IOS"
},
{
"name": "Country of Origin",
"value": "China"
}
],
"availableQuantity": 2,
"availability": "2 available",
"returns": "30 days returns. Seller pays for return shipping",
"location": "Fort Worth, Texas, United States",
"seller": {
"username": "verizon",
"feedbackScore": 35194,
"feedbackPercent": 99.5,
"url": "https://www.ebay.com/usr/verizon"
},
"description": "OFFICIAL VERIZON EBAY STORE\nSHOP SALE\nABOUT US\nCOMPATIBILITY\nUnlocked | 5G Ready\nSHIPPING\nFree 2-3 Day Delivery\nRETURNS\n30-Day Free Returns\nApple iPhone 14 128GB A2649 Unlocked Very Good Condition All Colors\n\nThe Apple iPhone 14 is powered by the A15 Bionic chip in its five-core GPU configuration on a 5-nanometer fabrication node, delivering a six-core CPU and 16-core Neural Engine for consistent …",
"categories": [
{
"id": "bn_7000259124",
"name": "Electronics",
"url": "https://www.ebay.com/b/Electronics/bn_7000259124"
},
{
"id": "15032",
"name": "Cell Phones & Accessories",
"url": "https://www.ebay.com/b/Cell-Phones-Smart-Watches-Accessories/15032/bn_1865441"
},
{
"id": "9355",
"name": "Cell Phones & Smartphones",
"url": "https://www.ebay.com/b/Cell-Phones-Smartphones/9355/bn_320094"
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/ebay/products/offers
requires authentication
Other active Buy It Now listings of the same catalog product, with price, shipping, and title, 50 per page. eBay's
product page lists about 60 offers in all and does not show the condition or seller of each, so those fields are null.
A listing that is not linked to a catalog product returns items: [] with meta.epid null.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/products/offers'
params = {
'id': '298457719615',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/products/offers';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'id' => '298457719615',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/products/offers"
);
const params = {
"id": "298457719615",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/products/offers?id=298457719615" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"id": "127943765980",
"epid": "8056260057",
"page": 1,
"marketplace": "com"
},
"body": {
"items": [
{
"id": "376972331810",
"url": "https://www.ebay.com/itm/376972331810",
"title": "Apple iPhone 14 - 128 GB - (PRODUCT)RED (Unlocked)",
"condition": null,
"sellerType": null,
"price": 280,
"currency": "USD",
"shippingPrice": null,
"buyingFormat": null,
"bidCount": null,
"endingAt": null,
"image": null,
"seller": {
"username": null,
"feedbackPercent": null
}
},
{
"id": "304820253220",
"url": "https://www.ebay.com/itm/304820253220",
"title": "Apple iPhone 14 128GB Factory Unlocked AT&T T-Mobile Verizon Good Condition",
"condition": null,
"sellerType": null,
"price": 280.95,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": null,
"bidCount": null,
"endingAt": null,
"image": null,
"seller": {
"username": null,
"feedbackPercent": null
}
},
{
"id": "326361820287",
"url": "https://www.ebay.com/itm/326361820287",
"title": "Apple iPhone 14 128GB - Fully Unlocked - GOOD Condition",
"condition": null,
"sellerType": null,
"price": 285.99,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": null,
"bidCount": null,
"endingAt": null,
"image": null,
"seller": {
"username": null,
"feedbackPercent": null
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/ebay/products/similar
requires authentication
Listings eBay recommends next to this one. The recommendation feed carries no seller name, so seller fields are null.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/products/similar'
params = {
'id': '127840758849',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/products/similar';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'id' => '127840758849',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/products/similar"
);
const params = {
"id": "127840758849",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/products/similar?id=127840758849" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"id": "127943765980",
"marketplace": "com"
},
"body": {
"items": [
{
"id": "800634469572",
"url": "https://www.ebay.com/itm/800634469572",
"title": "Apple iPhone 14 – Very Good Condition (512GB 128GB) Starlight Red Purple",
"condition": "Pre-owned",
"sellerType": null,
"price": 279,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/thumbs/images/g/csIAAeSww05qoPvX/s-l500.jpg",
"seller": {
"username": null,
"feedbackPercent": null
}
},
{
"id": "327010655632",
"url": "https://www.ebay.com/itm/327010655632",
"title": "Apple iPhone 14 (Unlocked) 128GB - A2649 All Colors ~ Used Very Good Condition!",
"condition": "Pre-owned",
"sellerType": null,
"price": 299.99,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/thumbs/images/g/BpEAAOSwNRhmjvLS/s-l500.jpg",
"seller": {
"username": null,
"feedbackPercent": null
}
},
{
"id": "276217865650",
"url": "https://www.ebay.com/itm/276217865650",
"title": "Apple iPhone 14 128GB Unlocked Very Good Condition - All Colors",
"condition": "Very Good - Refurbished",
"sellerType": null,
"price": 289,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/thumbs/images/g/YuMAAOSw6EFlczuF/s-l500.jpg",
"seller": {
"username": null,
"feedbackPercent": null
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/ebay/products/batch
requires authentication
Details for up to 5 item numbers, in the order given. Each entry has the /products/details shape; an item that
could not be read is {"id": "…", "error": "No data returned"}. Each item is a separate page load; after about 45 seconds
the remaining ids come back as {"id": "…", "error": "Not fetched within the time limit; retry this id"}.
Items fetched in the last 10 minutes are served from cache and always included.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/products/batch'
params = {
'ids': '127840758849,298457719615',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/products/batch';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'ids' => '127840758849,298457719615',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/products/batch"
);
const params = {
"ids": "127840758849,298457719615",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/products/batch?ids=127840758849%2C298457719615" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"ids": "127943765980,127948412895",
"marketplace": "com"
},
"body": [
{
"id": "127943765980",
"url": "https://www.ebay.com/itm/127943765980",
"title": "Apple iPhone 14 128GB A2649 Unlocked Very Good Condition All Colors",
"condition": "Very Good - Refurbished",
"price": 312.35,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/dcad7168-690e-4745-a818-b64cb47e8b77.jpg",
"images": [
"https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/dcad7168-690e-4745-a818-b64cb47e8b77.jpg",
"https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/5d7d6c38-ed76-4ea5-beb6-092682905163.jpg"
],
"itemSpecifics": [
{
"name": "Condition",
"value": "Very Good - Refurbished: The item shows minimal wear and is backed by a one year warranty. It is fully functional and has been professionally refurbished, inspected and cleaned to very good condition by qualified sellers. The item includes original or new accessories and will come in new generic packaging. See the seller's listing for full details."
},
{
"name": "Brand",
"value": "Apple"
},
{
"name": "Storage Capacity",
"value": "128GB"
}
],
"availableQuantity": 2,
"availability": "2 available",
"returns": "30 days returns. Seller pays for return shipping",
"location": "Fort Worth, Texas, United States",
"seller": {
"username": "verizon",
"feedbackScore": 35194,
"feedbackPercent": 99.5,
"url": "https://www.ebay.com/usr/verizon"
},
"description": "OFFICIAL VERIZON EBAY STORE\nSHOP SALE\nABOUT US\nCOMPATIBILITY\nUnlocked | 5G Ready\nSHIPPING\nFree 2-3 Day Delivery\nRETURNS\n30-Day Free Returns\nApple iPhone 14 128GB A2649 Unlocked Very Good Condition …",
"categories": [
{
"id": "bn_7000259124",
"name": "Electronics",
"url": "https://www.ebay.com/b/Electronics/bn_7000259124"
},
{
"id": "15032",
"name": "Cell Phones & Accessories",
"url": "https://www.ebay.com/b/Cell-Phones-Smart-Watches-Accessories/15032/bn_1865441"
},
{
"id": "9355",
"name": "Cell Phones & Smartphones",
"url": "https://www.ebay.com/b/Cell-Phones-Smartphones/9355/bn_320094"
}
]
},
{
"id": "127948412895",
"url": "https://www.ebay.com/itm/127948412895",
"title": "Apple iPhone 13 256GB Unlocked Good Condition All Colors",
"condition": "Good - Refurbished",
"price": 253.86,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/images/g/WaQAAeSwUu9qQt6c/s-l1600.jpg",
"images": [
"https://i.ebayimg.com/images/g/WaQAAeSwUu9qQt6c/s-l1600.jpg",
"https://s3-eu-west-1.amazonaws.com/images.linnlive.com/c4aa895ca1f64564a88ced7550deabdb/14be1a11-d3ba-4e2e-be30-dc8a5dffd203.jpg"
],
"itemSpecifics": [
{
"name": "Condition",
"value": "Good - Refurbished: The item shows moderate wear and is backed by a one year warranty. It is fully functional and has been professionally refurbished, inspected and cleaned to good condition by qualified sellers. The item includes original or new accessories and will come in a new generic packaging. See the seller's listing for full details."
},
{
"name": "Brand",
"value": "Apple"
},
{
"name": "Storage Capacity",
"value": "256GB"
}
],
"availableQuantity": null,
"availability": "More than 10 available",
"returns": "30 days returns. Seller pays for return shipping",
"location": "Fort Worth, Texas, United States",
"seller": {
"username": "verizon",
"feedbackScore": 35194,
"feedbackPercent": 99.5,
"url": "https://www.ebay.com/usr/verizon"
},
"description": "eBay \n\n OFFICIAL VERIZON EBAY STORE\n\n Shop Sale \n\n About Us \n\n Compatibility \n Unlocked | 5G Ready \n\n Shipping \n Free 2-3 Day Delivery \n\n Returns \n 30-Day Free Returns \n\n Apple iPhone 13 256GB …",
"categories": [
{
"id": "bn_7000259124",
"name": "Electronics",
"url": "https://www.ebay.com/b/Electronics/bn_7000259124"
},
{
"id": "15032",
"name": "Cell Phones & Accessories",
"url": "https://www.ebay.com/b/Cell-Phones-Smart-Watches-Accessories/15032/bn_1865441"
},
{
"id": "9355",
"name": "Cell Phones & Smartphones",
"url": "https://www.ebay.com/b/Cell-Phones-Smartphones/9355/bn_320094"
}
]
}
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Sellers
Seller profiles and their active listings.
GET /v1/ebay/seller
requires authentication
A seller's public profile: username, storeName, feedbackPercent, itemsSold, followers, memberSince,
location, and topRated. eBay store pages do not print the lifetime feedback score, so feedbackScore is null
for store sellers; /products/details returns it for the seller of a listing.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/seller'
params = {
'username': 'verizon',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/seller';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'username' => 'verizon',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/seller"
);
const params = {
"username": "verizon",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/seller?username=verizon" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"username": "verizon",
"marketplace": "com"
},
"body": {
"username": "verizon",
"storeName": "Verizon",
"feedbackScore": null,
"feedbackPercent": 99.5,
"itemsSold": 211000,
"followers": 18000,
"memberSince": "Jul 13, 2017",
"location": "United States",
"topRated": false,
"url": "https://www.ebay.com/usr/verizon"
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/ebay/seller/products
requires authentication
A seller's active listings as listing cards, up to 50 per page, with total when eBay shows it.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/seller/products'
params = {
'username': 'verizon',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/seller/products';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'username' => 'verizon',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/seller/products"
);
const params = {
"username": "verizon",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/seller/products?username=verizon" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"username": "verizon",
"page": 1,
"marketplace": "com"
},
"body": {
"total": 634,
"items": [
{
"id": "128098963678",
"url": "https://www.ebay.com/itm/128098963678",
"title": "Apple AirPods Pro 3 with MagSafe Charging Case USB-C | MFHP4LL/A - Good",
"condition": "Good - Refurbished",
"sellerType": null,
"price": 157.06,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/images/g/FsEAAeSwhcFqtv~J/s-l500.webp",
"seller": {
"username": "verizon",
"feedbackPercent": 99.5
}
},
{
"id": "128098880819",
"url": "https://www.ebay.com/itm/128098880819",
"title": "Apple AirPods Pro 2nd Gen Earbuds w/ MagSafe Case MTJV3LL/A | White Open Box",
"condition": "Open Box",
"sellerType": null,
"price": 120.99,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/images/g/fSIAAeSw6dRqtu7x/s-l500.webp",
"seller": {
"username": "verizon",
"feedbackPercent": 99.5
}
},
{
"id": "128098878879",
"url": "https://www.ebay.com/itm/128098878879",
"title": "Google Pixel Buds Pro 2 True Wireless Earbuds GA05762 | Hazel Open Box",
"condition": "Open Box",
"sellerType": null,
"price": 148.17,
"currency": "USD",
"shippingPrice": 0,
"buyingFormat": "fixed",
"bidCount": null,
"endingAt": null,
"image": "https://i.ebayimg.com/images/g/xNkAAeSwxmBqtu6K/s-l140.webp",
"seller": {
"username": "verizon",
"feedbackPercent": 99.5
}
}
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Categories
The category tree and URL lookup.
GET /v1/ebay/categories
requires authentication
Without categoryId: the category tree from eBay's All Categories page, three levels deep, each entry with id, name,
url, and parentId (null at the top). With categoryId: that category first, then its direct subcategories.
Some curated top-level categories have an id such as bn_7000259124 instead of a number.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/categories'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/categories';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/categories"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/categories" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"marketplace": "com"
},
"body": [
{
"id": "6000",
"name": "eBay Motors",
"url": "https://www.ebay.com/b/Auto-Parts-and-Vehicles/6000/bn_1865334",
"parentId": null
},
{
"id": "6028",
"name": "Parts & Accessories",
"url": "https://www.ebay.com/b/Auto-Parts-Accessories/6028/bn_569479",
"parentId": "6000"
},
{
"id": "6030",
"name": "Car & Truck Parts & Accessories",
"url": "https://www.ebay.com/b/Car-Truck-Parts-Accessories/6030/bn_562630",
"parentId": "6028"
},
{
"id": "10063",
"name": "Motorcycle & Scooter Parts & Accessories",
"url": "https://www.ebay.com/b/Motorcycle-Scooter-Parts-Accessories/10063/bn_557636",
"parentId": "6028"
},
{
"id": "107057",
"name": "Performance & Racing Parts",
"url": "https://www.ebay.com/b/Performance-Racing-Parts/107057/bn_568110",
"parentId": "6028"
},
{
"id": "38635",
"name": "In-Car Technology, GPS & Security Devices",
"url": "https://www.ebay.com/b/In-Car-Technology-GPS-Security-Devices/38635/bn_562662",
"parentId": "6028"
}
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/ebay/resolve
requires authentication
What an eBay link points to: type (item, seller, or category), id, marketplace, and a canonical url.
Read from the link itself; no eBay page is loaded.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/ebay/resolve'
params = {
'url': 'https://www.ebay.com/itm/127840758849',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/ebay/resolve';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'url' => 'https://www.ebay.com/itm/127840758849',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/ebay/resolve"
);
const params = {
"url": "https://www.ebay.com/itm/127840758849",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/ebay/resolve?url=https%3A%2F%2Fwww.ebay.com%2Fitm%2F127840758849" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"url": "https://www.ebay.com/itm/127943765980",
"marketplace": "com"
},
"body": {
"type": "item",
"id": "127943765980",
"marketplace": "com",
"url": "https://www.ebay.com/itm/127943765980"
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.