eBay Marketplace Insights API: What It Returns and Why You Probably Can't Get Access

Marketplace Insights is eBay's only official API for sold items. Its single endpoint, item_sales/search, returns sales from the last 90 days, up to 200 results per page and 10,000 per search, with the last sold price and date per listing. It is a Limited Release API: you need the buy.marketplace.insights OAuth scope, which requires an Application Growth Check and business approval, and many small developers report being denied.
Marketplace Insights API access card showing Limited Release, an invalid_scope error and an access denied notification

Every road to eBay sold data in code eventually leads here. Marketplace Insights is real, it's official, and it does return sold items. It's also the API most developers never get to call.

We read eBay's own OpenAPI specification (buy_marketplace_insights_v1_beta_oas3.json, version v1_beta.2.2) so you don't have to.

The endpoint

There's exactly one method:

GET https://api.ebay.com/buy/marketplace_insights/v1_beta/item_sales/search
Authorization: Bearer <application token with buy.marketplace.insights scope>
X-EBAY-C-MARKETPLACE-ID: EBAY_US

Per the spec, it "retrieves the sales history of the items for the last 90 days" and lets you search "by keyword, GTIN, category, and product."

ParameterWhat it does
qKeyword search
category_idsRestrict to categories
epid / gtinSearch by eBay product ID or barcode
filterbuyingOptions, conditionIds, itemLocationCountry, lastSoldDate, price + priceCurrency
aspect_filterItem specifics, e.g. brand or size
limit / offsetDefault 50, max 200 per page, max 10,000 per search
sortSort order

What each result contains

The ItemSales object has these fields: itemId, title, lastSoldPrice, lastSoldDate, totalSoldQuantity, condition, conditionId, buyingOptions, bidCount, categories, image, additionalImages, thumbnailImages, itemWebUrl, itemHref, itemAffiliateWebUrl, itemLocation, seller, epid, itemGroupHref, itemGroupType and adultOnly.

Two details matter for pricing:

  1. It's per listing, not per sale. You get the last sold price and date plus a total quantity sold. For a multi-quantity listing that sold 40 times at different prices, you see one price.
  2. No shipping and no separate offer price. There's no shipping-cost field, and nothing distinguishes an accepted Best Offer amount from the list price.

Comparison grid of Marketplace Insights versus SaleHistory: open to new developers, sold price, every individual sale, shipping cost, results per call, history window and precomputed median
Same 90-day window. Different access.

Why you probably can't get access

The spec labels it (Limited Release). In practice:

Two rows of steps. What eBay asks: create keyset, request the scope, file an Application Growth Check, wait for review. What developers report: invalid_scope, no apply button, denied, ship nothing
The path, as developers describe it on eBay's own forums.

  • The buy.marketplace.insights scope isn't on new keysets. Production calls without it fail with invalid_scope.
  • eBay staff tell developers to "file an Application Growth Check request."
  • Then the reports: "I did this and was denied access." "I was also denied." "What does it actually take to be approved?"
  • A small-project developer asked, "I'm not an enterprise/partner… Is it impossible for me to get access?"
  • In August 2026 one developer said they applied and got an email four minutes later: "reviewed and denied."

Also worth knowing: the spec's last version, v1_beta.2.2, dates from December 2020. It's still "beta" six years later.

If you're approved, use it

If you're an established eBay partner with the scope, Marketplace Insights is free and official. Use it.

If you're not

You have three realistic choices: scrape eBay yourself (which now means signing in, and risking a ban), use a scraper marketplace, or use a hosted sold-listings API. The SaleHistory equivalent of the call above:

curl "https://api.soldcomps.io/v1/sold?q=nintendo+switch+oled&condition=used" \
  -H "Authorization: Bearer $SALEHISTORY_KEY"

It returns individual sales (not one price per listing), with shipping, a Best Offer flag and the median, up to 200 per request. There's no scope to request and nobody to approve you. See every option for eBay sold data.

For the bigger picture of what each eBay API does, see the eBay API in 2026.

Frequently asked questions

Is the eBay Marketplace Insights API free?

There's no fee, but it is a Limited Release API. Your app needs the buy.marketplace.insights OAuth scope, which eBay grants only after a business review.

How do I apply for Marketplace Insights API access?

eBay staff point developers to the Application Growth Check request in the developer portal. Developers on eBay's forums report being denied, getting invalid_scope errors in production, or finding no option to apply.

How much history does Marketplace Insights return?

The last 90 days of sales, according to eBay's OpenAPI specification.

Does Marketplace Insights return shipping costs or Best Offer prices?

The ItemSales schema in eBay's spec has lastSoldPrice but no shipping-cost field and no separate accepted-offer price field.

Sources

  1. eBay Buy Marketplace Insights OpenAPI spec v1_beta.2.2 (mirror) (accessed Oct 22, 2026)
  2. eBay Community: Marketplace Insights API access (denial reports) (accessed Oct 22, 2026)
  3. eBay Community: Request to enable Marketplace Insights API scope for my production app (accessed Oct 22, 2026)
  4. eBay Community: Marketplace Insights API query about small project (accessed Oct 22, 2026)
  5. r/scrapingtheweb: How hard is it to scrape eBay last sold data? (denied in 4 minutes) (accessed Oct 22, 2026)

SaleHistory sells an eBay sold-listings API, so we have a commercial interest in this topic. We link primary sources so you can check our work. Spotted something out of date? Email hello@soldcomps.io.