eBay Sold Items by Image & Keyword
Pricing
from $2.00 / 1,000 results
eBay Sold Items by Image & Keyword
Search eBay sold listings by PHOTO or by keyword. Upload an image and CLIP visual similarity finds matching sold items. Returns USD prices, sold dates, condition, and seller info, plus a median/avg price summary. Ideal for pricing research, reselling, and collectibles valuation.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Scrapelab Max
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 hours ago
Last modified
Categories
Share
Snap a photo, get sold comps. Give this actor a picture of an item (or a keyword, or both) and it returns actually-sold eBay listings — not active asking prices — ranked by how visually similar each sold item's photo is to yours, using a CLIP vision model baked into the actor image. Resellers use it to answer "what did this actually sell for?" in seconds, without opening a browser or manually filtering eBay's "Sold" search.
What it does
- Searches eBay's sold/completed listings (
LH_Sold=1&LH_Complete=1) by keyword, by a reference image via eBay's reverse-image search, or both. - When an image is provided, every candidate's thumbnail is embedded with a
CLIP vision model (
Xenova/clip-vit-base-patch32) and scored against your image by cosine similarity; only items at or abovesimilarityThresholdare returned, best match first. - Keyword-only runs stream matching sold listings as they're found, no scoring step.
- Every run also pushes one free
type: "summary"record with price statistics (median, average, min/max, auction vs. buy-it-now counts, sold date range) for whatever it returned. maxItemsis a hard cap on results — and on cost.
Input examples
Keyword only — every matching sold listing, no image scoring:
{"keyword": "rtx 3080","maxItems": 200}
Image only — sold comps for a photo, ranked by CLIP similarity:
{"imageUrl": "https://i.ebayimg.com/images/g/abcAAOSwexampleId/s-l300.jpg","maxItems": 100}
(imageBase64 also works in place of imageUrl — base64-encode the image,
up to 3 MB — for uploading a photo directly instead of linking one.)
Image + keyword — narrows discovery with the keyword, still ranks by image similarity; this is the recommended combination when you know roughly what the item is:
{"imageUrl": "https://i.ebayimg.com/images/g/abcAAOSwexampleId/s-l300.jpg","keyword": "nintendo switch oled console","similarityThreshold": 0.65,"maxItems": 150}
similarityThreshold (0–1, default 0.65) is the minimum CLIP cosine
score a sold item's photo must reach to be kept. Other inputs —
minPrice, maxPrice, condition (any / new / used / refurbished),
categoryId, daysBack (1–90, default 90), marketplace (ebay.com only
in v1), proxyConfiguration — are documented inline in the input form.
Output sample
One soldItem record per matched listing:
{"type": "soldItem","itemId": "126789012345","title": "Nintendo Switch OLED White Console - Excellent Condition","url": "https://www.ebay.com/itm/126789012345","soldPrice": 249.99,"currency": "USD","totalPrice": 259.99,"soldDate": "2026-08-03","condition": "Pre-Owned","listingType": "buyItNow","bidsCount": null,"sellerUsername": null,"sellerFeedback": null,"shippingPrice": 10.0,"imageUrl": "https://i.ebayimg.com/images/g/abcAAOSwexampleId/s-l300.jpg","similarityScore": 0.87,"matchedBy": ["image", "keyword"]}
Plus exactly one free summary record per run:
{"type": "summary","query": { "keyword": "nintendo switch oled console", "imageProvided": true },"resultCount": 42,"medianPrice": 245.0,"avgPrice": 251.32,"minPrice": 180.0,"maxPrice": 310.0,"auctionCount": 6,"buyItNowCount": 36,"earliestSoldDate": "2026-05-12","latestSoldDate": "2026-08-09","droppedBelowThreshold": 58,"droppedOverBudget": 0,"droppedByFilters": 3}
Use the Sold items dataset view for a table of just the sold listings (with inline thumbnails); the summary record isn't part of that view's columns and shows up as a blank row there — see Limitations.
sellerUsername and sellerFeedback are always null: eBay's sold search
results cards don't expose seller identity, only the item detail page does,
and this actor doesn't fetch detail pages.
Pricing
Pay-per-event:
| Event | Price | When it's charged |
|---|---|---|
| Sold listing | $1.50 / 1,000 items | Keyword-only match pushed to the dataset |
| Similarity-scored sold listing | $4.50 / 1,000 items | Image-matched item pushed to the dataset (CLIP-scored) |
| Run summary | Free | Always, once per run |
You are only charged for items actually pushed to the dataset — maxItems
is a hard ceiling on both result count and spend. See Limitations below
for scored-run cost mechanics that aren't captured by these per-item prices.
Limitations — verified
- ~90-day sold window. eBay's sold/completed listings search only goes back roughly 90 days; there's no way to query further into the past.
daysBackfilters after parsing, not before crawling. Listings older thandaysBackare dropped once parsed, but the search pages that contain them are still crawled first — a tightdaysBackdoes not reduce crawl volume or proxy traffic, only which parsed items make it into the dataset.- Best Offer amounts are masked by eBay. For
bestOfferlistings, the price on the sold-search card is the listed asking price, not the negotiated accepted price — eBay does not expose the actual sale amount for Best-Offer sales on this page. ebay.comonly in v1. Other eBay marketplaces aren't supported yet.- The image-search endpoint is unofficial (reverse-engineered from
eBay's front-end bundle, not a published API) and can change without
notice. If it breaks: an image+keyword run automatically falls back to
keyword discovery with CLIP scoring on the results (you still get scored
matches, just found via keyword instead of eBay's visual search); an
image-only run has no keyword to fall back to and fails with
EBAY_IMAGE_SEARCH_UNAVAILABLE. - Scored runs (image provided) download up to ~1,000 candidate
thumbnails before any billable result is pushed. The candidate budget is
min(1000, max(3 × maxItems, 150))— every one of those thumbnails is downloaded and run through CLIP before results are ranked and the top matches are pushed and charged. Those thumbnail downloads go directly to eBay's image CDN (i.ebayimg.com), not over the residential proxy, so they add run time and CDN-side rate-limit exposure rather than proxy cost — but they are still work the run pays for even though only the final, above-threshold items are billed as dataset events. - CLIP cold start is ~2–5 seconds even though the model is baked into the Docker image (no network download at runtime) — it still has to load into memory on the first image-scoring call of a run.
- 2048 MB memory is recommended (and set as this actor's default) to keep CLIP inference and the crawler comfortably inside their memory budget; lower memory settings may work for keyword-only runs but are more likely to be tight on image-scored runs.