CompSniper
3 years on every plan, 8 eBay sites

3 years of eBay sold prices, free plan included.

Use GET /v1/research/sold to get up to 3 years of eBay sold price history by keyword: listing-level rows with sold price, units sold, average price, shipping and last sold date, on all 8 eBay sites. It works on every CompSniper plan, including the free plan, with the same API key you use for recent sold comps.

Reviewed by Marc Andrew, owner of CompSniper. Updated October 14, 2026.

curl --fail-with-body \
  -H "Authorization: Bearer $COMPSNIPER_API_KEY" \
  "https://api.compsniper.com/v1/research/sold?keyword=nintendo+switch+oled&startDate=2023-10-11&endDate=2026-10-10&sort=lastSoldDescending&limit=50"
Endpoint
GET /v1/research/sold
Results per page
Up to 50 rows per page, up to 200 pages
Coverage
eBay US, UK, DE, FR, IT, ES, CA, AU
What the API provides

Marketplace evidence without building another scraper

Three years, not three months

Any start date from 3 years ago to today. Price slow movers, see seasonal swings, and measure what happened after a release or a price drop.

Free plan included

No plan gate on history. Test multi-year trends on the free plan, then scale on the same key and quota.

Pairs with live comps

Use /v1/research/sold for the trend and /v1/scrape for the latest individual sales with full fields, AI cleanup and real accepted Best Offer prices.

Request filters

Start with a keyword, then narrow the page

Authentication uses the same CompSniper API key as every other endpoint. No eBay developer account, approval or seller subscription is required.

ParameterAccepted valuesDefault
keyword1 to 200 characters; every word must matchRequired
startDateYYYY-MM-DD, up to 3 years agoRequired
endDateYYYY-MM-DD, on or after startDate, up to todayRequired
ebaySiteebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.auebay.com
sortlastSoldDescending or quantityAscendingquantityAscending
limit10, 20 or 50 rows50
page1 to 2001
singleUnitOnlytrue for one-unit listings onlyfalse
Response

Stable JSON with native fields

Every successful sold page includes a deterministic median, average, p25 to p75 range, and sample size calculated from the returned prices.

Response
{
  "ebaySite": "ebay.com",
  "displayCurrency": "USD",
  "startDate": "2023-10-11",
  "endDate": "2026-10-10",
  "page": 1,
  "limit": 50,
  "resultCount": 50,
  "hasNextPage": true,
  "nextPage": 2,
  "results": [
    {
      "itemId": "267809186741",
      "title": "Nintendo Switch OLED Console White Joy-Con Dock AC Adapter + 2 Games Included!",
      "itemUrl": "https://www.ebay.com/itm/267809186741",
      "recordType": "single_unit_listing",
      "soldUnits": 1,
      "averageSoldPrice": { "amount": "184.00", "currency": "USD" },
      "averageShipping": { "amount": "10.00", "currency": "USD" },
      "soldPrice": { "amount": "184.00", "currency": "USD" },
      "soldDate": "2026-10-09",
      "lastSoldDate": "2026-10-09",
      "listingFormat": "Fixed price"
    }
  ]
}
Returned fields

The data needed for pricing workflows

  • Item ID, title, listing URL and image
  • Sold price and sold date for single-unit listings
  • Units sold, average sold price and total sales for multi-unit listings
  • Average shipping
  • Last sold date
  • Listing format (auction or fixed price)
  • Paging: resultCount, hasNextPage, nextPage
  • Prices in US dollars on every eBay site
Common workflows

Built for resale tools and repeatable research

Trend charts

Plot median sold price by month or quarter to show buyers and sellers where a product is heading.

Slow movers and collectibles

Find comps for items that sell a few times a year, where a 90-day window often has none.

Backtesting and models

Feed years of real sold prices into pricing rules, forecasting or resale-value models.

FAQ

eBay API questions

Is there an API for eBay price history?+

eBay's own sold data APIs stop at about 90 days, and Marketplace Insights is closed to new developers. CompSniper's GET /v1/research/sold returns up to 3 years of eBay sold history by keyword, on all 8 eBay sites, with one API key and no eBay developer account.

Is the 3-year history included on the free plan?+

Yes. Every plan, including the free plan with 100 requests a month, can query the full 3 years. Each page of up to 50 rows is one request.

How is this different from the standard sold search?+

GET /v1/scrape returns the most recent individual sales (about 90 days) with full listing fields, condition and optional AI cleanup, up to 240 per request. GET /v1/research/sold goes back up to 3 years with listing-level rows: sold price, units sold, average price, shipping and last sold date, reported in US dollars.

Why are some rows averages?+

Rows are listings, not single transactions. A multi-quantity listing that sold several units comes back as one row with soldUnits, averageSoldPrice and totalSales. Add singleUnitOnly=true when you want one-off sales only, for example graded cards or used electronics.

What does 3 years of history show that 90 days cannot?+

Trends. In our dated Nintendo Switch OLED example, a used console sold for about $250 to $265 through 2024, fell to $162 by mid-2025 and held around $170 to $190 in 2026. A 90-day window shows only the last quarter.

How do I get the most results?+

Keep the keyword short: brand plus model or set number. Every word must appear in the listing title, so long keywords match little. Page past 50 rows with page and read hasNextPage.

Run your first eBay search

Create a free account, get an API key, and use the same quota from REST, the dashboard, or CompSniper MCP tools.