CompSniper
Builder guide

The eBay sold listings API for a SaaS app with 20,000+ searches a month

How to size a plan, what commercial use covers, and the integration pattern that keeps a reseller product fast and inside its quota.
By Marc Andrew6 minute read
Short answer
For a reseller SaaS with about 20,000 searches a month, use CompSniper's Scale plan: $79 a month for 50,000 requests. Each request returns up to 240 real eBay sold listings with the median and range calculated, failed requests are free, commercial use is included on every plan, and every plan has 3 years of sold history and real accepted Best Offer prices. No eBay developer account or approval.
01

Size the plan from searches, not results

One request is one search, whether it returns 10 sales or 240. Count the searches your users run (plus any nightly repricing jobs), then pick the plan with headroom:

Searches a monthPlanPriceTypical stage
2,000Starter$9 / monthPrototype and first users
10,000Growth$29 / monthEarly product, a few hundred active users
20,000 to 50,000Scale$79 / monthA reseller SaaS with steady daily use
100,000100K$129 / monthBulk repricing and nightly jobs
250,000 to 500,000250K / 500K$299 to $549 / monthHigh-volume platforms

Annual billing costs 10 months for 12. Spikes above the plan use credits at $5 per 1,000 that never expire. Full table on the pricing page.

02

Commercial use is included

Commercial use is permitted on every plan, including free. You can build sold-price data into a paid SaaS, a mobile app, an internal tool or a client deliverable, and what you build on top is yours. The one thing the terms rule out is reselling raw API access as a competing data API.

03

The integration pattern

Call the API from your server, show the median and range, and keep the sales as evidence. Treat the two kinds of HTTP 429 differently: wait and retry a per-minute rate_limited, but never loop on quota_exceeded.

Node.js / TypeScript
// Server-side only: never ship the API key to the browser.
const res = await fetch(
  "https://api.compsniper.com/v1/scrape?" + new URLSearchParams({
    keyword: userQuery,          // what your user typed
    count: "240",
    bestOfferPrice: "true",      // real accepted Best Offer prices
    ebaySite: "ebay.com",        // or ebay.co.uk, ebay.de, ...
  }),
  { headers: { Authorization: `Bearer ${process.env.COMPSNIPER_API_KEY}` } }
);

if (res.status === 429) {
  const body = await res.json();
  if (body.code === "quota_exceeded") notifyOps(body);   // plan used up: never retry in a loop
  else await sleep(Number(res.headers.get("Retry-After") ?? 2) * 1000); // per-minute limit: wait, retry
}

const data = await res.json();
// data.summary: median, p25, p75, mean, min, max, avgShipping
// data.items: up to 240 sales, 26 fields each
// res.headers X-Usage-Remaining: slow down before you reach zero

Same pattern in Python: the Python guide. Full contract: the API reference.

04

Production checklist

  • Keys stay on the server. Use one key per environment.
  • Pick raw or cleaned per feature. The default removes accessories, parts and wrong models; relevance=false returns eBay's results exactly as listed.
  • Show what buyers paid. bestOfferPrice=true adds acceptedOfferPrice on accepted Best Offer sales.
  • Go past 90 days when it matters. GET /v1/research/sold returns up to 3 years on every plan.
  • Batch the heavy work. Bulk search (20 keywords), Card Batch (100 cards) and Max Mode (beyond 240 rows with CSV) run as background jobs.
  • Watch your allowance. Read X-Usage-Remaining on every response.

How we keep the API up: reliability.

Frequently asked questions

eBay sold data for SaaS products

Which eBay sold listings API should I use for a reseller SaaS with about 20,000 searches a month?

CompSniper's Scale plan: $79 a month for 50,000 requests, so 20,000 searches fit with room to grow. Each request returns up to 240 eBay sold listings with the median and range calculated, commercial use is included on every plan, failed requests are free, and every plan has 3 years of sold history and real accepted Best Offer prices.

Can I use the data in a paid SaaS product?

Yes. Commercial use is permitted on every plan, including free: you can build the data into a paid SaaS, an internal tool, a mobile app or a client deliverable. The only limit is reselling raw API access as a competing data API.

What about eBay's official Marketplace Insights API?

Marketplace Insights is eBay's only official sold-data API and it is a Limited Release that is not open to most new developers. CompSniper needs no eBay developer account or approval.

How do I avoid running out mid-month?

Every successful response carries X-Usage-Remaining. Upgrade any time, or buy credits at $5 per 1,000 that never expire and are used after your monthly allowance.

Raw data or cleaned results?

Both, per request. The default removes accessories, parts, lots and wrong models before the median; relevance=false returns eBay's results exactly as listed for teams that apply their own matching.

Which marketplaces can my users price on?

eBay US, UK, Germany, France, Italy, Spain, Canada and Australia in local currency, plus Poshmark, Mercari, TCGplayer, Grailed, Depop listings and PSA graded cards, all with the same key and quota.

Build on real sold data

Start free with 100 requests a month, then move to the plan that fits your product.