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.

Adam Ben-Ayoun

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.

Getting eBay sold and completed listings after the sign-in change

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:

FieldNo cookieWith cookie
Results per page2560
Price and sold dateYesYes
seller_nameNot availableEvery result
seller_feedback_countNot availableEvery result
seller_feedback_percentageNot availableEvery 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. 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. 2

    Open developer tools with F12, or Cmd+Option+I on a Mac, and switch to the Network tab.

  3. 3

    Reload the page, then click the first document request to ebay.com in the list.

  4. 4

    Under Request Headers, find the cookie header and copy the whole value.

  5. 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

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 LinkedIn

Get 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.

APIs by Category

Didn't find the API you are looking for? Request an API

© 2026 OpenWeb Ninja. All rights reserved.

G2 LogoTrustpilot LogoGitHub