Depop.com scraper avatar

Depop.com scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Depop.com scraper

Depop.com scraper

Join 30 million+ users to buy, sell, discover and explore the most inspiring and unique things in the world.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Lukáš Širhal

Lukáš Širhal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

a day ago

Last modified

Categories

Share

What does Depop scraper do?

Depop scraper gets structured data out of Depop: listings, full product details, whole shops and seller reviews.

It can:

  • Search by keyword, with the same filters the site offers — price range, condition, colour, brand, category, size, department and sort order.
  • Scrape any depop.com URL — product, search, category or shop. Filters already in the URL are kept, so you can paste a filtered search straight from your browser.
  • Scrape entire shops by username or user id, including sold items if you want them.
  • Find shops by keyword and scrape everything they sell.
  • Scrape seller reviews, as either the seller or the buyer side.
  • Cap the run by total items or by pages per source, shared fairly between sources.

How to scrape Depop

  1. Click Try for free.
  2. Enter a keyword, paste depop.com URLs, or name a shop.
  3. Click Run.
  4. When it finishes, preview or download your data from the Dataset tab.

Examples

Search several keywords in the US marketplace, cheapest first:

{
"search": ["vintage levis", "carhartt jacket"],
"country": "us",
"sortBy": "priceAsc",
"priceMin": 10,
"priceMax": 60,
"maxItems": 200
}

Scrape one shop with its reviews:

{
"sellers": ["jeansforever"],
"includeSellerDetails": true,
"includeSellerReviews": true,
"reviewRoles": ["seller"]
}

Find shops by keyword and scrape their stock:

{
"searchSellers": ["vintage denim"],
"maxSellersPerQuery": 5,
"maxItems": 500
}

Paste a filtered search straight from the browser:

{
"startUrls": [
{ "url": "https://www.depop.com/search/?q=jeans&brands=270&priceMax=50&sort=priceAscending" },
{ "url": "https://www.depop.com/category/mens/tops/t-shirts/" }
]
}

Input

Everything is optional except the proxy, but you need at least one of search, startUrls, sellers, searchSellers, or a filter.

Sources

FieldTypeDescription
searchArrayKeywords to search for, one per line.
startUrlsArraydepop.com URLs. Product, search, category and shop URLs are supported; filters in the URL are applied. Brand landing pages are not.
sellersArrayShop usernames or numeric user ids.
searchSellersArrayKeywords to find shops by. Every matching shop is then scraped like one you named directly.
maxSellersPerQueryIntegerHow many shops to take per shop-search keyword. Default 10.

Filters

FieldTypeDescription
countrySelectMarketplace to search: gb, us, au, nz, ca, de, fr, ie, it. Sets the currency too.
sortBySelectrelevance, newest, priceAsc, priceDesc.
priceMin / priceMaxIntegerPrice bounds in the marketplace currency, applied to the pre-tax item price.
conditionArraybrand_new, used_like_new, used_excellent, used_good, used_fair.
coloursArrayColour slugs, e.g. black, blue, tan.
brandsArrayNumeric brand ids, e.g. 270 for Nike. Brand names are not accepted.
categoriesArrayNumeric category ids. A parent id also matches everything below it.
groups / productTypesArrayDepartment group and product type slugs, e.g. bottoms / jeans.
sizesArrayComposite size ids, variantSetId.variantId, e.g. 22.5.
genderSelectmale, female, unisex.
isKidsBooleanKidswear only.
onlyDiscountedBooleanDiscounted listings only.

Output and limits

FieldTypeDescription
fetchDetailsBooleanOne extra request per listing for the full product record. On by default.
includeSellerDetailsBooleanAdds seller rating, reviews, items sold and followers. One cached request per seller.
includeSellerReviewsBooleanAlso scrape each shop's reviews as separate records.
reviewRolesArrayseller, buyer, or both.
includeSoldItemsBooleanInclude items no longer on sale when scraping a shop.
maxItemsIntegerStop after this many dataset records, split evenly between sources (see below).
maxPagesPerSourceIntegerPagination cap per keyword, URL or shop. 100 listings per page.
proxyObjectProxy configuration.

Depop rejects datacenter connections, so a residential proxy is strongly recommended.

How maxItems is shared

The allowance is split evenly between sources — each keyword, each URL, each shop, each shop-search keyword. maxItems: 12 over three keywords and one shop gives 3 records each, rather than letting whichever source finishes first take all 12.

A source that runs out of listings before spending its share hands the remainder back, so the run still reaches maxItems when the items exist somewhere. Shops found by searchSellers share the allowance of the keyword that found them.

Turning off fetchDetails

Listing pages already carry most of a record. With fetchDetails: false a run is one request per 100 items instead of one per item, which is much faster and cheaper. What you give up depends on the source:

  • Search results lose the seller username, condition, colour, group, product type and comment count.
  • Shop listings lose only the like and comment counts.

Output

One record per listing. brand, gender, itemGroup, productType, condition, colour and sellerUserName need fetchDetails when the source is a keyword search; the seller* rating fields need includeSellerDetails.

{
"itemId": 895913565,
"slug": "jeansforeve0-1220-vintage-y2k-2000s-g-star-f785",
"itemUrl": "https://www.depop.com/products/jeansforeve0-1220-vintage-y2k-2000s-g-star-f785/",
"itemName": "1220 Vintage y2k 2000s g-star embroidered navy blue euro archive pants size 32",
"status": "S",
"isSold": false,
"isBoosted": false,
"brand": "g-star",
"brandId": 1458,
"gender": "male",
"isKids": false,
"itemGroup": "bottoms",
"productType": "trousers",
"categories": [3],
"categoryPath": "Menswear > Bottoms",
"condition": "used_fair",
"colour": ["navy", "blue"],
"size": "32\"",
"sizes": [{ "id": 15, "name": "32\"", "quantity": 1 }],
"quantity": 1,
"currency": "USD",
"priceAmount": 55,
"priceWithTax": 66.55,
"priceTotalEstimated": 66.55,
"priceOriginal": 55,
"discountPercentage": null,
"isDiscounted": false,
"priceTax": 11.55,
"priceMarketplaceFee": 0,
"priceShipping": 6.99,
"hasFreeShipping": false,
"shippingBoundary": "NATIONAL",
"country": "US",
"address": "Houston, United States",
"handDelivery": false,
"images": ["https://media-photos.depop.com/.../P0.jpg"],
"mainPicture": "https://media-photos.depop.com/.../P0.jpg",
"likeCount": 12,
"commentCount": 0,
"datePublished": "2026-08-29T01:03:14.279648Z",
"dateCreated": "2026-08-29T00:51:02.104Z",
"sellerId": 374026552,
"sellerUserName": "jeansforever",
"sellerUrl": "https://www.depop.com/jeansforever/",
"sellerVerified": true,
"sellerRating": 5,
"sellerRatingCount": 475,
"sellerItemsSold": 1663,
"sellerFollowers": 489,
"scrapedAt": "2026-09-04T11:46:40.303Z"
}

Review records are in the same dataset, marked with "kind": "review":

{
"kind": "review",
"reviewId": "50582908c37f456399d7f75db6a1549c",
"sellerId": 374026552,
"sellerUserName": "jeansforever",
"role": "seller",
"rating": 5,
"text": "Fast shipping, exactly as described",
"date": "2026-09-03T23:43:57.242747Z",
"authorId": 273648958,
"authorUserName": "ssabr1naaa",
"productId": 829961375,
"productUrl": "https://www.depop.com/products/jeansforevee-vintage-y2k-2000s-levi-505-3e12/"
}

How much will it cost?

The Actor is billed per result, at $3 per 1,000 records.

Apify gives you $5 in free usage credits every month on the free plan, which is roughly 1,600 listings a month at no cost. For regular scraping, the $ 49/month Starter plan also includes the residential proxy this Actor needs.

Turning fetchDetails off makes a run dramatically faster, since one request then returns 100 listings instead of one.

Note that personal data is protected by GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. We also recommend that you read our blog post: is web scraping legal?