DEV Community

Marc Andrew
Marc Andrew

Posted on

Bay Marketplace Insights API Alternative (2026): Sold Data Without eBay's Approval

Looking for an eBay Marketplace Insights API alternative? You're in good company. Marketplace Insights is the only official eBay API that returns sold items, and it's a limited release: you apply, you explain your business case, and most of us never hear back or get turned down.

Meanwhile the product you're building still needs sold prices. This post covers what eBay actually offers, why each official route dead-ends, and a working alternative you can call today.

What eBay offers for sold data in 2026

eBay API Sold prices? Can you use it?
Marketplace Insights Yes, about 90 days Limited release, approved partners only
Browse API No, active listings only Yes
Finding API (findCompletedItems) Used to Decommissioned February 2025
Trading / Sell APIs Only your own sales Yes, for your own account
Terapeak (Product Research) Yes Browser dashboard only, no API

So if your app needs other people's sold prices, eBay leaves you with nothing you can call.

The alternative: one GET request

CompSniper is an eBay sold listings API that needs no eBay approval, no developer account and no OAuth dance. Sign up, copy a key, call it.

curl -H "Authorization: Bearer $COMPSNIPER_API_KEY" \
  "https://api.compsniper.com/v1/scrape?keyword=nintendo+switch+oled&count=240&ebaySite=ebay.com"
Enter fullscreen mode Exit fullscreen mode

You get up to 240 sold listings with the sold price, sold date, condition, shipping and seller, plus a summary with the median, quartiles, min, max and average shipping.

How it compares with what Marketplace Insights would give you

Marketplace Insights CompSniper
Access Apply and wait for approval Free key in a minute
Sold history About 90 days Recent sales, plus up to 3 years with /v1/research/sold
Results Up to 10,000 per search, paged Up to 240 per request, more with Max Mode
Price summary Build it yourself Median and range in every response
Wrong matches Raw keyword results Optional AI cleanup removes accessories, parts and wrong models
Best Offer sales Not documented Real accepted price with bestOfferPrice=true
eBay sites Selected marketplaces 8: US, UK, Germany, France, Italy, Spain, Canada, Australia
Other marketplaces No Poshmark, Mercari, TCGplayer, Grailed and more on the same key

On accuracy: in a blind 40-search benchmark, 5.4% of the sales CompSniper returned were the wrong product, against 25.7% to 31.6% for other eBay sold data APIs tested. That matters more than it sounds. Wrong matches (a case, a charger, a different storage size) are exactly what drag a median away from the real price.

Python: recent sold prices

import os
import requests

r = requests.get(
    "https://api.compsniper.com/v1/scrape",
    headers={"Authorization": f"Bearer {os.environ['COMPSNIPER_API_KEY']}"},
    params={"keyword": "nintendo switch oled", "count": 240, "ebaySite": "ebay.com"},
    timeout=90,
)
r.raise_for_status()
data = r.json()

s = data["summary"]
print(f"{s['count']} sales, median {s['median']} {s['currency']}, middle half {s['p25']} to {s['p75']}")
for item in data["items"][:5]:
    print(item["endedAt"], item["soldPrice"], item["condition"], item["title"][:60])
Enter fullscreen mode Exit fullscreen mode

Or pip install compsniper for a ready-made client with retries.

Going past 90 days

This is where you'd hit Marketplace Insights' ceiling even if you were approved. /v1/research/sold returns sold history between any two dates, up to 3 years back:

r = requests.get(
    "https://api.compsniper.com/v1/research/sold",
    headers={"Authorization": f"Bearer {os.environ['COMPSNIPER_API_KEY']}"},
    params={
        "keyword": "nintendo switch oled",
        "startDate": "2023-11-05",
        "endDate": "2026-11-04",
        "sort": "lastSoldDescending",
        "limit": 50,
    },
    timeout=60,
)
r.raise_for_status()
for row in r.json()["results"]:
    print(row["lastSoldDate"], row["soldUnits"], row["averageSoldPrice"]["amount"], row["title"][:60])
Enter fullscreen mode Exit fullscreen mode

Page through with page and hasNextPage. Every plan, free included, gets the full 3 years.

JavaScript (Node 18+)

const params = new URLSearchParams({ keyword: "nintendo switch oled", count: "240", ebaySite: "ebay.co.uk" });
const res = await fetch(`https://api.compsniper.com/v1/scrape?${params}`, {
  headers: { Authorization: `Bearer ${process.env.COMPSNIPER_API_KEY}` },
});
if (!res.ok) throw new Error(`API error ${res.status}`);
const data = await res.json();
console.log(data.summary.median, data.summary.currency); // prices in GBP on ebay.co.uk
Enter fullscreen mode Exit fullscreen mode

Each eBay site returns prices in its own currency: GBP, EUR, CAD, AUD or USD.

Migrating code that expected Marketplace Insights

If you designed around Marketplace Insights' item_sales/search, the mapping is straightforward:

  • q becomes keyword
  • X-EBAY-C-MARKETPLACE-ID: EBAY_GB becomes ebaySite=ebay.co.uk (the eBay IDs like EBAY_GB are accepted too)
  • lastSoldPrice becomes soldPrice, and lastSoldDate becomes endedAt
  • the OAuth client-credentials flow becomes one Authorization: Bearer header

Keep your own interface in front of it (get_sold_listings(keyword, site)), and if eBay ever approves you, swapping the backend is a one-file change.

Try it

Free key at compsniper.com: 100 requests a month, no credit card, and 3-year history included. Docs: API reference and 3-year sold history. Code: ebay-sold-listings-api and ebay-sold-history-api on GitHub.

Did you ever get a reply on a Marketplace Insights application, or did it just sit in the queue like most?

Top comments (0)