---
title: "eBay"
description: "eBay search, category browse, visual search and product through the normalized schema — accepted parameters, condition filters, and which fields actually arrive."
---

Five operations, US marketplace, USD.

| | endpoint | price |
|---|---|---|
| [search](/docs/api-reference/ebay/search) | `GET\|POST /v1/ebay/search` | $0.001 |
| [browse](/docs/api-reference/ebay/browse) | `GET\|POST /v1/ebay/browse` | $0.001 |
| [categories](/docs/api-reference/ebay/categories) | `GET\|POST /v1/ebay/categories` | $0.001, +$0.001 below level 3 |
| [image-search](/docs/api-reference/ebay/image-search) | `POST /v1/ebay/image-search` | $0.002 |
| [product](/docs/api-reference/ebay/product) | `GET\|POST /v1/ebay/product` | $0.001 |

No `reviews`: eBay's feedback belongs to the **seller**, not the listing. Serving it under `reviews`
would answer "how good is this merchant" to a caller asking "how good is this product".

eBay accepts the widest filter set of any marketplace here, because its narrowing parameters take values
you already know rather than ids scoped to a query.

## What actually arrives

**search items**

| Field | Fill |
|---|---|
| `title` `url` | 100% |
| `price` `imageUrl` `delivery` | ~95% |
| `delivery.estimate` `badges` | ~90% |
| `condition` | ~85% |

**product**

| Field | Fill |
|---|---|
| `title` | 100% |
| `price` `seller.name` `delivery` | ~95% |
| `attributes` `delivery.estimate` `returnsPolicy` `badges` | ~90% |
| `condition` `media.images` | ~65% |
| `brand` | **~50%** |

`brand` is the one to plan around: eBay listings are seller-written, and half of them never state a
brand field even when the title names one. If you need brand coverage, Walmart and Shopify are far
denser.

`condition` is the opposite — eBay is the only marketplace here that reliably says what condition a
listing is in, because most of its inventory is not new.

## Filters, and the one thing eBay does not do

`facets=Type:Complete Set` narrows by any eBay aspect, and costs nothing extra.

What eBay does **not** return is a facet rail listing what is available: eBay responses carry no
`facets` rail, but `facets=Name:Value` still applies.

Take aspect names and values from eBay's own search UI, or from the `attributes` on items a previous
search returned.

## Things specific to eBay

**Shipping cost is a number, not prose.** `delivery.cost` carries the figure where eBay states one, so a
$48 item with $19.95 shipping can be compared against a $55 item that ships free.

**Auctions and fixed-price listings are both here.** `sort=ending_soonest` orders by auction close.
An auction's price can change quickly, so pass `fresh=1` if you are tracking one
near close.

**Categories may arrive as an id with no name.** eBay often states the leaf category as a number
only. The schema allows a category step with an `id`, a `name`, or both, rather than
inventing a name that would be a lie.
