eBay Sold Listings Comps AI: Price Checker & Max Buy Price avatar

eBay Sold Listings Comps AI: Price Checker & Max Buy Price

Pricing

from $5.00 / 1,000 clean comp (rules only)s

Go to Apify Store
eBay Sold Listings Comps AI: Price Checker & Max Buy Price

eBay Sold Listings Comps AI: Price Checker & Max Buy Price

First 25 comps free. eBay sold listings cleaned into exact-match comps: for-parts, lots, accessories and outliers removed, AI-matched to your item, plus the median and max buy price. Pay per clean comp, junk never charged. Free demo on any plan; live search runs on your own Apify account.

Pricing

from $5.00 / 1,000 clean comp (rules only)s

Rating

0.0

(0)

Developer

Rich Minds

Rich Minds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Clean eBay sold comps and a max buy price for your exact item, every week.

⚡ First 25 comps free · 💵 $0.005 per clean comp · 🤖 $0.01 with the AI match check · ⏱️ demo in seconds

One row per clean eBay sold comp — price, condition, sale date, % vs the condition median and the match score

Try it in 30 seconds. Click Try it — the form is pre-filled with 16 sample sold listings of a Nintendo Switch OLED. Your first 25 clean comps are free, and junk sales are never charged. → What a run costs · What the AI adds · Run it weekly

⚡ At a glance

What you geteBay sold comps that match your exact item + a price report: median, band, sales per day, trend, list and max buy price
You providethe item as a keyword, e.g. iphone 13 pro 128gb (1–6 per run)
Typical run100 sold rows → ≈ 56 clean comps, ≈ 2 min (estimate — the demo keeps 9 of 16)
Cost of that run$0.68 rules only ($0.40 source + 56 × $0.005) · $0.95 with the AI check (42 AI-checked × $0.01, ≈ $0.06 tokens)
Keys / setupNo API key where your Apify plan includes model access — otherwise your own Gemini / Groq key (llmProvider: byok)
Free tierfirst 25 clean comps per account
Works withSchedules, e-mail digest, webhooks, Google Sheets, Slack, Make / n8n / Zapier, MCP & AI agents

🎯 What this Actor does

It runs eBay Sold Listings Search (caffein.dev/ebay-sold-listings) on your account, drops every sale that would skew your comps and prices the cleaned rest — resale price research without the spreadsheet:

  • Junk out before the math — "for parts", "box only", cases and other accessories, "lot of 3", replicas: removed in 5 languages across the 8 eBay sites, never charged.
  • Your exact item, not its cousin — the 13 Pro Max stays out of 13 Pro comps, 256 GB out of 128 GB, a PSA 9 out of PSA 10 card comps; the AI checks borderline sales against your own words.
  • Honest prices — Best-Offer rows carry eBay's asking price, so they stay out of the median; so do price ranges, other currencies and outliers.
  • Only new sales on re-runs — cross-run memory; the report still uses every clean sale.

📉 The price report — eBay comps summed up per keyword

PRICE_REPORT — free with 10+ comps of the keyword in the run, else $0.03 per report; the demo run's record, whole:

{"generatedAt": "2026-09-27T08:00:00+00:00", "demo": true, "reports": [
{"keyword": "nintendo switch oled", "stats": {"n": 8, "median": 232.0}, "byCondition": {"used": {"median": 219.0}},
"byGrade": null, "salesPerDay": 0.3, "trendPct": 4.3, "suggestedListPrice": 224.0, "maxBuyPrice": 194.32,
"confidence": "C", "chargedEvent": null}]}

maxBuyPrice = list price × (1 − feeRatePct) − shippingCost − targetProfit, in the site's currency (resaleMath.currency) — your bid limit. Graded cards get byGrade: PSA 10, PSA 9 and raw never share a median.

🚀 How to use it

  1. Click Try it — the form runs the free demo on 16 sample sold listings; it works as is.
  2. Type your item into keywords (e.g. iphone 13 pro 128gb) — that switches the source to the live eBay search on your account. Describe it in itemDescription, leave enableAi on: your first 25 comps show the AI check free.
  3. Press Start — best matches first; the status says the median.
  4. Schedule it weekly (Actions → Schedule) with your address in notifyEmail — only new sales are charged.

The comps sheet — unit price, Buy It Now vs auction, Best-Offer asking prices, condition median, cheap-sale flag, defects

📚 Learn more: Step-by-step tutorial — ebay sold comps without the junk

🆚 Why this instead of an eBay Sold Listings Scraper?

eBay Sold Listings Search (caffein.dev/ebay-sold-listings)This Actor
Price$0.004 per row + $0.00005 start · 729 users / 30 days$0.005 per clean comp ($0.01 AI-checked), first 25 free
What you pay forevery sold row, parts and lots includedclean comps only — junk and repeats cost $0
Same 100 comps, all in$0.72 for ≈ 180 unsorted rows + your spreadsheet hour100 matched comps + report: $0.50 here + $0.72 source you pay either way = $1.22 rules only · ≈ $1.71 with the AI check · junk costs $0
Statisticsnone; Best-Offer asking prices count as salesmedian, band, trend, list and max buy price

The direct eBay comps rivals (Store, 2026-09-27) — 100 clean comps, like for like (≈ 180 raw rows):

ActorUsers / 30 dFailPricing100 clean comps, all in
This Actor (eBay Sold Listings Comps AI)new0 %$0.005 / clean comp, $0.01 AI-checked, 25 free$1.22 rules · $1.71 AI (source included)
midwest_united/ebay-sold-comps36.5 %$0.02 / comp + $0.10 / report$2.10
marielise.dev/ebay-sold-listings-intelligence132.0 %$0.025 per row$2.50
xtracto/ebay-sold-comps-scraper55.1 %$0.03 per row + $0.005 start$3.01
khadinakbar/ebay-sold-comps-analytics-scraper38.7 %$0.005 / raw item + $0.05 / report$0.95 for 180 raw rows + your cleanup
memo23/ebay-search-scraper-ppe2212.0 %$0.005 / raw row + $0.02 summary + $0.02 start$0.94 for 180 raw rows + your cleanup

💸 A Terapeak alternative and a ZIK Analytics alternative

ToolCostLacksWhere it wins
Terapeak (eBay Seller Hub)freeAPI, schedule, alerts, lot / variant cleanup, max buy price — one manual search at a time3 years of eBay data, active-listing counts
130pointfreethe same, and no medianaccepted Best-Offer prices (cards) — eBay's sold data shows the asking price
ZIK Analytics PRO$39.9 / month (pricing, checked 2026-09-27)a seat, manual lookupsproduct research beyond comps

A weekly 5-item watchlist here: ≈ $7 / month rules only, ≈ $10 with the AI check.

💵 Pricing — what a run really costs

EventWhen it is chargedPrice
free-tieryour first 25 clean comps, any mode$0.00
qualified-comp-basica clean comp scored by the rules (AI off, or a clear match the AI skipped)$0.005
qualified-comp-aia clean comp the AI checked: verdict, attributes, defects$0.01
price-reporta keyword's PRICE_REPORT when fewer than 10 of its comps are delivered in the run (free with 10+)$0.03

One free tier: when the AI is unavailable, rule-scored comps use your 25 free comps too, except the last 5, kept so you still see the AI tier free.

Never charged: rejected rows (counted per reason in OUTPUT.rejected), sales you already received, the demo, the digest. Platform compute is included.

How that compares — 1.33× the $0.00375 median of the Store's "ebay sold listings" Actors, which bill raw rows; one clean comp replaces 1.8 raw rows ($0.0068) plus the cleanup. Comps rivals charge $0.02–0.03: 4–6× more.

Worked example — 1 keyword × 100 sold rows: $0.40 source on your account → 56 clean comps. AI off: 56 × $0.005 → $0.68 (≈ $0.012 for each clean comp). AI on: 42 used / borderline comps × $0.01 + 14 × $0.005 + ≈ $0.06 tokens → $0.95 (≈ $0.017 each). Your first 25 comps are free.

AI tier, all in: ≈ $0.0114 per AI-checked comp ($0.01 + ≈ $0.0014 tokens, estimate) — 2.3× the basic comp.

🤖 What the AI tier adds

The AI reads item specifics and the seller's text against your item. The same comp, AI off (the demo run):

{"title": "Nintendo Switch OLED 64GB Neon Red/Blue - Tested, Works Great", "unitPrice": 211.5, "score": 95,
"attributes": {"model": null, "storage": null, "color": null}, "aiAssessment": {"verdict": null}}

AI on (qualified-comp-ai) — the AI example run on 2026-09-27 with an own Groq key, checked against "Nintendo Switch OLED console with dock and Joy-Cons, working, any colour":

{"title": "Nintendo Switch OLED 64GB Neon Red/Blue - Tested, Works Great", "unitPrice": 211.5, "score": 85,
"attributes": {"brand": "Nintendo", "model": "Switch OLED", "storage": "64GB", "color": "Neon Red/Blue"},
"aiAssessment": {"verdict": "exact", "confidence": 0.85, "severity": "none", "model": "groq:openai/gpt-oss-120b",
"reason": "Title matches Nintendo Switch OLED 64GB Neon Red/Blue, the same console model and storage."}}

With Apify's model access it runs on anthropic/claude-haiku-4.5; without it, the demo shows these verdicts labelled aiModel: "sample", never charged. It saves opening each borderline listing (20–30 s each).

⚙️ Input

FieldDefaultWhat it does
keywords—1–6 eBay searches, one report each; typing one starts the live search
sourceModeactorlive search · dataset · list. With nothing to search — {} over the API — the free demo runs: nothing charged, the source Actor is never started
minScore70The match a comp needs — the field that decides what you pay
itemDescription—Your exact item in words, for the AI check
maxQualified200Cap on comps delivered and charged; the report uses all (under 10 comps: $0.03 per report)
maxDiscoveryChargeUsd0.5Caps the eBay search's cost ($0.004 per row)
enableAitrueAI match check on borderline / used comps
mustInclude / mustExclude—Title terms, number-aware (128gb = "128 GB")
keepConditionsnew, open_box, refurbished, usedConditions that count
lotHandling / bestOfferHandlingexclude / excludeFromStatsLots: exclude · normalize · include; Best Offer: out of stats · include · drop
ebaySite / daysToScrape / maxSoldPerKeywordebay.com / 30 / 100Where and how far back
feeRatePct / shippingCost / targetProfit13.25 / 0 / 0The max-buy-price math, in the site's currency (the 0.1 names shippingCostUsd / targetProfitUsd still work)
alertOnly / alertMedianMovePctfalse / 10E-mail / Slack / Discord only on a sale under your max buy price or a median move

The rest — outlierIqrK, categoryId, minPrice / maxPrice, targetFlags, suppressionList, the model, webhookHeaders, dedupeStoreName (one per client) — is in the Input tab.

Flags

Names for targetFlags (belowP25 works too) — only comps with one are delivered; an unknown name stops the run.

📤 Output

One dataset item per new clean comp — the demo row from above:

{"itemId": "300000000010", "url": "https://www.ebay.com/itm/300000000010", "keyword": "nintendo switch oled",
"title": "Nintendo Switch OLED Console Neon - minor scratches on screen", "conditionBucket": "used",
"endedAt": "2026-09-16", "unitPrice": 199.0, "currency": "USD", "matchVerdict": "exact",
"bucketMedian": 219.0, "priceVsMedianPct": -9.1, "isBelowP25": true, "score": 95, "label": "hot",
"suggestedPriceNote": "Sold 199.00 USD on 2026-09-16 (used) — 9.1 % below the 219.00 USD used median.",
"chargedEvent": "demo", "dedupeKey": "ebay:ebay.com:300000000010"}

Upsert key: dedupeKey — ebay:<site>:<itemId>, the key of the cross-run memory; itemId is eBay's item number.

Views: Shortlist, Comps sheet (CSV), AI match check. Next to OUTPUT: PRICE_REPORT (generatedAt, demo, reports — one per keyword), a DIGEST (what changed since the last run — OUTPUT.trend) and a client-ready REPORT page. Outcomes: Run outcomes; AI-on runs say "N AI-assessed (model; D delivered, R rejected), M rule-scored (reasons)" — OUTPUT.aiCoverage, the reasons add up.

⭐ Found it useful? A review on the Store helps others find it — it takes a minute on the Actor's page.

🔁 Run it weekly

  1. Actions → Save as a new task → Schedule after a real run (input: OUTPUT.scheduleInput), with notifyEmail — every run mails the median per keyword and its change vs the last run, then the new comps.
  2. Keep dedupeAcrossRuns: true — the next run charges only new sales; the report still uses every clean one. Each run adds to the price history of the search: OUTPUT.history, a median-per-run chart on the REPORT page and a sparkline in the digest.
  3. slackWebhookUrl / discordWebhookUrl post the same digest. Deal alerts: alertOnly: true posts only when a new sale lands under your max buy price or a median moves ≥ alertMedianMovePct (10 %) — OUTPUT.alerts.
  4. Into a sheet: import the docs/img/n8n-weekly-comps.json (Monday → run → Google Sheet upsert on dedupeKey → Slack) and the Sheets template; or webhookUrl per comp.

Weekly cost of 5 items (daysToScrape: 7, maxSoldPerKeyword: 50, maxDiscoveryChargeUsd: 1): $1.00 source → ≈ 135 new comps = $0.68 → ≈ $1.68 / week rules only, ≈ $2.32 with the AI check (estimates).

🎯 Try it for your niche

NicheWhat it looks forInput
Console flipperthree consoles, lots normalized, shipping + profitdocs/img/preset-console-flipper.json
Phone resellerexact storage, no Max / Mini / Plusdocs/img/preset-phone-reseller.json
Card collectorone graded card, 90 days, deal alertsdocs/img/preset-card-collector.json

Paste one into the Input tab's JSON view, add notifyEmail, press Start.

🔌 Integrations, automation and API

  • Webhook — each new comp, then one comps.report per keyword (payloads below); a failed POST never fails the run.
  • Google Sheets / Slack — the Integrations tab. Discord — discordWebhookUrl, or a /comps <item> bot for your group (docs/marketing/kit/integrations.md#discord-comps-bot).
  • AI agents / MCP — plain typed fields. First call = the free trial: {} runs the free demo.

Use it from Claude, ChatGPT or any MCP client:

{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?actors=rich_minds/ebay-sold-comps-ai"}}}

Then ask: "Run ebay-sold-comps-ai with no input (free demo), then price iphone 13 pro 128gb with maxDiscoveryChargeUsd: 0.5 — median and max buy price?"

List-mode rows — what a pasted record needs

list and dataset mode run on any plan, with rows of any eBay sold scraper.

Run outcomes — what your integration sees

👥 Who is it for?

You are…You run it to…Start with
A reseller / flipperknow what this exact item sells for and the most you can paykeywords + targetProfit, shippingCost
An eBay seller pricing inventorylist at the price that sells in your conditionkeywords + keepConditions: ["used"]
A consignment shop / agencya price band per client item, one memory per clientkeywords + dedupeStoreName + the REPORT link
A collectibles buyera weekly watchlist that pings on a dealdaysToScrape: 90 + alertOnly + notifyEmail

🧠 How the AI works

  • Grounded, not generative. One listing → a typed verdict (exact / variant / accessory / parts / lot / unrelated), confidence, attributes, defects — each a substring of the listing, else dropped. The model never writes a price.
  • Tokens only where they matter: borderline sales (rule score 40–90) and used / open-box matches, best first.
  • Model: anthropic/claude-haiku-4.5 via Apify's model access, or llmProvider: "byok". Fallback: a model error keeps the rule score, verdict and defect lexicon.

🔒 Data, compliance and limits

  • Public sold listings only, fetched on your account; no login; not affiliated with eBay. 8 sites, 1–6 keywords, up to 90 days, one currency per report. Keep your use within eBay's terms and GDPR / CCPA.

❓ FAQ

What will my first real search cost? At most $0.50 on the eBay search (1 keyword × 100 rows = $0.40), then ≈ 56 clean comps — 25 free, the rest $0.005 ($0.01 AI-checked).

Is this an eBay sold listings search or an eBay sold listings scraper? Both: it runs eBay Sold Listings Search on your account and adds the cleanup, the match check and the price report; rows of any eBay sold listings scraper work in dataset / list mode.

What is the eBay sold price of my item — is this an eBay price checker? Yes: the status and PRICE_REPORT give the median per condition, the list price and the max buy price, built on clean comps only.

Are these eBay sold comps good reseller comps for flipping? Yes — only exact matches, per condition, with sell-through and trend; set targetProfit and the max buy price is your bid limit.

Why pay when Terapeak or 130point is free — and how is this different from ZIK Analytics? Terapeak and 130point are free, manual, one search at a time — no API, schedule, alerts, lot / variant cleanup or max buy price; 130point wins on accepted Best-Offer prices, which eBay's sold data (and this Actor) cannot see. ZIK Analytics PRO is $39.9 / month; a weekly 5-item watchlist here is ≈ $7 / month rules only, in your own sheet.

How long does a run take? Demo: 0.1 s for 16 rows (measured, OUTPUT.timing). Live: the source run (≈ 1–2 min per 100 rows) + ≈ 1 s per AI-checked comp with Apify's model access (estimates). Own key (llmProvider: byok): 2 calls at a time, one after a rate limit, AI stops after 2 min of waiting (OUTPUT.timing.aiBackoffSecs); a free-tier key checked 2 of 9 comps in 103 s (measured) — expect 1–3 AI checks per run, a second pass retries the borderline comps one at a time; a paid Groq / Gemini key checks every comp. Worst case with a slow own key: ≈ 25 min per 100 borderline comps, stopped before the run's own timeout (3600 s) — pass timeoutSecs 3600 to .call().

Which Apify plan do I need? Any plan runs the demo and dataset / list mode; the live search runs a Store Actor and the built-in AI uses Apify's model access — without them, use list mode and your own key.

🧩 More Actors from the same developer

Not quite your use case? The same pay-per-qualified-result model, for the same e-commerce buyers:

🆘 Support

Something missing or wrong? Open an issue on the Actor's page or message the developer through the Apify Console — requests from buyers are shipped first.

📝 Changelog

One line per published build, newest first. Next: a deal finder (live listings under your max buy price), a batched AI check, bulk SKUs.

  • 0.3.2 (2026-09-27) — 2026-09-26.md — M-01.
  • 0.3.1 (2026-09-27) — card grades (grade, byGrade); price history; Discord digest; price-report $0.03 under 10 comps; an AI second pass for rate-limited own keys.
  • 0.2.1 (2026-09-27) — deal alerts (alertOnly); sample AI verdicts on every plan; shippingCost / targetProfit; matchScore dropped, use score; OUTPUT.sourceStatus.
  • 0.1.1 (2026-09-26) — first public release — clean eBay sold comps, the free price report and the AI match check.