# eBay Product API — $0.003 per product

> eBay Product API: Full detail per eBay item id — price, condition, seller, item. $0.003 per delivered product, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*eBay Product API*

# eBay Product API

An eBay product API for a list of item ids: title, subtitle, price as shown and parsed, currency, condition, seller with positive-feedback percent, availability line, the item-specifics grid and the category breadcrumb, plus up to six photos. Pass numeric item ids or /itm/ URLs and get one row per item.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/ebay-product-api/#integration)

$0.003 per delivered product · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/ebay_product/run

```
$ curl $QD/ebay_product/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"items": ["158070397228"], "max_results": 1}'
{ "status": "done", "count": 1,
  "results": [
    {
      "item_id": "…",
      "url": "…",
      "title": "…",
      "subtitle": "…" } ],
  "cost": 0.003 }
# 1 product × $0.003 · nothing delivered, nothing charged
```

**$0.003 / product**666 products on the free $2 every month

**Semantic input**items, country, max_results — no URL lists

**Up to 20**products per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/ebay-product-api/#what) [Output fields](/collectors/ebay-product-api/#output) [Inputs](/collectors/ebay-product-api/#input) [Pricing](/collectors/ebay-product-api/#pricing) [Integration](/collectors/ebay-product-api/#integration) [Use cases](/collectors/ebay-product-api/#use-cases) [Versus the alternatives](/collectors/ebay-product-api/#compare) [FAQ](/collectors/ebay-product-api/#faq)

## What an eBay product API does

A search card tells you a listing exists; the item page tells you what it is. This collector fetches one eBay view-item page per id and returns the fields a card never carries: the full `specifics` grid (brand, model, size… as label→value pairs), the seller's positive-feedback percent, and the exact condition string as eBay writes it.

Two things are handled that trip a naive fetch. Prices come back both as eBay prints them (`price`, e.g. "US $98.00") and as a parsed `price_value` with a best-effort `currency`, so a comma-grouped or foreign-symbol amount is still a number. And a listing that has ended or been pulled is reported under `failed` rather than billed or turned into a half-empty row.

Input is meaning, not a URL *items* *country* *max_results*

## What one product looks like

Every delivered product carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `item_id` | string | eBay item id. |
| `url` | string | Item URL. |
| `title` | string | Item title. |
| `subtitle` | string · nullable | Subtitle when present. |
| `price` | string · nullable | Price as shown ("US $98.00"). |
| `price_value` | number · nullable | Parsed price. |
| `currency` | string · nullable | Price currency (best-effort). |
| `condition` | string · nullable | Item condition. |
| `seller` | string · nullable | Seller name. |
| `seller_feedback_pct` | number · nullable | Seller positive feedback %. |
| `availability` | string · nullable | Quantity/availability line. |
| `images` | string[] | Item photos (up to 6). |
| `specifics` | object | Item specifics (label → value). |
| `categories` | string[] | Category breadcrumb. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `items` | array | yes | eBay item ids or /itm/ URLs (ebay_search returns both). |
| `country` | string | no | ISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool. |
| `max_results` | integer | no | How many products to deliver at most (1–20). You pay only for delivered products. |

Pricing

## eBay Product API pricing

$0.003 per delivered product. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 666 products before you spend anything.

**$0.003**per delivered product*$2.4 per 1,000 delivered products*

**666 products**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/ebay_product/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/ebay_product/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":["158070397228"],"max_results":1}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/ebay_product/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={
        "items": [
            "158070397228"
        ],
        "max_results": 1
    },
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/ebay_product/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({"items":["158070397228"],"max_results":1}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the ebay_product collector with items=["158070397228"] and max_results=1
```

## What people build with the eBay product API

Three shapes of work this endpoint was designed around.

### Condition-priced comps

Read the same model across several item ids and line up price against the exact condition string and seller feedback.

### Item-specifics enrichment

Pull the brand/model/attribute grid from a listing into your own catalogue without opening the page by hand.

### Listing verification

Resolve item ids from the eBay search collector to confirm they are still live and read their current price.

## eBay Product API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Input | A view-item URL you assemble | A bare item id or any /itm/ URL |
| Ended listings | A blank or stale row | Reported under failed, never billed |
| Item specifics | Ignored or flattened | Returned as label→value pairs |

## FAQ

Questions we get about the eBay product API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### What do I pass — an item id or a URL?

Either. A numeric eBay item id or a full /itm/ URL; the collector reads the id out of the URL. The eBay search collector returns both forms, so its output feeds straight in.

### Does eBay have an official product API?

It has developer APIs that need an account, keys and OAuth. This collector reads the public view-item page instead, so there is no application to register and no token to keep alive — you pass ids and get rows.

### Do I get sold-price history?

No. The page publishes the current listing — price, condition, seller, specifics — not an item's sold archive, so that is where this collector stops rather than guessing a history.

### Is there a free eBay product API?

Every account gets $2 of credit every month with no card, which is about 666 delivered products on this endpoint at $0.003 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.003. A run capped at 20 products — the maximum for this collector — costs $0.06 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the eBay product API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 65 collectors](https://quanticdata.io/collectors/) [eBay scraper API](https://quanticdata.io/collectors/ebay-scraper-api/) [Amazon product API](https://quanticdata.io/collectors/amazon-product-api/) [Flipkart Scraper API](https://quanticdata.io/collectors/flipkart-scraper-api/) [Idealista Scraper API](https://quanticdata.io/collectors/idealista-scraper-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/ebay-product-api/ · Site index for AI: https://quanticdata.io/llms.txt
