# eBay Product Scraper by URL (`apt_marble/ebay-product-scraper-by-url`) Actor

Extract complete product data from eBay product URLs in seconds. Scrape titles, prices, images, seller details, shipping info, item specifics, availability, condition, ratings, variations, and more with fast structured JSON output.

- **URL**: https://apify.com/apt\_marble/ebay-product-scraper-by-url.md
- **Developed by:** [Hamza](https://apify.com/apt_marble) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$2.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Scraper — Collect by URL

Scrape full eBay product listings from URLs. Each input URL returns one record with ~59 fields — title, price, condition, brand, full photo gallery, seller info, shop ratings, item specifics, shipping/return policies, related-item suggestions, GTIN/MPN, and complete HTML description. Great for price-monitoring, dropshipping research, competitive listing analysis, and product enrichment.

### What this Actor does

Given a list of eBay `/itm/<id>` URLs, returns one record per item with the full product detail page parsed into structured fields. Regional eBay domains (`.com`, `.co.uk`, `.de`, `.fr`, `.it`, `.es`, `.com.au`, `.ca`, etc.) are supported.

### Input

| Field          | Type             | Required | Description                                                                              |
| -------------- | ---------------- | -------- | ---------------------------------------------------------------------------------------- |
| `product_urls` | array of strings | yes      | One or more eBay product URLs (`https://www.ebay.<tld>/itm/<id>`)                        |

Example input:

```json
{
    "product_urls": [
        "https://www.ebay.com/itm/134042783029",
        "https://www.ebay.com/itm/405823814712"
    ]
}
````

Invalid URLs are **skipped** with a warning and an `error: "invalid_url"` row is pushed to the dataset. The run still finishes as **Succeeded** as long as at least one URL was valid.

### Output

Each item in the dataset has this shape (59 fields, matches the upstream schema):

```json
{
    "url": "https://www.ebay.com/itm/134042783029",
    "product_id": "134042783029",
    "title": "KINREX 9\" Soft Elephant Plush Toy for Baby Boy & Girl",
    "seller_name": "KP TRADING DEALS",
    "seller_rating": "99% positive feedback",
    "seller_reviews": "3555",
    "breadcrumbs": [{ "name": "Baby", "url": "https://www.ebay.com/b/Baby-Essentials/2984/bn_1854104" }],
    "root_category": "Baby",
    "images": ["https://i.ebayimg.com/images/g/.../s-l1600.webp", "..."],
    "price": "$19.99",
    "currency": "USD",
    "condition": "New",
    "available_count": 10,
    "sold_count": "12",
    "item_location": "Located in: Newark, DE, United States",
    "ships_to": "Estimated between Thu, May 21 and Wed, May 27 to 33155",
    "return_policy": "Seller does not accept returns",
    "product_specifications": [
        { "specification_name": "Condition", "specification_value": "New: A brand-new, unused..." }
    ],
    "seller_total_reviews": 36613661,
    "item_reviews": 22,
    "seller_ratings": [{ "rating_name": "Accurate description", "rating_value": "4.9" }],
    "product_ratings": 3,
    "amount_of_stars": [{ "5_stars": "1" }],
    "what_customers_said": [{ "value_name": "Durable", "percentage": "0%" }],
    "reviews_count": "2",
    "you_may_also_like": [{ "title": "KINREX Stuffed Elephant Plush Animal Toys for Baby...", "...": "..." }],
    "tags": ["In 5 carts"],
    "description_from_the_seller": "KINREX 9\" Soft Elephant Plush Toy...",
    "description_from_the_seller_parsed": "<p>KINREX 9&quot; Soft Elephant Plush Toy...</p>",
    "domain": "www.ebay.com",
    "seller_url": "https://www.ebay.com/str/kptradingdeals?...",
    "brand": "KINREX",
    "availability": "in_stock",
    "availability_date": "Estimated between Thu, May 21 and Wed, May 27",
    "group_id": "134042783029",
    "listing_has_variations": false,
    "product_category": "Baby>Toys for Baby>Plush Baby Toys",
    "item_id": "134042783029",
    "description": "KINREX 9\" Soft Elephant Plush Toy for Baby Boy & Girl...",
    "category_tree": [{ "name": "Baby", "url": "https://www.ebay.com/b/Baby-Essentials/2984/bn_1854104" }],
    "image_url": "https://i.ebayimg.com/images/g/.../s-l1600.webp",
    "store_name": "KP TRADING DEALS",
    "category_urls": ["https://www.ebay.com/b/Baby-Essentials/2984/bn_1854104"],
    "seller_tos": "https://www.ebay.com/help/policies/...user-agreement?id=4259",
    "seller_privacy_policy": "https://www.ebay.com/help/policies/...privacy-policy?id=...",
    "gtin": "854389006500",
    "mpn": "does not apply",
    "timestamp": "2026-05-18T18:25:36.345Z",
    "input": { "url": "https://www.ebay.com/itm/134042783029" }
}
```

#### Field-type notes

Some price / count / rating fields come back as **strings with units**, so they're preserved as strings rather than coerced to numbers:

- `price`, `sale_price` — `"$19.99"` (currency symbol + value)
- `sold_count` — `"12"` (sometimes `"15+"` or `"More than 50"`)
- `seller_rating` — `"99% positive feedback"`
- `seller_reviews`, `reviews_count` — strings to preserve formatting like `"1,234"`

Numeric fields stay numeric: `available_count`, `seller_total_reviews`, `item_reviews`, `product_ratings`.

### Limits & responsible use

- The Actor only returns information that is publicly visible on eBay listing pages.
- Respect eBay's Terms of Service and applicable data-protection regulations when using the output.

# Actor input Schema

## `product_urls` (type: `array`):

One or more eBay product (`/itm/<id>`) URLs to scrape. Regional domains (.com, .co.uk, .de, .fr, .es, .it, .com.au, .ca, …) are supported. Tracking parameters in the URL are fine — they will be passed through as-is.

## Actor input object example

```json
{
  "product_urls": [
    "https://www.ebay.com/itm/134042783029",
    "https://www.ebay.com/itm/405823814712"
  ]
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "product_urls": [
        "https://www.ebay.com/itm/134042783029",
        "https://www.ebay.com/itm/405823814712"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("apt_marble/ebay-product-scraper-by-url").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 = { "product_urls": [
        "https://www.ebay.com/itm/134042783029",
        "https://www.ebay.com/itm/405823814712",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("apt_marble/ebay-product-scraper-by-url").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 '{
  "product_urls": [
    "https://www.ebay.com/itm/134042783029",
    "https://www.ebay.com/itm/405823814712"
  ]
}' |
apify call apt_marble/ebay-product-scraper-by-url --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "eBay Product Scraper by URL",
        "description": "Extract complete product data from eBay product URLs in seconds. Scrape titles, prices, images, seller details, shipping info, item specifics, availability, condition, ratings, variations, and more with fast structured JSON output.",
        "version": "0.0",
        "x-build-id": "eRBbwrGBFNuoILfzH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/apt_marble~ebay-product-scraper-by-url/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-apt_marble-ebay-product-scraper-by-url",
                "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/apt_marble~ebay-product-scraper-by-url/runs": {
            "post": {
                "operationId": "runs-sync-apt_marble-ebay-product-scraper-by-url",
                "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/apt_marble~ebay-product-scraper-by-url/run-sync": {
            "post": {
                "operationId": "run-sync-apt_marble-ebay-product-scraper-by-url",
                "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": [
                    "product_urls"
                ],
                "properties": {
                    "product_urls": {
                        "title": "eBay product URLs",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "One or more eBay product (`/itm/<id>`) URLs to scrape. Regional domains (.com, .co.uk, .de, .fr, .es, .it, .com.au, .ca, …) are supported. Tracking parameters in the URL are fine — they will be passed through as-is.",
                        "items": {
                            "type": "string",
                            "pattern": "^https?://(www\\.)?ebay\\.[a-z.]{2,8}/itm/\\d+.*$"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
