# How to Get eBay Australia Sold Listings with an API

> Get eBay Australia sold listings with a working API request, a real AUD response, condition filters and practical checks for postage and local sold comps.

Source: https://compsniper.com/guides/ebay-australia-sold-listings-api

---

Regional API guide

# How to Get eBay Australia Sold Listings with an API

To get eBay Australia sold listings through an API, send a product keyword to CompSniper's `GET /v1/scrape` endpoint with `ebaySite=ebay.com.au`. You get sold comps as JSON, including price, currency, condition and sale date. The example below returned Australian-dollar prices, with postage recorded separately.

By [Marc Andrew](https://compsniper.com/about) September 22, 2026 Tested with a real ebay.com.au search

## Make your first ebay.com.au request

Create a [free CompSniper account](https://compsniper.com/signup) and copy your full `cs_live_` key from the dashboard. Set it as the `COMPSNIPER_API_KEY` environment variable on your backend or in your terminal. You do not need an eBay developer API key to call CompSniper.

This request searches for used Nintendo Switch OLED consoles, ordered by recently ended listings. It explicitly selects the Australian marketplace instead of the default US site.

Australian sold listings

```
curl --get --fail-with-body --max-time 75 "https://api.compsniper.com/v1/scrape" \
  --header "Authorization: Bearer $COMPSNIPER_API_KEY" \
  --data-urlencode 'keyword=Nintendo Switch OLED' \
  --data-urlencode 'ebaySite=ebay.com.au' \
  --data-urlencode 'count=5' \
  --data-urlencode 'itemCondition=used' \
  --data-urlencode 'sortOrder=endedRecently' \
  --data-urlencode 'sold=true'
```

In Postman, choose GET and put `keyword`, `ebaySite` and the other search options under **Params**. Put your API key under Authorization as a Bearer Token. A header called `keyword` will not supply the required search parameter.

## A real Australian-marketplace response

We ran the request above on September 22, 2026 at 05:47:46 UTC. It returned HTTP 200 and five listings. This excerpt shows selected fields from one of those five rows; the other rows and top-level fields are omitted. Values are unchanged.

Real response excerpt

```
{
  "keyword": "Nintendo Switch OLED",
  "totalItems": 5,
  "items": [
    {
      "itemId": "800696832694",
      "title": "New listing Nintendo Switch OLED Model Console Black Neon Blue/Red Joy-Con w/ Original Box",
      "condition": "Pre-owned",
      "conditionId": 3000,
      "soldPrice": "247.26",
      "soldCurrency": "AUD",
      "shippingPrice": "94.44",
      "shippingCurrency": "AUD",
      "shippingType": "paid",
      "totalPrice": "341.70",
      "endedAt": "2026-09-22",
      "scrapedAt": "2026-09-22T05:47:45.491625+00:00",
      "itemLocation": null,
      "sellerType": null,
      "bestOfferAccepted": null,
      "url": "https://www.ebay.com.au/itm/800696832694?nordt=true"
    }
  ]
}
```

`endedAt` is the reported sale date; `scrapedAt` is the collection timestamp. Repeating the request can return different listings. `totalItems: 5` describes the original response, not the one-row excerpt.

The selected console shows an item price of **AUD 247.26** and postage of **AUD 94.44**. The reported total is **AUD 341.70**. That is a useful reason to keep postage visible: comparing only the item price would hide a substantial part of this example's known cost.

## Keep AUD prices and delivery costs separate

Store `soldPrice` together with `soldCurrency`. A dollar symbol alone cannot distinguish Australian, US or Canadian dollars. Do the same for `shippingPrice` and `shippingCurrency`. All five rows in this dated request used AUD, but your integration should still inspect the fields on every response.

Prices are decimal strings. Use a decimal type for calculations, and add the item price to postage only when both amounts use the same currency. Missing postage is unknown, not zero. A returned `totalPrice` is not proof that every delivery, checkout or import charge is known.

eBay's [Australian postage guidance](https://www.ebay.com.au/help/default/default/postage-rates-buyers?id=4026) separates postage from the item price and notes that international delivery can cost more. The API sample does not establish where this seller was located, so the AUD 94.44 amount alone is not proof of an overseas shipment.

An Australian site is not an Australian-only dataset

Do not label a row “Australian seller” just because it came from ebay.com.au. In this example, `itemLocation` is null. Preserve that uncertainty.

## Build comparable Australian sold comps

For local resale pricing, start with the exact console model and compare equivalent packages. A tablet-only Switch, a complete OLED console with dock and Joy-Cons, and a bundle with extra games are different products for valuation purposes. The five-row response included different bundle descriptions; a matching model name alone does not make them equivalent.

- Keep used and new consoles separate. This example uses `itemCondition=used` and returns `Pre-owned` with `conditionId: 3000`.
- Inspect included accessories and the stated condition before calculating a resale price. Optional relevance cleanup can help, but it does not replace this check.
- If domestic inventory is your target, add the documented `itemLocation=domestic` query parameter. That optional filter was not used in the recorded sample above.
- Keep the date and sample size with your estimate. Five demonstration rows are not a reliable Australia-wide price index.

For accepted offers, inspect `bestOfferAccepted`. A true value flags an accepted offer, but does not disclose its hidden accepted amount. Do not treat every displayed sold price as the buyer's exact final payment.

## Read Australian sold prices with Python

This standard-library example makes the same request, retains AUD rows and calculates item-plus-postage only when postage is known. It deliberately leaves unknown delivery totals as `None`.

Python 3

```
# Python 3. Standard library only.
import json
import os
from decimal import Decimal
from urllib.parse import urlencode
from urllib.request import Request, urlopen

params = {
    "keyword": "Nintendo Switch OLED",
    "ebaySite": "ebay.com.au",
    "count": "5",
    "itemCondition": "used",
    "sortOrder": "endedRecently",
    "sold": "true"
}
request = Request(
    "https://api.compsniper.com/v1/scrape?" + urlencode(params),
    headers={"Authorization": "Bearer " + os.environ["COMPSNIPER_API_KEY"]},
)
with urlopen(request, timeout=75) as response:
    data = json.load(response)

for item in data.get("items", []):
    if item.get("soldCurrency") != "AUD" or item.get("soldPrice") is None:
        continue
    price = Decimal(item["soldPrice"])
    shipping = item.get("shippingPrice")
    delivered = None
    if item.get("shippingType") == "free":
        delivered = price
    elif shipping is not None and item.get("shippingCurrency") == "AUD":
        delivered = price + Decimal(shipping)
    print(item.get("title"), "item AUD", price,
          "item + known postage AUD", delivered)  # None means unknown
```

Keep the API key on your backend. For more complete pagination and bounded retries, continue with the [Python integration guide](https://compsniper.com/guides/ebay-sold-listings-api-python).

## Handle fewer results and temporary errors

An empty `items` array can be a valid result for a narrow query. Broaden one filter at a time rather than interpreting zero matches as zero demand. The standard endpoint covers recent sold listings, not a complete historical sales archive.

A missing keyword or invalid marketplace value needs a corrected request, not repeated retries. For rate limits, respect `Retry-After`; for temporary upstream failures, use bounded backoff. See the [error reference](https://compsniper.com/docs/errors) before automating a larger import. Failed searches do not consume the successful-search allowance.

## Common questions about eBay Australia sold listings

### Is there an API for eBay Australia sold listings?

Yes. CompSniper is an independent API that searches ebay.com.au sold listings using GET /v1/scrape with ebaySite=ebay.com.au. Supply your CompSniper API key and a product keyword to receive JSON containing sold prices, currency, condition and sale dates.

### Should I use ebay.au or ebay.com.au?

Use ebay.com.au as the ebaySite value. Do not send ebay.au, a full HTTPS URL or a country code such as AU. If you omit ebaySite, the API uses ebay.com rather than inferring Australia from your location.

### Are Australian sold prices returned in AUD?

The September 22 Australian example returned AUD in soldCurrency and shippingCurrency. Always read those fields rather than assuming a currency from the domain. This guide covers /v1/scrape; do not assume a separate historical-data endpoint has the same currency behavior.

### Does ebay.com.au mean every seller is in Australia?

No. The marketplace is not proof of a seller's location. Use the documented itemLocation=domestic filter to narrow the search when appropriate, then inspect returned location evidence. The example's itemLocation is null, so it does not establish that the item was located in Australia.

### Can I get Australian sold comps without writing code?

Yes. Select the Australian eBay marketplace in the CompSniper dashboard, search for your product and review the returned listings. You can export the loaded results to CSV for Excel or Google Sheets.

### How many sold listings can I request?

The standard endpoint accepts count up to 240 per request. It is a ceiling, not a promise of 240 matches or complete marketplace coverage. This tutorial requests five rows to keep the first integration easy to inspect.

## Continue your integration

Keep each marketplace and currency attached to its own sold comps. These guides use the same endpoint and API key:

- [eBay Germany Sold Listings API (2026): ebay.de Sold Prices as JSON](https://compsniper.com/guides/ebay-germany-sold-listings-api)
- [eBay UK Sold Listings API (2026): ebay.co.uk Sold Prices as JSON](https://compsniper.com/guides/ebay-uk-sold-listings-api)
- [How to Get eBay France Sold Listings with an API](https://compsniper.com/guides/ebay-france-sold-listings-api)
- [How to Get eBay Spain Sold Listings with an API](https://compsniper.com/guides/ebay-spain-sold-listings-api)
- [How to Get eBay Canada Sold Listings with an API](https://compsniper.com/guides/ebay-canada-sold-listings-api)

For the full contract, see the [API reference](https://compsniper.com/docs/api-reference). The [eBay sold listings API overview](https://compsniper.com/ebay-sold-listings-api) covers the product, and the [CSV and Excel guide](https://compsniper.com/guides/export-ebay-sold-listings-csv-excel) covers spreadsheet exports.

Written by the CompSniper team. The examples are dated observations, not current valuations or evidence of complete market coverage. CompSniper is an independent service, not an official eBay API.

## Try your first ebay.com.au sold search

Create a free CompSniper account, get an API key and run the request above. The free plan includes 100 requests per month, with no credit card required.

[Get your free API key](https://compsniper.com/signup)[Read the quickstart](https://compsniper.com/docs/quickstart)

---

CompSniper: real sold prices from eBay (8 sites), PSA, TCGplayer, Grailed, Depop, Poshmark and Mercari through one API. Free plan, 100 requests a month: https://compsniper.com/signup. Pricing: https://compsniper.com/pricing. All Markdown pages: https://compsniper.com/llms.txt
