~ / endpoints / Search API

eBay Search Scraper API

Our eBay search scraper turns any keyword or search URL into structured JSON: the full result page as an array of listings, each with title, price, condition, shipping, sold count, watchers, and buying format, from one request.

Get a free API keyBrowse endpoints
1,000
free requests / mo
2.6s
median response
JSON
structured output
~60
listings per page

Quickstart

cURL
curl "https://api.ebayscraperapi.com/api/v1/ebay/search?query=coffee+maker&api_key=$API_KEY"
Python
import requests

BASE = "https://api.ebayscraperapi.com"
API_KEY = "YOUR_API_KEY"

# Pass a keyword (query) or a full eBay search URL.
data = requests.get(
    f"{BASE}/api/v1/ebay/search",
    params={"query": "coffee maker", "api_key": API_KEY},
    timeout=30,
).json()

print(data["query"], "-", data["total_results"], "listings")

for item in data["results"]:
    print(item["position"], item["price"], item["condition"], item["title"])
    print("  ", item["url"])

# Page deeper with the page parameter (1-100).
page2 = requests.get(
    f"{BASE}/api/v1/ebay/search",
    params={"query": "coffee maker", "page": 2, "api_key": API_KEY},
    timeout=30,
).json()

Params

ParameterRequiredDefaultNotes
queryrequired-The search keyword, e.g. coffee maker. Required. Pass a full eBay search URL instead if you already have one.
urloptional-A full eBay search-results URL (…/sch/i.html?_nkw=…). Use it in place of query to scrape a pre-built search, filtered link, or category page as-is.
pageoptional1Page number of results, 1 to 100. Each page returns roughly 60 listings (items-per-page is set to 60 server side).
domainoptionalcomeBay marketplace TLD, e.g. com, co.uk, de, com.au. Controls which regional eBay site is searched.
countryoptional-Optional two-letter country code for the proxy egress, so prices and shipping render as seen from that region.
api_keyrequired-Your API key, passed as a query parameter. Get one free at signup.

Response

200 OK
{
  "query": "coffee maker",
  "page": 1,
  "total_results": 56,
  "results": [
    {
      "position": 1,
      "id": "117247270687",
      "title": "Nespresso VertuoPlus Deluxe Coffee and Espresso Machine - Black (ENV155BAE)",
      "url": "https://www.ebay.com/itm/117247270687",
      "price": 45,
      "currency": "USD",
      "price_raw": "$45.00",
      "rating": 5,
      "reviews_count": 12,
      "thumbnail": "https://i.ebayimg.com/images/g/ze4AAeSwZVNqLbzb/s-l140.webp",
      "subtitle": null,
      "condition": "Pre-Owned",
      "shipping": "+$117.65 delivery",
      "returns": null,
      "quantity_sold": null,
      "extracted_quantity_sold": null,
      "buying_format": "accepts_offers",
      "buying_format_text": "or Best Offer",
      "extensions": null,
      "watchers": null,
      "extracted_watchers": null,
      "stock_status": null,
      "epid": "26047541878",
      "new_listing": null,
      "bids": null
    },
    {
      "position": 2,
      "id": "127757820251",
      "title": "Single Serve One Cup Coffee Maker K Cup/Grounds, Mini 6-12oz Portable, Black",
      "url": "https://www.ebay.com/itm/127757820251",
      "price": 32.99,
      "currency": "USD",
      "price_raw": "$32.99",
      "rating": null,
      "reviews_count": null,
      "thumbnail": "https://i.ebayimg.com/images/g/ukcAAeSwdVZpK5BX/s-l140.webp",
      "condition": "Brand New",
      "shipping": "+$20.23 delivery",
      "quantity_sold": "169 sold",
      "extracted_quantity_sold": 169,
      "buying_format": "buy_it_now",
      "buying_format_text": "Buy It Now",
      "epid": null,
      "bids": null,
      "old_price": { "raw": "$59.99", "extracted": 59.99, "discount": "$32.99" }
    }
  ]
}
FieldTypeDescription
querystringThe search term the results were fetched for.
pageintegerThe result page returned, starting at 1.
total_resultsintegerNumber of listings parsed on this page.
resultsarrayThe listings on this page, each an object with the fields below.
positionintegerRank of the listing within the result page, starting at 1.
idstringThe eBay item id, parsed from the stable /itm/{id} link.
titlestringThe listing title.
urlstringCanonical /itm/{id} URL for the listing. Feed it straight into the product endpoint.

Use it for

>

Price and market research

Pull a keyword on a schedule and read price, condition, and sold count across the page to see the going rate and demand for a product before you list or buy.
>

Competitor and reseller tracking

Watch how rival listings for the same keyword move on price, buying format, and watchers over time, straight from the results array.
>

Deal and arbitrage sourcing

Scan Buy It Now listings with an old_price markdown or high sold count to surface underpriced inventory worth flipping.
>

Catalog and feed building

Turn a set of keywords into clean rows of id, title, url, price, and thumbnail to seed a comparison site or product feed.

How it compares

Our APIDIY (requests / headless)eBay Browse API
Keyword searchYes, query or full search URLManual fetch and parse per pageRequires an OAuth app and registration
SetupAPI key onlyProxies, headless browser, parsersDeveloper account, app keys, OAuth token
Card fields parsedPrice, condition, shipping, sold, watchers, formatYou write a selector for eachCatalog fields, not the live SERP card
Anti-bot and proxiesBuilt in, geo-awareYou build and maintain itNot applicable
Resilience to markup changeAnchored on /itm/ linksBreaks when eBay renames classesStable, but not the public SERP
Rate limitsBy plan, no OAuth quotaBound by your proxy poolPer-app call quotas and throttling

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

What is an eBay search scraper?

An eBay search scraper is a tool that reads an eBay keyword search and returns each listing as structured data. Our eBay search scraper API takes a keyword or a full search URL and returns the result page as JSON: position, id, title, url, price, currency, condition, shipping, sold count, watchers, buying format, rating, and badges for every listing, from a single request.

How do I scrape eBay search results without writing a parser?

Send one GET request to our ebay/search endpoint with your query and API key. We render nothing you have to manage: we rotate proxies, handle eBay's anti-bot checks, retry on failure, and parse the cards into JSON, so you skip maintaining selectors against eBay's s-card markup, which it renames periodically.

Can I scrape a specific eBay search URL or category?

Yes. Pass a full eBay search URL to the url parameter instead of query and we scrape it exactly as built, including your filters, sort order, or category. That means a link like /sch/i.html with condition, price, or Buy It Now filters already applied comes back parsed the same way a plain keyword search does.

How many results does one call return, and how do I get more?

One call returns a full first page, about 60 listings, because we set eBay's items-per-page to 60 server side rather than the smaller default. To go deeper, pass the page parameter (1 to 100); each value fetches the next page of results. The response echoes the page and total_results so you know how many listings came back.

Does it return the exact price and currency?

Yes. Each listing carries price as a number, price_raw as the exact on-card string, and currency. Discounted items also include an old_price object with the strikethrough list price and discount, and range-priced multi-variation listings return price as a { from, to } object. Note that eBay localises prices to the egress IP's country, so use the domain and country parameters to control which region's pricing you get.

Can I get seller feedback from the search results?

Not from the search endpoint. eBay does not put the seller username, feedback score, or positive percentage in the search-results HTML; those fields only appear on the item page and the seller's store. To get them, take the listing url or the seller and call our ebay/product or ebay/seller endpoint, which read the surfaces that carry that data.

Get search api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints