Depop Listings API
Search Depop listings by keyword in the US, UK, Australia and Canada with price, discount, shipping, brand, size, condition and seller, using one CompSniper API key.
GET /v1/depop/listings searches Depop by keyword and returns current listings with the asking price,
any seller discount, shipping, brand, size, condition, color, seller and location. It covers Depop's US,
UK, Australian and Canadian marketplaces, with prices in each market's own currency.
It uses the same API key, per-minute limit, monthly allowance and purchased credits as the eBay endpoints. No Depop account is needed.
Depop does not publish site-wide sold prices, so this endpoint returns what is for sale now. For real sold prices on fashion and streetwear, pair it with Grailed sold listings, eBay sold comps, Poshmark and Mercari.
For an overview with code in cURL, Python and JavaScript, see the Depop API page.
Make a request
curl --fail-with-body \
-H "Authorization: Bearer cs_live_REPLACEWITHYOURKEY" \
"https://api.compsniper.com/v1/depop/listings?keyword=vintage+levis+501&country=us&count=24"import requests
params = {"keyword": "arcteryx beta ar", "country": "gb", "count": 48}
rows = []
while len(rows) < 144:
response = requests.get(
"https://api.compsniper.com/v1/depop/listings",
headers={"Authorization": "Bearer cs_live_REPLACEWITHYOURKEY"},
params=params,
timeout=45,
)
response.raise_for_status()
data = response.json()
rows += data["items"]
if not data["hasNextPage"]:
break
params["cursor"] = data["nextCursor"]
print(len(rows), "listings, median asking price", data["summary"]["median"], data["summary"]["currency"])Parameters
| Parameter | Values | Default |
|---|---|---|
keyword | Brand, model and item, up to 300 characters | Required |
country | us, gb, au, ca | us |
count | 1 to 48 listings per page | 24 |
cursor | The nextCursor value from the previous page | First page |
Response
{
"keyword": "arcteryx beta ar",
"page": 1,
"count": 24,
"marketplace": "depop",
"country": "us",
"totalListings": 108,
"totalItems": 24,
"hasNextPage": true,
"nextCursor": "MnwyNHwxNzkyMjkzMDQx.BOOSTED_EXHAUSTED.0",
"items": [
{
"productId": "957849745",
"url": "https://www.depop.com/products/stronglyselated-arcteryx-grey-beta-ar-softshell-a78f/",
"title": "Arc'teryx grey Beta AR softshell jacket #outdoor #hiking",
"description": "Arc'teryx grey Beta AR softshell jacket #outdoor #hiking",
"price": 160,
"originalPrice": null,
"shippingPrice": 1.99,
"currency": "USD",
"brand": "Arc'teryx",
"category": "Outerwear",
"sizes": ["M"],
"condition": "Brand new",
"gender": "male",
"colors": ["navy", "black"],
"quantity": 1,
"sellerUsername": "stronglyselated",
"location": "Norristown, United States",
"country": "US",
"imageUrl": "https://media-photos.depop.com/..."
}
],
"summary": { "count": 24, "currency": "USD", "median": 145, "mean": 162.4, "min": 40, "max": 450, "p25": 95, "p75": 210, "avgShipping": null },
"scrapedAt": "2026-10-18T02:20:11.400Z"
}- Depop listings have no separate title, so
titleis the first line of the seller's description anddescriptionholds the full text. originalPriceis set when the seller discounted the item; it is the price before the discount.conditionis one ofBrand new,Like new,Used, excellent,Used, goodorUsed, fair.totalListingsis how many Depop listings match; page through them withcursorwhilehasNextPageistrue.summarydescribes the asking prices on the page in the market's own currency. A search can include a few listings priced in another currency; each listing shows its owncurrency, and those listings are left out of the summary.
Billing
- One successful call is one request.
- Failed requests are free.
- Repeat calls can return instantly from a short-lived saved copy and count as one request.
Errors
The Depop endpoint uses the shared error format (code, error, requestId):
| Status | Code | Meaning | What to do |
|---|---|---|---|
| 400 | invalid_params | Missing keyword, an unsupported country, or a bad cursor | Fix the request |
| 429 | rate_limited / quota_exceeded | Per-minute limit or monthly allowance reached | See Rate limits |
| 502, 503 | upstream_blocked / server_busy | Depop did not answer this time | Retry after a few seconds, with a bound |
See Errors for the full list.