# eBay Active Listings Search

> eBay search scraper for active listings on 16 eBay sites: price, condition, seller, shipping and bids. Official Browse API with your free eBay key.

URL: https://cliqtomedia.com/actors/ebay-browse-search/

Category: E-commerce & prices · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

Search live eBay listings by keyword or category. Get one row per listing with price, condition, seller, shipping and bids. It uses the official eBay Browse API with your own free key.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `iphone 13` in Search keywords. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Search **active eBay listings** by keyword or category on 16 eBay sites and get price, condition, seller feedback, shipping, bids and links as clean rows. The Actor calls the **official eBay Browse API with your own free eBay developer keyset**: no eBay account login, no browser, no proxies, no blocked pages.

- price and currency, with the current bid and bid count for auctions;
- condition, seller username, seller feedback percent and score;
- buying options (Buy It Now, auction, best offer), shipping cost, delivery window;
- item location, category, listing start and end time, product ID (ePID);
- clean listing URL and a large image URL.

### Good for

- You want today's asking prices for a product, not what it sold for.
- You want eBay data from the official API instead of a page scraper that breaks when eBay changes its pages.
- You can create a free eBay developer account (5 minutes).

### Not a good fit

- Sold or completed listings. The Browse API only returns active listings. For sold prices, see Related Actors.
- Full item descriptions, all item specifics or seller contact details.
- Running without an eBay keyset.

### How it works

- The Actor gets an application token for your keyset (OAuth client credentials).
- It reads how many Browse API calls your keyset has left today. If none are left, it stops before searching.
- It runs each search page by page (up to 200 listings per call), drops listings already saved by an earlier search in the same run and writes rows to the Dataset.
- It writes a `RUN_SUMMARY` record with counts, quota used, warnings and the stop reason.

## Price

Prices will be shown after release.

## Questions

### Do I need an eBay key?

Yes. You make a free eBay developer account and paste your Client ID and Client Secret. Takes about 5 minutes.

### Can I get sold prices?

No. The Browse API returns active listings only.

### Is there a daily limit?

Yes. eBay gives each keyset 5,000 Browse API calls a day. One call returns up to 200 listings.

### Does it need my eBay login?

No. It uses your API keys, not your account password.

### Do I need an eBay account or a paid plan?

You need a free eBay developer account to create the keyset. You do not log in to eBay in the Actor, and eBay does not charge for Browse API calls.

### Is my key safe?

The key fields are secret inputs: Apify stores them encrypted, and the Actor sends them only to eBay's token endpoint. They are not written to the log, the Dataset or the run summary.

### Why is `seller` sometimes null?

Since September 2025 eBay hides US seller usernames from some API developers. The field is then `null`; feedback percent and score are still filled when eBay gives them.

### Why did a search return fewer rows than `maxItems`?

eBay has fewer active listings for those filters, or the search hit eBay's 10,000-result cap. The run summary shows eBay's total and a `moreAvailable` flag for each search.

## Data fields

- `status` (string): ok = an active listing (paid result); no_results = this search found no active listings (small empty-result fee); api_key_required = free notice when the Client ID or Client Secret is missing.
- `itemId` (string): eBay item number, as in ebay.com/itm/<itemId>.
- `browseItemId` (string): Browse API item id (v1|<item number>|<variation>), for eBay getItem calls.
- `title` (string): Listing title.
- `price` (number): Buy It Now price, or the current bid of an auction that has no Buy It Now price (see priceType).
- `currency` (string): Currency of price, e.g. USD, GBP or EUR.
- `priceType` (string): fixed = Buy It Now price; current_bid = highest bid so far.
- `currentBid` (number): Auctions only: current highest bid.
- `bidCount` (integer): Auctions only: number of bids.
- `originalPrice` (number): Price before the seller's markdown, when eBay shows a discount.
- `discountPercent` (number): Seller's markdown in percent, when eBay shows a discount.
- `condition` (string): Condition as eBay shows it on that site, e.g. New, Used, Good - Refurbished, Gebraucht.
- `conditionId` (string): eBay condition id: 1000 New, 1500 Open box, 2010–2030 Refurbished, 3000 Used, 7000 For parts.
- `seller` (string): Seller username.
- `sellerFeedbackPercent` (number): Seller positive feedback, 0–100.
- `sellerFeedbackScore` (integer): Seller feedback score.
- `buyingOptions` (array): FIXED_PRICE (Buy It Now), AUCTION, BEST_OFFER, CLASSIFIED_AD.
- `shippingCost` (number): Cheapest shipping cost eBay quotes for the delivery place; 0 = free shipping; null when eBay gives no amount (calculated at checkout or pickup only).
- `shippingCostType` (string): FIXED or CALCULATED.
- `deliveryFrom` (string): Earliest estimated delivery date (UTC, ISO 8601).
- `deliveryTo` (string): Latest estimated delivery date (UTC, ISO 8601).
- `location` (string): Item location as eBay shows it in search: masked postal code and country, e.g. 922**, US.
- `locationCountry` (string): Two-letter country code of the item location.
- `categoryId` (string): eBay leaf category id of the listing.
- `categoryName` (string): Category name, e.g. Cell Phones & Smartphones.
- `listedAt` (string): When the listing was created (UTC, ISO 8601).
- `endsAt` (string): When the auction or timed listing ends (UTC, ISO 8601); null for Good 'Til Cancelled listings.
- `topRatedBuyingExperience` (boolean): eBay Top Rated Plus listing.
- `priorityListing` (boolean): Promoted (sponsored) listing.
- `epid` (string): eBay catalogue product id, when the listing is matched to a product.
- `itemGroupType` (string): SELLER_DEFINED_VARIATIONS when the listing has variations such as sizes or colours.
- `url` (string): Listing page on eBay, without search tracking parameters.
- `image` (string): Main listing picture (large size).
- `marketplace` (string): eBay site searched, e.g. EBAY_US or EBAY_DE.
- `query` (string): Search keywords that found this row.
- `categoryFilter` (string): Category id the search was limited to, from categoryIds.
- `position` (integer): 1-based position in this search's results (in the sort order you chose).
- `source` (string): Always ebay-browse-api: the official eBay Browse API.
- `fetchedAt` (string): When this row was fetched (UTC, ISO 8601).
- `message` (string): Why a row is no_results or a key notice; null for listings.

## Input settings

- `clientId` (string): App ID (Client ID) of your Production keyset from developer.ebay.com/my/keys. Stored encrypted; never written to the dataset, logs or run summary.
- `clientSecret` (string): Cert ID (Client Secret) of the same Production keyset. Stored encrypted; never written to the dataset, logs or run summary.
- `queries` (array): One search per line, as you would type it on eBay, up to 50. Each search returns up to Max listings per search. Leave empty to list a whole category from Category IDs.
- `categoryIds` (array): Optional numeric eBay category IDs, up to 10, e.g. 9355 for Cell Phones & Smartphones on eBay.com. With keywords, every keyword is searched in every category (up to 100 searches). The number is in the category page URL on eBay, e.g. ebay.com/b/…/9355/bn_….
- `marketplace` (string): Which eBay site to search. Prices, the price filter and shipping use that site's currency.
- `maxItems` (integer): Stop each search after this many listings (eBay serves up to 10,000 per search). Each saved listing is one paid result; every 200 listings use one of your 5,000 daily API calls.
- `sort` (string): Order of results, as eBay sorts them. Price sorting uses the item price plus the cheapest shipping cost.
- `titleMustMatch` (boolean): Keep only listings whose title contains every word of the keyword. eBay's API also matches words in item specifics, so price-sorted searches can start with loosely related items. Dropped listings are not saved or charged; each search then reads full pages of 200 and scans at most 5 times the pages maxItems needs and never more than 1,600 listings per search.
- `priceMin` (integer): Only listings at or above this price, in the eBay site's currency (whole units).
- `priceMax` (integer): Only listings at or below this price, in the eBay site's currency (whole units).
- `condition` (string): Item condition.
- `buyingFormat` (string): Listing format.
- `itemLocationCountry` (string): Optional two-letter country code: only items located there, e.g. US, GB, DE, CN.
- `deliveryCountry` (string): Optional two-letter country code: only items that ship there, with shipping cost and delivery dates for that country.
- `deliveryPostalCode` (string): Optional postal code with Ship to country, for more exact shipping costs, e.g. 10001.

## Step by step on Apify

1. Paste your Client ID and Client Secret.
2. Keep the prefilled search (`iphone 13`, 10 listings) or type your own keywords.
3. Click Start. Rows appear in the Output tab in a few seconds.

## Use cases

- Competitor prices. Search your product with `condition: "new"` and `sort: "priceLowToHigh"` to see the cheapest live offers with shipping.
- Deal finding. Use `priceMax` and `buyingFormat: "auction"` with `sort: "endingSoonest"` to see auctions that end soon.
- Category feed. Pass only `categoryIds` to list items in an eBay category without a keyword.
- Cross-site comparison. Run the same keywords on `EBAY_US`, `EBAY_GB` and `EBAY_DE` and compare `price` and `currency`.
- Repricing input. Schedule a daily run and send `itemId`, `price` and `shippingCost` to your sheet or database.

## Tips

- Sort by price low to high to see the cheapest live offers.
- Turn on the title filter so rows must contain your keywords.
- Run the same keywords on more than one eBay site to compare prices.

## Limits



- 10,000 listings per search. eBay's Browse API serves only the first 10,000 results of one search (and a few listings repeat on neighbouring pages, so expect about 9,500 unique). For more, split the search by category, price range or more specific keywords.
- Up to 100 searches per run (50 keywords × 10 categories at most).
- Daily quota of your keyset: 5,000 calls; each call is up to 200 listings. eBay can raise it through its Application Growth Check.
- Speed: calls are sequential to save your quota. About 3–4 seconds per 200 listings: 1,000 listings in about 15 seconds, 5 searches × 10,000 in about 13 minutes (measured). The default run timeout is 30 minutes; the Actor stops 15 seconds before it, keeps saved rows and ends Succeeded with `PARTIAL` / `TIME_LIMIT`. If the timeout is so short that nothing was saved yet, the run fails with the same reason.
- Active listings only. No sold listings, no full descriptions, no seller contacts.
- eBay's terms forbid using this data for average selling prices or aggregated seller data; the Actor does not compute them.

## Sample result

```json
{
  "status": "ok",
  "itemId": "237128712651",
  "title": "VINTAGE WATCHES SPARES AND REPAIRS ONLY (LOT 59) 12 IN TOTAL, MANY MORE TO LIST",
  "price": 25,
  "currency": "GBP",
  "priceType": "current_bid",
  "currentBid": 25,
  "bidCount": 6,
  "condition": "Pre-owned - Fair",
  "seller": "example_seller",
  "sellerFeedbackPercent": 100,
  "sellerFeedbackScore": 3326,
  "buyingOptions": ["AUCTION"],
  "shippingCost": 6.2,
  "shippingCostType": "FIXED",
  "location": "NN16***, GB",
  "categoryId": "31387",
  "categoryName": "Wristwatches",
  "listedAt": "2026-10-17T10:47:23.000Z",
  "endsAt": "2026-10-22T10:47:23.000Z",
  "url": "https://www.ebay.co.uk/itm/237128712651",
  "image": "https://i.ebayimg.com/images/g/9MAAAeSwojpq00~m/s-l1200.jpg",
  "marketplace": "EBAY_GB",
  "query": "vintage watch",
  "position": 2,
  "fetchedAt": "2026-10-22T10:46:39.419Z"
}
```

## Similar tools

- [eBay Sold Listings Scraper - Sold Prices & Dates](https://cliqtomedia.com/actors/ebay-sold-listings/)
- [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/)
- [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/)
- [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/)
- [Naver Shopping Scraper: Korea Products & Prices](https://cliqtomedia.com/actors/naver-shopping-scraper/)
- [Trendyol Scraper: Products, Prices & Reviews (No login)](https://cliqtomedia.com/actors/trendyol-scraper/)
