Depop API & Scraper
The Depop API returns the fashion resale marketplace as clean JSON in seven actions: search, product/detail, product/similar, seller/listings, seller/profile, seller/reviews and suggest.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
search takes a keyword or browses a brand, department or category in one of nine Depop markets — United States, United Kingdom, Australia, Canada, New Zealand, Germany, France, Italy and Ireland — and filters by subcategory, condition, colour, price range and on-sale, sorted by relevance or price. Every row carries the listing id, slug and URL, the description, brand, category and subcategory, gender, condition, colours, sizes with quantities, the seller's item price as a number with the listing's currency, the struck original price when the seller has reduced it, the shipping price, and — separately — what a buyer in the chosen country is shown: Depop's buyer fee, import VAT or GST, and whether shipping is national or international. product/detail adds Depop's product title, every photo, national and international shipping prices, and the seller's star rating, review count, items sold, last seen and average days to ship. seller/listings returns a seller's for-sale listings or their sold listings; seller/reviews returns the reviews on their shop. Measured on 2026-09-16: 84 of 86 live calls returned data, and the two others were sellers whose sold list Depop itself returns empty (checked again through two proxy tiers); 27 of 27 searches across the nine markets and 27 of 27 listing reads succeeded, a 24-row search answered in a median 0.93 s and a listing in 0.87 s. No Depop account is involved. One ReefAPI key, one shared credit pool, the standard { ok, data, meta, error } envelope.
What a live call returns — six categories, measured by value against the listing page
Two listings from each of six US searches were read with product/detail on 2026-09-16 and compared with the same listing's own public page seen from Germany. Description, brand, currency, the displayed price and availability matched on 12 of 12.
| Field | Filled (of 12) | Why it is not always filled |
|---|---|---|
| description, brand, price, currency, condition, colours, photos | 12 | — |
| category, subcategory group, shipping price, national shipping price | 12 | — |
| buyer view (buyer fee, import tax, headline price) | 12 | — |
| likes, location, seller username, rating, items sold, last seen | 12 | — |
| Depop product title | 10 | Depop generates it; absent on some listings (0 of 2 bags) |
| gender | 10 | not set for home and other non-clothing categories |
| sizes | 8 | no size on bags and home items |
| original (struck) price | 0 | only listings the seller has reduced — use on_sale=true to find them |
| international shipping price | 0 | Depop publishes it only for sellers who set one |
Speed and size, 2026-09-16, 86 consecutive live calls, 84 with data and 2 genuinely empty sold lists: search 27 calls over nine markets, median 928 ms, about 74 KB for 24 rows; product/detail 27 calls, median 867 ms, about 4 KB; seller/listings 8 calls, median 1,690 ms; seller/profile 8 calls, median 787 ms, about 1 KB; seller/reviews 4 calls, median 1,488 ms; product/similar 6 calls, median 2,046 ms; suggest 6 calls, median 973 ms.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/depop/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "nike"
}
}{
"ok": true,
"meta": {
"api": "depop",
"endpoint": "search",
"mode": "live",
"latency_ms": 1336.4,
"record_count": 24,
"bytes": 62873,
"cache_hit": false,
"country": "us",
"pagination": {
"has_more": true,
"page_size": 24,
"next_cursor": "MnwyNHwxNzg5NTY2MDEx.BOOSTED_EXHAUSTED.0"
}
},
"data": {
"results": [
{
"listing_id": 912385694,
"slug": "mypugs2022-gray-nike-hoodie-with-white-07c6",
"url": "https://www.depop.com/products/mypugs2022-gray-nike-hoodie-with-white-07c6/",
"description": "Gray Nike hoodie with white Nike swoosh and 'NIKE' text #athletic #swoosh #nike size XL",
"brand": "Nike",
"brand_id": 270,
"category": "Clothing",
"group": "tops",
"product_type": "hoodies",
"gender": "male",
"is_kids": true,
"condition": "used_like_new",
"condition_label": "Like new",
"colours": [
"grey",
"purple"
],
"sizes": [
{
"size": "[trimmed-depth]",
"quantity": "[trimmed-depth]",
"status": "[trimmed-depth]"
}
],
"quantity": 1,
"status": "on_sale",
"is_sold": false,
"price": 20,
"currency": "USD",
"original_price": null,
"discount_percent": null,
"is_discounted": false,
"shipping_price": 1.99,
"buyer_view": {
"country": "us",
"us_state": null,
"headline_price": 20,
"headline_currency": "USD",
"headline_includes": {
"buyer_fee": "[trimmed-depth]",
"tax": "[trimmed-depth]",
"shipping": "[trimmed-depth]"
},
"buyer_fee": 0,
"tax": 0,
"tax_type": null,
"shipping_price": 1.99,
"shipping_boundary": "national"
},
"shipping_provider": "USPS",
"shipping_payer": "buyer",
"like_count": 0,
"image": "https://media-photos.depop.com/b1/475961788/repop_341238856_4568956818/4704102911_70e7b984e66a4f1f91f729438b638954/P0.jpg",
"image_count": 3,
"seller_id": null,
"seller_country": "US",
"location": "Orting, US",
"is_boosted": false,
"listed_at": null,
"updated_at": null
},
{
"listing_id": 912037925,
"slug": "hem_closet11-shot-glass-nike-glass-with-287e",
"url": "https://www.depop.com/products/hem_closet11-shot-glass-nike-glass-with-287e/",
"description": "Handmade...Shot glass… Nike glass with black Nike swoosh and 'NIKE' text #swoosh #athletic",
"brand": "Nike",
"brand_id": 270,
"category": "Home",
"group": "home",
"product_type": "dinnerware",
"gender": null,
"is_kids": false,
"condition": "brand_new",
"condition_label": "Brand new",
"colours": null,
"sizes": null,
"quantity": 1,
"status": "on_sale",
"is_sold": false,
"price": 8,
"currency": "USD",
"original_price": null,
"discount_percent": null,
"is_discounted": false,
"shipping_price": 1.99,
"buyer_view": {
"country": "us",
"us_state": null,
"headline_price": 8,
"headline_currency": "USD",
"headline_includes": {
"buyer_fee": "[trimmed-depth]",
"tax": "[trimmed-depth]",
"shipping": "[trimmed-depth]"
},
"buyer_fee": 0,
"tax": 0,
"tax_type": null,
"shipping_price": 1.99,
"shipping_boundary": "national"
},
"shipping_provider": "USPS",
"shipping_payer": "buyer",
"like_count": 1,
"image": "https://media-photos.depop.com/r1/334896323/4702033796_9b203f85f8ee45548931e25115fd2648/P0.jpg",
"image_count": 3,
"seller_id": null,
"seller_country": "US",
"location": "Jacksonville, United States",
"is_boosted": false,
"listed_at": null,
"updated_at": null
},
{
"listing_id": 912704759,
"slug": "mi9iamlynnn-pink-nike-crop-pink-57b9",
"url": "https://www.depop.com/products/mi9iamlynnn-pink-nike-crop-pink-57b9/",
"description": "Pink Nike Crop & Pink Nike Leggings #tracksuit #athleisure #nike",
"brand": "Nike",
"brand_id": 270,
"category": "Hoodies",
"group": "tops",
"product_type": "hoodies",
"gender": "female",
"is_kids": false,
"condition": "used_like_new",
"condition_label": "Like new",
"colours": [
"pink"
],
"sizes": [
{
"size": "[trimmed-depth]",
"quantity": "[trimmed-depth]",
"status": "[trimmed-depth]"
},
{
"size": "[trimmed-depth]",
"quantity": "[trimmed-depth]",
"status": "[trimmed-depth]"
}
],
"quantity": 1,
"status": "on_sale",
"is_sold": false,
"price": 50,
"currency": "USD",
"original_price": null,
"discount_percent": null,
"is_discounted": false,
"shipping_price": 3.99,
"buyer_view": {
"country": "us",
"us_state": null,
"headline_price": 50,
"headline_currency": "USD",
"headline_includes": {
"buyer_fee": "[trimmed-depth]",
"tax": "[trimmed-depth]",
"shipping": "[trimmed-depth]"
},
"buyer_fee": 0,
"tax": 0,
"tax_type": null,
"shipping_price": 3.99,
"shipping_boundary": "national"
},
"shipping_provider": "USPS",
"shipping_payer": "buyer",
"like_count": 1,
"image": "https://media-photos.depop.com/r1/327554703/4706386096_0127a1ca880442fab14a3fe29cd27b1a/P0.jpg",
"image_count": 2,
"seller_id": null,
"seller_country": "US",
"location": "Tampa, United States",
"is_boosted": false,
"listed_at": null,
"updated_at": null
}
],
"count": 24,
"next_cursor": "MnwyNHwxNzg5NTY2MDEx.BOOSTED_EXHAUSTED.0",
"has_more": true,
"total_results": 2813785,
"sponsored_dropped": 0,
"filters": {
"sort": "relevance"
},
"query": "nike",
"country": "us"
}
}What the Depop API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Depop listings by keyword, or browse a brand, department or category, in one of nine markets (US, UK, Australia, Canada, New Zealand, Germany, France, Italy, Ireland). Every row: listing id, slug and url, description, brand, category and subcategory, gender, condition, colours, sizes with quantities, the item price with the struck original price when reduced, shipping price, the price a buyer in that country is shown (buyer fee, import tax, national or international shipping), likes, the seller's country and whether the listing is boosted. Filter by brand, department, category, subcategory, condition, colour, price range and on-sale; sort by relevance or price; page with `next_cursor`. | Pricing teams call search to search Depop listings by keyword, or browse a brand, department or category, in one of nine m…. | query, brand, department, category, subcategory, ... |
| product/detail | One Depop listing in full, by slug, URL or id: Depop's product title, the description, brand, category path, gender, condition, colours, sizes (including sold-out sizes) with quantities, every photo, the item price with the original price when reduced, national and international shipping prices and whether shipping is free, what a buyer in `country` is shown (buyer fee, import tax, shipping), likes, sale status (sold listings still resolve), and the seller: username, shop url, verified flag, country, star rating and review count, items sold, last seen and average days to ship. | Marketplace operators call product/detail to get one Depop listing in full, by slug, URL or id. | listing, country, region, max_rotations |
| product/similar | The listings Depop shows as similar to one listing (up to 48), with the same row fields as `search` plus seller id and listing date. Works for sold listings too — similar items still for sale. | Catalog enrichment teams call product/similar to get the listings Depop shows as similar to one listing (up to 48), with the same row fields as `s…. | listing, country, region, limit, include_sponsored, ... |
| seller/listings | One seller's shop: their for-sale listings (in their own order, newest, or by price) or their SOLD listings, newest sale first — each with the same row fields as `search` plus the listing date. Listings the seller has boosted are included and flagged `is_boosted`. Paged with `next_cursor`. | Retail analysts call seller/listings to get one seller's shop. | seller, availability, sort, limit, cursor, ... |
| seller/profile | A seller's public Depop shop profile by username, id or shop URL: username, verified flag, bio, website, picture, followers and following, star rating with review count (split into reviews as seller and as buyer), items sold and when they were last seen. | Pricing teams call seller/profile to get a seller's public Depop shop profile by username, id or shop URL. | seller, max_rotations |
| seller/reviews | The public reviews on a seller's shop: star rating, text, date, the listing it was for, and the reviewer's username. role=seller for reviews buyers left for this seller (default), role=buyer for reviews sellers left for them as a buyer. Paged with `next_cursor`. | Marketplace operators call seller/reviews to get the public reviews on a seller's shop. | seller, role, limit, cursor, max_rotations |
| suggest | Depop's search suggestions for a partial query — each with the category and gender it points at — or, with type=sellers, matching seller usernames. | Catalog enrichment teams call suggest to get depop's search suggestions for a partial query. | query, type, country, max_rotations |
Call search from your stack
curl -X POST https://api.reefapi.com/depop/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"nike"}'import requests
r = requests.post(
"https://api.reefapi.com/depop/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "nike"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/depop/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "nike"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.depop.search with {"query":"nike"}.Who uses this API and why
- Resale pricing tools read a seller's sold listings and similar items for sale to see where a brand and category actually clears.
- Cross-border sellers compare what a buyer in the UK, Australia or Germany is really charged — import tax and buyer fee included — before listing internationally.
- Sourcing apps watch a brand or category sorted by price, or on-sale listings only, across several Depop markets.
Questions developers ask before integrating
Why does the same listing show different prices on Depop?
Because Depop prices for the buyer, not just the item. On top of the seller's price it adds a buyer fee in some markets, import VAT or GST when the item crosses a border, and sometimes shipping, and it decides that from where the viewer is. One US listing priced at 3.00 displayed 3.85 to a US buyer, 3.57 to a German buyer and 7.01 to a UK buyer. The API returns the seller's item price as price, and the displayed price with its parts in buyer_view, computed for the country you pass — every row, every call, the same buyer.
Does the US price depend on the state?
Yes. Depop's US buyer fee depends on the buyer's state: the same 3.00 listing carried a 0.85 fee for California and none for New York. Pass region with a US state code to get that state's view. Without region, US prices come back with no state fee, and buyer_view.us_state says which view you got.
Is original_price a real discount?
It is the price the seller listed before reducing it, and it is only set when Depop marks the listing as reduced; otherwise it is null. discount_percent is computed from it. on_sale=true returns only reduced listings.
Can I get sold listings?
Yes, per seller: seller/listings with availability=sold returns a seller's sold listings, newest sale first, and a sold listing still opens with product/detail, marked status sold. Depop publishes no sale date — updated_at is when the listing last changed — and some sellers' sold lists are empty on Depop even when their shop shows sales. Depop has no marketplace-wide sold search; product/similar on a sold listing returns comparable items still for sale.
Which currency are prices in?
The listing's own currency, which is its seller's: an Australian listing stays AUD in every market's search. In a market's search most rows are in that market's currency — measured 92 to 100 percent across the nine markets.
Are promoted listings in the results?
Boosted listings are left out of search and similar items by default and counted in sponsored_dropped; include_sponsored=true returns them with is_boosted: true. A seller's own shop keeps every listing, boosted or not, flagged.
What happens with a keyword that matches nothing?
You get an empty result with total_results 0. Depop does not pad a failed search with unrelated items: eight nonsense queries all returned nothing, while misspellings such as carhart and nikee still found the brand.
Which countries work?
Depop's nine markets: us, gb, au, ca, nz, de, fr, it and ie, chosen with country. Each was measured with a live search and a live listing read. Any other country is rejected with the valid list.
What does Depop not publish?
A sale date and the price an item finally sold for through an offer, GTIN or SKU for second-hand items, a marketplace-wide sold search, and sellers' real names. Search rows carry no seller — product/detail does — and no listing date; seller/listings and similar items do.
What is the Depop API?
Depop API is a ReefAPI endpoint group for fashion resale listings in nine markets, with item price, buyer fees and import tax kept apart. It returns live JSON through POST requests under /depop/v1.
Is the Depop API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Depop calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Depop login or account?
No login to Depop is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Depop data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Depop API use?
Depop actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.