Make a sold-listings request for ebay.co.uk
Get a free CompSniper API key and set the full cs_live_ value as COMPSNIPER_API_KEY on your backend or in your terminal. Use the same API key for the UK as for other supported eBay sites.
The request below selects used items, sold listings and the recently ended sort order. count=5 keeps the first result easy to inspect. Your server does not need to be located in the UK: marketplace selection is explicit in the query.
curl --get --fail-with-body --max-time 75 "https://api.compsniper.com/v1/scrape" \
--header "Authorization: Bearer $COMPSNIPER_API_KEY" \
--data-urlencode 'keyword=Dyson V8' \
--data-urlencode 'ebaySite=ebay.co.uk' \
--data-urlencode 'count=5' \
--data-urlencode 'itemCondition=used' \
--data-urlencode 'sortOrder=endedRecently' \
--data-urlencode 'sold=true'In Postman, choose GET, set Authorization to Bearer Token and enter your key. Add keyword=Dyson V8 and ebaySite=ebay.co.uk, plus the other options, under Params. Do not put the keyword in Headers, and do not omit the marketplace unless you intend to search the default ebay.com site.
A real UK sold-listing response
We ran the request above on . It returned HTTP 200 and five listings. This excerpt shows selected fields from one of those five rows; the other rows and top-level fields are omitted. Values are unchanged.
{
"keyword": "Dyson V8",
"totalItems": 5,
"items": [
{
"itemId": "267785160831",
"title": "Dyson V8 advance Cordless Vacuum",
"condition": "Pre-owned",
"conditionId": 3000,
"soldPrice": "74.49",
"soldCurrency": "GBP",
"shippingPrice": null,
"shippingCurrency": null,
"shippingType": "unknown",
"totalPrice": "74.49",
"endedAt": "2026-09-21",
"scrapedAt": "2026-09-22T05:47:53.002680+00:00",
"itemLocation": null,
"sellerType": null,
"bestOfferAccepted": null,
"url": "https://www.ebay.co.uk/itm/267785160831?nordt=true"
}
]
}endedAt is the reported sale date; scrapedAt is the collection timestamp. Repeating the request can return different listings. totalItems: 5 describes the original response, not the one-row excerpt.
The selected Dyson V8 row reports GBP 74.49, condition Pre-owned and a sale date of September 21, 2026. The five-row sample contained different variants and descriptions, so its prices should not be treated as interchangeable valuations for every Dyson V8.
Separate the GBP item price from postage
Use soldCurrency to identify GBP rather than hardcoding a pound sign onto every number. Keep decimal strings such as "74.49" intact for storage, or convert to an exact money representation before calculations. A GBP price and an AUD price must not go into the same median as raw numbers.
In this UK sample, all five listings had unknown postage. The selected row returns shippingPrice: null and shippingType: "unknown", even though totalPrice is populated with the item price. Show “Postage unknown” instead of “Free postage” or “Delivered price £74.49”.
eBay's UK postage guidance explains where delivery costs and options appear and distinguishes free-postage searches from items available to collect. If you compare a bulky vacuum with a collection-only listing, keep that delivery difference visible rather than treating the cheaper item price as automatically better.
Compare like-for-like used Dyson V8 listings
A model name alone is not a complete product specification. For this search, check whether the listing contains a working vacuum, a main body only, a replacement battery or a package with several tools. Compare equivalent accessories and condition before relying on a sold-price summary.
- Condition:
itemCondition=usedis a broad filter. It does not verify battery runtime, cosmetic wear or that the charger is included. - Refurbishment: one returned title described the item as reconditioned while the condition field was Pre-owned. Read both fields instead of assuming a used filter eliminates every refurbished description.
- Seller type: the documented private/business filter is not supported on ebay.co.uk. It cannot be used to partition UK sold comps.
- Offers: an accepted Best Offer marker does not disclose the hidden accepted amount. Keep that limitation with any estimate that needs exact transaction prices.
The standard request can include optional relevance cleanup to help remove mismatches, but always inspect the returned items. This five-listing integration example is not a UK-wide price study or a guarantee of a resale price.
Read GBP sold comps in Node.js
Run this on Node.js 20 or newer with COMPSNIPER_API_KEY set. It makes the same request and keeps unknown postage explicit. Save it as an .mjs file so the top-level await works.
// Node.js 20+. Keep the API key on your backend.
const params = new URLSearchParams({
"keyword": "Dyson V8",
"ebaySite": "ebay.co.uk",
"count": "5",
"itemCondition": "used",
"sortOrder": "endedRecently",
"sold": "true"
});
const response = await fetch(
"https://api.compsniper.com/v1/scrape?" + params,
{
headers: { Authorization: "Bearer " + process.env.COMPSNIPER_API_KEY },
signal: AbortSignal.timeout(75_000),
},
);
if (!response.ok) throw new Error("CompSniper HTTP " + response.status);
const data = await response.json();
for (const item of data.items ?? []) {
if (item.soldCurrency !== "GBP") continue;
const postage = item.shippingType === "free"
? "Free postage"
: item.shippingPrice != null && item.shippingCurrency === "GBP"
? "GBP " + item.shippingPrice
: "Postage unknown";
console.log(item.title, "GBP " + item.soldPrice, postage, item.endedAt);
}
A failed HTTP response stops the example instead of being silently treated as an empty result. A successful empty items array simply produces no listing lines. The JavaScript and TypeScript guide adds typed responses and bounded retry handling.
Expand the sample without changing its meaning
Once the small example works, request more rows with count, up to 240. Filters and available matches can produce fewer results. Use the response's pagination fields rather than assuming that one call contains every UK sale.
Keep marketplace, currency, condition and collection date with each batch. Use the reported endedAt date as a date; do not invent a time of sale that is absent from the field. The recent sold-search endpoint is not a complete long-term archive.
If you receive a rate limit, follow Retry-After and use a bounded retry policy. Quota exhaustion needs allowance or plan action, not repeated calls. See the error reference for the distinction. Failed searches do not consume the successful-search allowance.
Common questions about eBay UK sold listings
How do I get eBay UK sold listings with an API?
Use CompSniper GET /v1/scrape with a keyword and ebaySite=ebay.co.uk. Authenticate with your CompSniper Bearer API key. The response contains sold comps with prices, currency, condition and sale dates, plus a price summary.
Does ebaySite=ebay.co.uk return GBP prices?
The September 22 UK example returned GBP in every soldCurrency field. Read the currency in each row rather than assuming it. These observations apply to the recent /v1/scrape endpoint, not a guarantee about every separate historical-data workflow.
Can I retrieve only used UK items?
Set itemCondition=used. The recorded Dyson search returned Pre-owned with conditionId 3000. This is a broad condition filter, not proof that every item has the same wear, battery health, accessories or refurbishment history.
Does a missing postage price mean collection only?
No. shippingPrice=null and shippingType=unknown establish neither free delivery nor collection-only availability. Inspect the original listing if available. Do not infer a delivery method from a missing field.
Can I filter UK results by private or business seller?
CompSniper's documented sellerType filter applies to ebay.de, ebay.fr, ebay.it and ebay.es, not ebay.co.uk. Do not rely on sellerType=private to separate UK sellers; the filter is ignored on unsupported marketplaces.
Can I export eBay UK sold comps to Excel?
Yes. Select the UK marketplace in the CompSniper dashboard, run the search and export the loaded results to CSV. Keep the currency column and item IDs intact when importing into Excel or Google Sheets.
Continue your integration
Keep each marketplace and currency attached to its own sold comps. These guides use the same endpoint and API key:
- How to Get eBay Australia Sold Listings with an API
- How to Get eBay Germany Sold Listings with an API
For the full contract, see the API reference. The eBay sold listings API overview covers the product, and the CSV and Excel guide covers spreadsheet exports.
Written by the CompSniper team. The September 22 examples are dated observations, not current valuations or evidence of complete market coverage. CompSniper is an independent service, not an official eBay API.