Best Offer prices
Get the price the buyer actually paid on eBay sales that closed through an accepted Best Offer, with bestOfferPrice=true.
When a listing sells through an accepted Best Offer, eBay's sold page shows the original listing price, not what the
buyer paid. Pricing from those rows overstates the market, most of all on items where many sales close on offers.
Add bestOfferPrice=true to any sold search to get the accepted price.
/scrape?bestOfferPrice=truecost 1 request, no extra chargecurl "https://api.ebaysoldlistingsapi.com/scrape?keyword=charizard+psa+10&bestOfferPrice=true" \
-H "Authorization: Bearer YOUR_API_KEY"Every sale with bestOfferAccepted: true then also carries:
acceptedOfferPricestring | nullThe price the buyer actually paid, as a decimal string in the sale currency. Null until it is found. soldPrice is
never changed, so you always have both.
acceptedOfferPriceStatusstringfound: the accepted price is in the response and final. pending: still being looked up (for up to about a day),
so the same search later can return it. not_available: no accepted price is available for this sale, for example
sales not priced in US dollars.
{
"itemId": "3976xxxxxxxx",
"title": "Charizard ex 223/197 Obsidian Flames PSA 10",
"soldPrice": "189.99",
"soldCurrency": "USD",
"bestOfferAccepted": true,
"acceptedOfferPrice": "162.00",
"acceptedOfferPriceStatus": "found"
}For a market price, use acceptedOfferPrice when its status is found, and treat soldPrice as an upper bound on
accepted-offer rows that are still pending or not_available.
Look up saved prices later (free)
GET /best-offer-prices returns the accepted prices found so far for up to 100 item IDs at once. Use it to fill in
pending rows from earlier searches without running the search again. It does not count against your monthly
requests, so a daily job can refresh earlier sales in one call.
/best-offer-prices?itemIds=...cost Freecurl "https://api.ebaysoldlistingsapi.com/best-offer-prices?itemIds=389012345678,389087654321" \
-H "Authorization: Bearer YOUR_API_KEY"{
"items": [
{ "itemId": "389012345678", "acceptedOfferPrice": "405.00", "acceptedOfferPriceStatus": "found" },
{ "itemId": "389087654321", "acceptedOfferPrice": null, "acceptedOfferPriceStatus": "pending" }
]
}An item ID that never came back with bestOfferAccepted: true in a bestOfferPrice=true search returns the status
unknown. The lookup uses your normal per-minute rate limit.