Guide
July 28, 2026 · 6 min read
How to Get eBay Sold and Completed Listings in 2026
eBay now asks you to sign in before it will show sold or completed listings. Here is exactly what changed, why your sold-price searches broke, and how to keep pulling that data programmatically.

Author
Adam Ben-Ayoun
CTO · OpenWeb Ninja
eBay · Sold Listings · Price Research · Python
Key Takeaways
Since 22 July 2026, eBay redirects signed-out visitors to a login page on any sold or completed search, across every marketplace.
Browsing sold listings in your own browser still works, because you are signed in. Scripts and scrapers that were not signed in stopped working overnight.
The Real-Time eBay Data API handles this for you: show_only=sold_items and completed_items work with no code change on your side.
Supply the optional cookie parameter and you get the full page: 60 results per page and complete seller data.
Without a cookie you still get results, but from eBay's reduced page: 25 per page and no seller fields.
eBay only exposes about 90 days of sold history, so store what you pull if you need longer trends.

What changed on eBay
Sold and completed listings are the single most useful dataset on eBay. They are the only public record of what an item actually sold for, as opposed to what a seller hopes to get. Resellers price inventory from them, brands track grey-market activity with them, and analysts use them as a demand signal.
On 22 July 2026 eBay quietly put them behind a login. Any search URL carrying the sold filter (LH_Sold=1) or the completed filter (LH_Complete=1) now redirects signed-out visitors to signin.ebay.com. We measured it across seven marketplaces, including ebay.com, ebay.co.uk, ebay.de, ebay.ca, ebay.com.au, ebay.fr and ebay.it, and the behaviour was the same everywhere.
The confusing part for most people is that nothing looks broken in a browser. You are already signed in to eBay, so sold listings load exactly as before. It is only scripts, scrapers, and integrations running without a session that suddenly return a login page instead of results.
Every other filter is unaffected. Free shipping, buy it now, returns accepted, condition, price range and the rest all behave as they always did. This change is specific to sold and completed.
Your three options
If you need sold price data programmatically, these are the realistic paths.
Sign in and scrape
Maintain eBay accounts, keep sessions alive, and handle bans. Workable, but it becomes an ongoing operational job rather than a one-off build.
eBay Marketplace Insights
eBay’s official sold-data API. Access is restricted, requires an approved application, and most teams are declined or waitlisted.
Use a data API
Call an API that already solves the session problem and returns clean JSON. No accounts to babysit, no HTML to parse.
Pulling sold listings with the API
The Real-Time eBay Data API deals with the sign-in requirement for you. Set show_only and read the JSON.
Python
import requests
API_KEY = "YOUR_API_KEY"
def sold_listings(query, page=1, domain="com"):
r = requests.get(
"https://api.openwebninja.com/realtime-ebay-data/search",
headers={"x-api-key": API_KEY},
params={
"query": query,
"show_only": "sold_items,completed_items",
"domain": domain,
"page": page,
},
timeout=60,
)
r.raise_for_status()
return r.json()["data"]["products"]
for item in sold_listings("nvidia rtx 4090"):
print(item["price"], item["currency"], "|", item["caption"], "|", item["title"][:60])Each result carries the sold price, the currency, and a caption holding the sale date:
539.99 USD | Sold Jul 28, 2026 | Apple iPhone 15 Pro Max 256GB Blue Titanium Unlocked 1799.0 USD | Sold Jul 27, 2026 | NVIDIA GeForce RTX 4090 Founders Edition 24GB GDDR6X
One thing worth getting right: sold_items and completed_items are not the same thing. Sold returns listings that ended in a sale, completed returns all ended listings including those that never sold. Pass both when you want the full picture, or sold alone when you only care about realised prices. And if you need seller data or larger pages, read the next section before you build.
Supplying your own eBay session (recommended)
Everything above works without a cookie. But the page eBay serves to a signed-out client is a reduced one, and the difference is worth knowing about before you build on it:
| Field | No cookie | With cookie |
|---|---|---|
Results per page | 25 | 60 |
Price and sold date | Yes | Yes |
seller_name | Not available | Every result |
seller_feedback_count | Not available | Every result |
seller_feedback_percentage | Not available | Every result |
So if you need seller information on sold listings, or you are paging through large result sets, supply the cookie parameter. When you do, the API uses it first and only falls back to the reduced page if it cannot. Your cookie is never written to our logs and never echoed back in the response. Here is how to get it:
- 1
Sign in to eBay in your browser, on the same marketplace you plan to query. A cookie from ebay.com will not work for a domain=co.uk request.
- 2
Open developer tools with F12, or Cmd+Option+I on a Mac, and switch to the Network tab.
- 3
Reload the page, then click the first document request to ebay.com in the list.
- 4
Under Request Headers, find the cookie header and copy the whole value.
- 5
Send that string as the cookie parameter on your request.
Python
params = {
"query": "nvidia rtx 4090",
"show_only": "sold_items,completed_items",
"cookie": "name=value; name2=value2", # 60/page + seller data
}A note on account safety. A session cookie is a credential. Use a secondary eBay account rather than your main selling account, and sign that account out when you are finished to invalidate the session. If the cookie expires the API returns a 400 telling you to refresh it, so a stale cookie fails loudly instead of silently returning nothing.
FAQ
Most common questions and answers
Why did eBay stop showing sold and completed listings?
Do I need to pass a cookie to get sold listings from the API?
Is it safe to send my eBay cookie to the API?
How many sold listings are returned per page?
Why are seller fields missing from my sold listings?
How far back do eBay completed listings go?
About the author

Adam Ben-Ayoun
CTO @ OpenWeb Ninja
Adam leads engineering at OpenWeb Ninja, building the APIs and infrastructure that make public web data accessible to developers and AI agents.
Connect on LinkedInGet eBay sold prices in JSON
The Real-Time eBay Data API returns sold and completed listings across 20 eBay marketplaces, with no eBay account to maintain. The free plan needs no credit card.
Didn't find the API you are looking for? Request an API
