# eBay Scraper - Product Listings, Prices & Sold Data (`scrapers_lat/ebay-scraper`) Actor

eBay scraper and API for product listings, prices and sold data. No API key. Search by keyword, category, condition, price, buying format or item URL across 9 eBay sites. Get price, seller feedback, shipping, item specifics, GTIN, images and sold-price comps. Export JSON, CSV, Excel.

- **URL**: https://apify.com/scrapers\_lat/ebay-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** E-commerce, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.15 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Scraper - Product Listings, Prices & Sold Data](https://scrapers.lat/banners/ebay-scraper.png)](https://console.apify.com/actors/Te4xHMatJQRYJDabc/input)

## eBay Scraper - Product Listings, Prices & Sold Data

A fast **eBay scraper and API** for **eBay product data** with **no API key** and no login. Search **eBay listings** by keyword, category, condition, price range, buying format, or item URL across nine eBay marketplaces, and get clean structured records with **eBay price data**, seller and feedback data, shipping, item specifics, GTIN/UPC, images, and real **sold-price comps** for product research and reselling.

Here is one real result, with every field the actor returns:

```json
{
  "imageUrl": "https://i.ebayimg.com/images/g/3uoAAeSwiipqm4Jt/s-l1600.jpg",
  "title": "SV28 V11 Extra Cordless Vacuum Cleaner | Iron | Refurbished",
  "url": "https://www.ebay.com/itm/277769465576",
  "itemId": "277769465576",
  "price": 364.99,
  "priceMax": null,
  "currency": "USD",
  "priceText": "$364.99",
  "wasPrice": 659.99,
  "discountPercent": 45,
  "condition": "Certified - Refurbished",
  "listingType": "FixedPrice",
  "bidCount": null,
  "bestOffer": null,
  "isSponsored": false,
  "timeLeft": null,
  "sellerName": "dysonofficial",
  "sellerFeedbackPercent": 99.2,
  "sellerFeedbackScore": 174200,
  "sellerUrl": "https://www.ebay.com/str/dysonstore",
  "rating": 4.74,
  "reviewCount": 19,
  "gtin": "0885609027500",
  "shipping": "Free",
  "freeShipping": true,
  "shippingCost": 0,
  "itemLocation": "United States",
  "availability": "InStock",
  "quantityAvailable": 10,
  "returnsAccepted": true,
  "returnPolicy": "30 day returns",
  "soldCount": 159,
  "watchers": 222,
  "brand": "Dyson",
  "mpn": "411636-01",
  "category": "Vacuum Cleaners",
  "breadcrumbs": ["eBay", "Home & Garden", "Household Supplies & Cleaning", "Vacuum Cleaners"],
  "itemSpecifics": {
    "Brand": "Dyson",
    "Model": "Dyson V11 Extra",
    "MPN": "411636-01",
    "Type": "Stick",
    "Power": "185aw",
    "Filters": "Pre and Post Motor (HEPA) Washable",
    "Color": "Silver",
    "Condition": "Certified - Refurbished"
  },
  "images": [
    "https://i.ebayimg.com/images/g/3uoAAeSwiipqm4Jt/s-l1600.jpg",
    "https://i.ebayimg.com/images/g/zccAAeSwdK5qm4Jt/s-l1600.jpg",
    "https://i.ebayimg.com/images/g/uNMAAeSwGatqm4Jt/s-l1600.jpg"
  ],
  "aiCleanName": "Dyson V11 Extra Cordless Vacuum Cleaner",
  "aiTitleEn": "Dyson V11 Extra Cordless Vacuum Cleaner (Iron, Refurbished)",
  "aiAttributes": { "brand": "Dyson", "model": "V11 Extra", "type": "Cordless Stick Vacuum", "color": "Iron" },
  "aiCategory": "Home Appliances",
  "observedAt": "2026-09-05T03:04:32.191Z",
  "error": null
}
```

The most complete **eBay listings scraper** available. It returns every field the search results and item pages expose, from price, condition, seller, and feedback to brand, MPN, GTIN, breadcrumbs, return policy, quantity available, and the full image gallery, plus optional AI name cleanup and structured attributes. Search, direct-URL, category, and sold-comps modes let you target exactly the **eBay product data** and **eBay seller data** you need.

**📥 [Input](https://apify.com/scrapers_lat/ebay-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/ebay-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/ebay-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/ebay-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify\&logoColor=white)
![Coverage](https://img.shields.io/badge/Coverage-eBay-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)
![Billing](https://img.shields.io/badge/Billing-Pay%20per%20result-brightgreen)

### Table of contents

- [What it does](#what-it-does)
- [Quickstart](#quickstart)
- [Input reference](#input-reference)
- [Output reference](#output-reference)
- [Example output record](#example-output-record)
- [Run via API and CLI](#run-via-api-and-cli)
- [Fetch results](#fetch-results)
- [Billing and limits](#billing-and-limits)
- [FAQ and troubleshooting](#faq-and-troubleshooting)

### What it does

The actor searches eBay by keyword, reads eBay search or category page URLs, or scrapes specific item URLs you provide, paginates through the results, and writes one normalized record per listing to the run's dataset. Narrow any keyword search with category, condition, price range, buying format, free-shipping, item location, and sort filters, and pick any of nine eBay marketplaces (US, UK, DE, FR, IT, ES, CA, AU, IE). Each record carries price and price range, currency, original price and discount, condition, listing type, sponsored flag, shipping cost and free-shipping flag, item location, seller store and feedback, and engagement signals such as watchers and sold count.

With item details enabled (the default), the actor also opens each item page to add full item specifics, brand, model, MPN, GTIN/UPC, category and breadcrumb path, availability, quantity available, return policy, and the complete image gallery. A sold-comps mode returns past sold and completed listings so you can build real price comparables. Two optional paid AI add-ons produce a clean product name plus English translation, and normalized structured attributes with a broad category.

### Why this eBay scraper

- **No API key, no login.** Just a search term or a URL. Nothing to register with eBay.
- **Search filters that match eBay's own.** Category, condition, price range, buying format, free shipping, item location, and sort, plus 9 country marketplaces.
- **Sold-price comps.** Turn on `soldListings` for realized sale prices that eBay's official API does not expose, ideal for reseller and product research.
- **Deepest field set.** Seller feedback, sponsored flag, return policy, quantity available, GTIN/UPC, breadcrumbs, and the full image gallery, not just title and price.
- **Direct-URL and start-URL modes.** Track specific listings, or paste any eBay search/category page.

### How it compares

| Capability | This actor | parseforge/ebay-scraper | automation-lab/ebay-scraper |
|---|---|---|---|
| Keyword search | Yes | Yes | Yes |
| Start URLs (search/category/item) | Yes | Yes | Search URLs only |
| Category ID filter | Yes | Yes | No |
| Condition filter | Yes | Yes | Yes |
| Price range filter | Yes | Yes | Yes |
| Buying format filter | Yes | No | Yes |
| Free-shipping filter | Yes | Yes | No |
| Item-location filter | Yes | Yes | No |
| Sort order | Yes | Yes | Yes |
| Country marketplaces | 9 | Country via proxy | 8 |
| Sold / completed comps | Yes | Yes | Yes |
| Price range (min/max) | Yes | No | No |
| Seller feedback % and score | Yes | Percent only | No |
| Seller store URL | Yes | No | No |
| Sponsored flag | Yes | Yes | No |
| Return policy | Yes | Yes | No |
| Quantity available | Yes | No | No |
| GTIN / UPC / EAN | Yes | No | No |
| Full item specifics map | Yes | Partial | No |
| Full image gallery | Yes | Yes | Yes |
| AI title cleanup and attributes | Yes | No | No |

Every input those actors accept is accepted here, and every field they output is returned here, plus the extra fields above. Competitor capabilities are summarized from their public Apify store pages and may change.

### Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 active `nintendo switch` listings with full item details.

```json
{
  "searchQueries": ["nintendo switch"],
  "maxProducts": 10,
  "withDetails": true
}
```

Provide `searchQueries`, `itemUrls`, `startUrls`, or any mix. Every input is optional; with an empty input the actor searches the default query and returns active listings. Set `soldListings` to `true` for sold-price comparables.

Narrow a search with filters, exactly like eBay's own search sidebar:

```json
{
  "searchQueries": ["mechanical keyboard"],
  "marketplace": "US",
  "condition": ["new", "open_box"],
  "minPrice": 30,
  "maxPrice": 150,
  "listingType": "buy_it_now",
  "freeShipping": true,
  "sort": "price_low",
  "maxProducts": 50
}
```

### Input reference

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `searchQueries` | string\[] | no | `["nintendo switch"]` | Keywords to search on eBay, for example `nintendo switch` or `vintage rolex`. Result pages are paginated until `maxProducts` is reached. |
| `itemUrls` | string\[] | no | `[]` | Direct eBay item URLs (`https://www.ebay.com/itm/<itemId>`) to scrape, ideal for tracking specific listings over time. |
| `startUrls` | string\[] | no | `[]` | Any eBay search, category, or item page URLs. Search and category pages are paginated; item pages are scraped directly. Filters encoded in the URL are respected. |
| `maxProducts` | integer | no | `10` | Maximum listings to collect across all inputs combined. |
| `marketplace` | string | no | `US` | Which eBay site to search: `US`, `UK`, `DE`, `FR`, `IT`, `ES`, `CA`, `AU`, `IE`. Sets both the domain and a matching residential proxy country. |
| `category` | string | no | `""` | Optional eBay category ID to restrict a keyword search (for example `139973`). |
| `condition` | string\[] | no | `[]` | Filter by condition: `new`, `open_box`, `refurbished`, `used`, `for_parts`. |
| `minPrice` | number | no | | Only listings priced at or above this amount. |
| `maxPrice` | number | no | | Only listings priced at or below this amount. |
| `listingType` | string | no | `all` | Buying format filter: `all`, `buy_it_now`, `auction`, `best_offer`. |
| `freeShipping` | boolean | no | `false` | Only listings that offer free shipping. |
| `location` | string | no | `any` | Item location filter: `any`, `us`, `north_america`, `europe`, `asia`, `worldwide`. |
| `sort` | string | no | `best_match` | Result order: `best_match`, `ending_soonest`, `newly_listed`, `price_low`, `price_high`. |
| `withDetails` | boolean | no | `true` | Open each item page to add full item specifics, brand, model, MPN, UPC, complete image gallery, sold count, quantity available, return policy, and availability. Turn off for a faster, lighter run. |
| `soldListings` | boolean | no | `false` | Return past SOLD and completed listings instead of active ones, for real sold-price comparables. Applies to search queries and search start URLs. |
| `withDescription` | boolean | no | `false` | Paid AI add-on. Produces a concise clean product name and an English translation of the listing title. Billed only on usable AI output. |
| `withAttributes` | boolean | no | `false` | Paid AI add-on. Extracts normalized structured product attributes and a broad product category. Billed only on usable AI output. |

### Output reference

One dataset item per listing. Types: `string`, `number`, `integer`, `boolean`, `string[]`, `object`, or `null` when the source value is absent.

| Field | Type | Description |
|---|---|---|
| `title` | string | Full listing title as shown on eBay. |
| `url` | string | Canonical item URL. |
| `itemId` | string | eBay numeric item id. |
| `imageUrl` | string | Primary listing image URL. |
| `price` | number | Current price as a number (the low value of a price range). |
| `priceMax` | number | High value when the listing shows a price range (`$12 to $15`), else `null`. |
| `currency` | string | ISO currency code, for example `USD`. |
| `priceText` | string | Price as displayed, including currency symbol. |
| `wasPrice` | number | Original (struck-through) price when discounted, else `null`. |
| `discountPercent` | integer | Percent discount off `wasPrice`, else `null`. |
| `condition` | string | Item condition, for example `New`, `Open Box`, `Used`. |
| `listingType` | string | `FixedPrice` or `Auction`. |
| `bidCount` | integer | Number of bids on auction listings, else `null`. |
| `bestOffer` | boolean | Whether Best Offer is accepted, when known. |
| `isSponsored` | boolean | Whether the card is a sponsored/promoted listing. |
| `timeLeft` | string | Time remaining on auction listings, else `null`. |
| `sellerName` | string | Seller username when exposed. |
| `sellerFeedbackPercent` | number | Seller positive feedback percentage when exposed. |
| `sellerFeedbackScore` | integer | Seller feedback score when exposed. |
| `sellerUrl` | string | Seller store URL. |
| `rating` | number | Product rating when shown, else `null`. |
| `reviewCount` | integer | Number of product reviews when shown, else `null`. |
| `gtin` | string | GTIN/UPC/EAN barcode when present. |
| `shipping` | string | Shipping cost as displayed, or `Free`. |
| `freeShipping` | boolean | `true` when shipping is free, `false` when a cost is shown, else `null`. |
| `shippingCost` | number | Numeric shipping cost (`0` when free), else `null`. |
| `itemLocation` | string | Where the item ships from. |
| `availability` | string | Stock state, for example `InStock`, from the item page. |
| `quantityAvailable` | integer | Units available, from the item page, else `null`. |
| `returnsAccepted` | boolean | Whether returns are accepted, from the item page, else `null`. |
| `returnPolicy` | string | Return policy summary, for example `30 day returns`, else `null`. |
| `soldCount` | integer | Number sold, from the item page. |
| `watchers` | integer | Number of watchers, from the item page. |
| `brand` | string | Brand from item specifics. |
| `mpn` | string | Manufacturer part number from item specifics. |
| `category` | string | Leaf category name. |
| `breadcrumbs` | string\[] | Full category breadcrumb path. |
| `itemSpecifics` | object | Key/value map of every item-specific attribute, or `null`. |
| `images` | string\[] | Full image gallery URLs from the item page. |
| `aiCleanName` | string | AI clean product name, only with `withDescription`. |
| `aiTitleEn` | string | AI English translation of the title, only with `withDescription`. |
| `aiAttributes` | object | AI-normalized structured attributes, only with `withAttributes`. |
| `aiCategory` | string | AI broad product category, only with `withAttributes`. |
| `observedAt` | string | ISO 8601 timestamp of when the record was collected. |
| `error` | string | `null` on success. On a failed run, a single item with a populated `error` field is written instead. |

Item-page fields (`availability`, `soldCount`, `watchers`, `brand`, `mpn`, `category`, `breadcrumbs`, `itemSpecifics`, `images`) are populated only when `withDetails` is enabled. The `ai*` fields are populated only when the matching AI add-on is on.

### Example output record

Search-mode record (item details off). Detail-only fields such as `brand`, `itemSpecifics`, `images`, and `availability` are `null` because the item page is not opened. This is a real record from a live run:

```json
{
  "imageUrl": "https://i.ebayimg.com/images/g/cjQAAeSwRRNqXVvO/s-l500.webp",
  "title": "New Silicone Phone Case For iPhone 15 16 17 Pro Max 17 Air Free US",
  "url": "https://www.ebay.com/itm/287472595200",
  "itemId": "287472595200",
  "price": 1.95,
  "priceMax": null,
  "currency": "USD",
  "priceText": "$1.95",
  "wasPrice": null,
  "discountPercent": null,
  "condition": "Brand New",
  "listingType": "FixedPrice",
  "bidCount": null,
  "bestOffer": null,
  "isSponsored": false,
  "sellerName": "ecommbu32",
  "sellerFeedbackPercent": 99.2,
  "sellerFeedbackScore": 361,
  "shipping": "Free",
  "freeShipping": true,
  "shippingCost": 0,
  "itemLocation": "United States",
  "observedAt": "2026-09-05T03:02:57.624Z",
  "error": null
}
```

### Run via API and CLI

Start a run and read the dataset. Replace `<TOKEN>` with your Apify API token.

Run synchronously and get dataset items in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ebay-scraper/run-sync-get-dataset-items?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["vintage rolex"],"maxProducts":25,"withDetails":true}'
```

Start a run asynchronously:

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ebay-scraper/runs?token=%3CTOKEN%3E" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["nintendo switch"],"soldListings":true,"maxProducts":100}'
```

Apify CLI:

```bash
apify call scrapers_lat/ebay-scraper \
  --input '{"itemUrls":["https://www.ebay.com/itm/398204502459"]}'
```

### Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing `format`:

```bash
## JSON
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=json"

## CSV
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&clean=true&format=csv"

## Paginate large datasets
curl "https://api.apify.com/v2/datasets/%3CDATASET_ID%3E/items?token=%3CTOKEN%3E&offset=1000&limit=1000"
```

`<DATASET_ID>` is returned as `defaultDatasetId` in the run object. `clean=true` drops empty and internal fields.

### Billing and limits

- **Pay per result.** Each listing record bills on the `result` event. See the [pricing tab](https://apify.com/scrapers_lat/ebay-scraper/pricing) for the current per-result price.
- **Item-detail and AI events billed separately.** Opening an item page bills the `details` event. `withDescription` and `withAttributes` bill the `ai_description` and `ai_attributes` events, and only when the AI returns usable output. The AI add-ons are off by default and require a paid Apify plan.
- **No charge on failure.** If a run errors, the actor writes a single item with a populated `error` field and does not charge for it. Empty runs cost nothing.
- **Spend cap respected.** Set `maxTotalChargeUsd` on the run; once reached, the actor stops emitting and charging further billable results.
- **Free Apify plans** are capped at 10 records per run. Upgrade for higher `maxProducts`.

### FAQ and troubleshooting

**Do I need an eBay API key or account?**
No. There is no API key, developer registration, or login. Provide a search term or a URL and run.

**Can I scrape other eBay country sites?**
Yes. Set `marketplace` to `US`, `UK`, `DE`, `FR`, `IT`, `ES`, `CA`, `AU`, or `IE`. The actor uses that domain and a matching residential proxy country.

**Can I filter by condition, price, or buying format?**
Yes. Use `condition`, `minPrice`/`maxPrice`, `listingType`, `freeShipping`, `location`, `category`, and `sort`. They apply to keyword searches the same way eBay's search filters do. You can also paste a fully filtered eBay search URL into `startUrls`.

**Can I get sold prices for market research?**
Yes. Set `soldListings` to `true`. The actor returns past sold and completed listings instead of active ones, so you can build real price comparables for reselling and product research.

**How do I track specific listings over time?**
Pass their URLs in `itemUrls`. Each run re-reads those exact items so you can watch price, availability, and watchers change.

**Why are `brand`, `mpn`, and `images` empty?**
Those come from the item page. Enable `withDetails` (on by default) to fetch them. With details off, only the search-result fields are returned.

**Do the AI fields cost extra?**
Yes. `aiCleanName`/`aiTitleEn` and `aiAttributes`/`aiCategory` are optional paid add-ons, billed only when the AI returns usable output. Leave `withDescription` and `withAttributes` off to skip them.

**A run returned 0 records. Why?**
The search matched nothing, or the item URLs were invalid or removed. Loosen the query or verify the URLs. Zero-result runs are not charged.

**Is this an official eBay tool?**
No. This actor is independent and is not affiliated with eBay Inc. It reads only publicly visible listing data. Use it in accordance with eBay's terms and applicable law.

### Related scrapers

- [Amazon Product Scraper](https://apify.com/scrapers_lat/amazon-product-scraper): Amazon product listings, prices, and details by search or ASIN.
- [Amazon Reviews Scraper](https://apify.com/scrapers_lat/amazon-reviews-scraper): Amazon customer reviews and ratings for any product.
- [AliExpress Scraper](https://apify.com/scrapers_lat/aliexpress-scraper): AliExpress product listings, prices, and specs.
- [MercadoLibre Scraper](https://apify.com/scrapers_lat/mercadolibre-scraper): MercadoLibre listings and prices across Latin America.
- [Google Play App Details Scraper](https://apify.com/scrapers_lat/google-play-apps-scraper): App listings and details from the Google Play Store.
- [1688 Wholesale Scraper](https://apify.com/scrapers_lat/1688-wholesale-scraper): 1688 wholesale product listings and supplier data.

### More scrapers at scrapers.lat

Built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at [scrapers.lat](https://scrapers.lat).

***

> Independent tool, not affiliated with eBay Inc. Accesses only publicly visible eBay listing data. Use in accordance with eBay's terms of service.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on eBay, like "nintendo switch" or "vintage rolex". Every result page is read and paginated until Max products is reached.

## `itemUrls` (type: `array`):

Direct eBay item URLs (https://www.ebay.com/itm/<itemId>) to scrape, ideal for tracking specific listings over time.

## `startUrls` (type: `array`):

Paste any eBay search-results, category, or item page URLs. Search/category pages are paginated; item pages are scraped directly. Filters already encoded in the URL are respected as-is.

## `maxProducts` (type: `integer`):

Maximum number of products to collect across all inputs combined.

## `marketplace` (type: `string`):

Which eBay country site to search. Sets both the domain and a matching residential proxy country.

## `category` (type: `string`):

Optional eBay category ID to restrict a keyword search (for example 139973 for Video Games). Leave blank to search all categories.

## `condition` (type: `array`):

Filter by item condition. Choose one or more.

## `minPrice` (type: `integer`):

Only return listings priced at or above this amount (in the marketplace currency).

## `maxPrice` (type: `integer`):

Only return listings priced at or below this amount (in the marketplace currency).

## `listingType` (type: `string`):

Restrict to a buying format.

## `freeShipping` (type: `boolean`):

Only return listings that offer free shipping.

## `location` (type: `string`):

Preferred item location filter.

## `sort` (type: `string`):

How eBay orders the results.

## `soldListings` (type: `boolean`):

Return past SOLD and completed listings instead of active ones, to get real sold-price comparables for market research and pricing. Applies to search queries and search start URLs.

## `withDetails` (type: `boolean`):

Open each item page to add full item specifics (brand, model, MPN, UPC and every other attribute), the complete image gallery, sold count, quantity available, return policy and availability. Turn off for a faster, lighter run.

## `withDescription` (type: `boolean`):

Opt-in AI add-on (paid plans only), off by default. Turn the noisy listing title into a concise clean product name and an English name. Charged only when the model returns usable output.

## `withAttributes` (type: `boolean`):

Opt-in AI add-on (paid plans only), off by default. Extract normalized structured product attributes/specs and a broad product category from the title and item specifics. Charged only when the model returns usable output.

## Actor input object example

```json
{
  "searchQueries": [
    "nintendo switch"
  ],
  "itemUrls": [],
  "startUrls": [],
  "maxProducts": 10,
  "marketplace": "US",
  "condition": [],
  "listingType": "all",
  "freeShipping": false,
  "location": "any",
  "sort": "best_match",
  "soldListings": false,
  "withDetails": true,
  "withDescription": false,
  "withAttributes": false
}
```

# Actor output Schema

## `results` (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 = {
    "searchQueries": [
        "nintendo switch"
    ],
    "itemUrls": [],
    "startUrls": [],
    "maxProducts": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/ebay-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 = {
    "searchQueries": ["nintendo switch"],
    "itemUrls": [],
    "startUrls": [],
    "maxProducts": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "nintendo switch"
  ],
  "itemUrls": [],
  "startUrls": [],
  "maxProducts": 10
}' |
apify call scrapers_lat/ebay-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/ebay-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Te4xHMatJQRYJDabc/builds/ceUoFMvk9cwxObPV2/openapi.json
