# 🛍️ eBay Product Details Scraper (`scrapio/ebay-product-details-scraper`) Actor

🛍️ eBay Product Details — scrape rich listing data in one click: titles, prices, images, item specifics, variations, specs, seller & shipping info, condition, stock, and ratings. 🚀 Ideal for market research, price tracking, product feeds, and SEO.

- **URL**: https://apify.com/scrapio/ebay-product-details-scraper.md
- **Developed by:** [Scrapio](https://apify.com/scrapio) (community)
- **Categories:** E-commerce, Automation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## eBay Product Details Scraper — Apify Actor for Listing Data & Structured Exports

**eBay Product Details Scraper** is an [Apify](https://apify.com) Actor that turns **public eBay listing URLs** into **structured JSON** you can export, analyze, or connect to other tools. Whether you need **eBay product details** for price research, catalog building, competitor monitoring, or inventory snapshots, this scraper collects **titles, prices, images, seller information, shipping hints, return policy text, full descriptions, and item specifics** from each item page—without manual copy-paste.

Use it when you want a dependable **eBay listing scraper** that runs in the cloud, supports **bulk URLs**, and writes results straight to an Apify **dataset** for download as JSON, CSV, or Excel via the [Apify Console](https://console.apify.com).

---

### What this eBay scraper extracts

Every successful run can populate fields such as:

- **Seller** — seller name, feedback summary, and sales volume signals where visible  
- **Product** — title, condition, price string, and high-resolution **product images** from the gallery  
- **Listing metadata** — item number, canonical detail URL, shipping / delivery snippets, return policy text  
- **Description** — main listing description (including content loaded from description frames when available)  
- **Item specifics** — structured key/value pairs (brand, model, dimensions, and other category-specific attributes)

Failed rows still appear in the dataset with an error hint so you can audit what did not resolve.

---

### Why use an Apify Actor for eBay product data?

Running an **eBay data extraction** job on Apify means you do not have to host servers, rotate infrastructure, or script scheduling yourself. You configure input, start a run, and download results from the **OUTPUT** tab. Teams that need **repeatable eBay scraping** for many listings benefit from:

- **Scalable runs** — process one URL or thousands in a single task (subject to your plan and fair use)  
- **Integrated storage** — datasets are first-class; export or pipe into [integrations](https://apify.com/integrations)  
- **Transparent logs** — see progress and issues while the Actor runs  

This Actor is built for **public listing pages** only. It does not log into accounts or access private data.

---

### Key features

| Feature | Benefit |
|--------|---------|
| **Bulk eBay URLs** | Paste a list of item links and scrape them in one run |
| **Structured output** | Consistent fields for analytics, databases, and reporting |
| **Optional Apify Proxy** | Tune proxy settings when you need more stable access from the cloud |
| **Clear run metadata** | Each record can include success flags, source URL, scrape timestamp, and mode hints |

---

### Who is this for?

- **E-commerce analysts** tracking prices and seller signals across categories  
- **Market researchers** sampling listings for trends and assortment studies  
- **Developers** who need **JSON**-ready **eBay listing data** for internal apps or ETL pipelines  
- **Small businesses** building lightweight catalogs from publicly listed items  

If your workflow depends on **accurate eBay product details** at scale, automating collection beats manual exports.

---

### Input: how to configure the Actor

The Actor accepts a JSON input object (configured in the Apify Console or via the API).

| Field | Type | Description |
|--------|------|-------------|
| `urls` | array | **Required.** eBay item URLs (strings), or objects with a `url` property when using list-style editors |
| `proxyConfiguration` | object | **Optional.** Apify Proxy settings; disable if your environment should not use proxy traffic |

**Example input:**

```json
{
  "urls": [
    "https://www.ebay.com/itm/396090328598"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

Set `"useApifyProxy": false` only when you intend **direct HTTP requests** without Apify Proxy (for example, restricted environments or specific compliance needs).

***

### Output: dataset fields you can rely on

Each pushed item aligns with the extraction schema and includes core listing fields (seller, title, images, price, condition, shipping-related strings, delivery snippets, return policy text, description, item specifics map, detail URL).

Additionally, each row includes:

- **`source_url`** — the input URL that produced the row
- **`success`** — whether the listing parsed as expected
- **`proxyMode`** — how the page was fetched (`direct`, `datacenter`, or `residential`) when Apify Proxy escalation is enabled
- **`scrapedAt`** — ISO timestamp for when the row was written

**Proxy behavior (when Apify Proxy is enabled):** the first attempt is always a **direct** request to eBay. If that fails, the Actor tries **datacenter** proxy, then **residential** with up to three attempts. After the first successful **residential** fetch, later listings use **residential only** for the rest of the run. These steps are also printed in the run log.

Rows are **written as each listing finishes**, so the **OUTPUT** dataset updates in near real time during the run. Download from the **OUTPUT** tab or use the [Apify API](https://docs.apify.com/api/v2) for automation.

***

### How to run this eBay listing scraper

#### On Apify (recommended)

1. Open [Apify Console](https://console.apify.com) and find **eBay Product Details Scraper** (or your fork of this Actor).
2. Paste your **`urls`** and adjust **proxy** options if needed.
3. Click **Start** and monitor **Logs** and **OUTPUT**.
4. Export the dataset when the run finishes.

#### Locally with the Apify CLI

For developers who want to test before deployment:

```bash
cd eBay-Product-Details-Scraper
pip install -r requirements.txt
apify run
```

Provide input according to the [Apify CLI](https://docs.apify.com/cli) documentation for local runs (default key-value store input). On the hosted platform, input is managed through the Console or API—no committed `INPUT.json` file is required in the repository.

***

### Frequently asked questions

**Is this an official eBay product?**\
No. This is an independent Apify Actor. eBay is a trademark of its respective owners.

**Does it scrape search results or whole stores?**\
This Actor is designed around **individual listing URLs**. Feed it item links you already collected from search or navigation.

**Can I use the data commercially?**\
You may only use data in line with **eBay’s terms**, applicable laws, and your own compliance obligations. This README does not provide legal advice.

**What if a URL fails?**\
Check logs for that run. The dataset may include error information for failed rows so you can retry or validate URLs.

***

### SEO keywords (plain English)

This page describes an **eBay scraper**, **eBay product details extractor**, **eBay listing data** tool, **structured eBay JSON**, **bulk eBay URL** processing, and **Apify Actor** deployment for **e-commerce data collection**. Searchers looking for **how to scrape eBay product information**, **export eBay listing details**, or **automate eBay price monitoring** should find this Actor matches those intents when paired with legitimate, public listings.

***

### Legal and compliance

Data is collected only from **publicly visible** eBay listing pages. You are responsible for complying with **eBay’s terms of use**, robots and rate expectations where they apply, and all **privacy and data protection** laws in your jurisdiction. Do not use this tool to spam, harass, or circumvent technical protections. The authors and operators disclaim liability for misuse; use at your own risk.

***

### Support and next steps

Ready to turn **eBay listing URLs** into **structured datasets**? Configure **`urls`**, run the Actor on [Apify](https://apify.com), and export your **eBay product details** in minutes. For automation, connect the dataset to your stack via webhooks or the Apify API and keep your **eBay market research** pipeline up to date.

# Actor input Schema

## `urls` (type: `array`):

📋 Add one link or many — each should be a standard eBay item page (copy from the address bar). ✨ Bulk-friendly: drop your whole list here and go.

## `proxyConfiguration` (type: `object`):

🔒 First request is always direct (no proxy). If Apify Proxy is on, the actor can fall back to datacenter then residential (with retries), then stay on residential for the rest of the run. Turn off for direct-only.

## Actor input object example

```json
{
  "urls": [
    "https://www.ebay.com/itm/396090328598"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.ebay.com/itm/396090328598"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapio/ebay-product-details-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.ebay.com/itm/396090328598"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapio/ebay-product-details-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.ebay.com/itm/396090328598"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapio/ebay-product-details-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapio/ebay-product-details-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🛍️ eBay Product Details Scraper",
        "description": "🛍️ eBay Product Details — scrape rich listing data in one click: titles, prices, images, item specifics, variations, specs, seller & shipping info, condition, stock, and ratings. 🚀 Ideal for market research, price tracking, product feeds, and SEO.",
        "version": "0.1",
        "x-build-id": "isz2nwlc72dHm1n9b"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapio~ebay-product-details-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapio-ebay-product-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapio~ebay-product-details-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapio-ebay-product-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapio~ebay-product-details-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapio-ebay-product-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "🔗 Your eBay listing URLs",
                        "type": "array",
                        "description": "📋 Add one link or many — each should be a standard eBay item page (copy from the address bar). ✨ Bulk-friendly: drop your whole list here and go.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy (optional)",
                        "type": "object",
                        "description": "🔒 First request is always direct (no proxy). If Apify Proxy is on, the actor can fall back to datacenter then residential (with retries), then stay on residential for the rest of the run. Turn off for direct-only."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
